URL
https://opencores.org/ocsvn/mips789/mips789/trunk
Subversion Repositories mips789
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 3 to Rev 4
- ↔ Reverse comparison
Rev 3 → Rev 4
/branches/mcupro/bench/led/mips_led.v
0,0 → 1,76
|
|
module mips_led (clk,key2,rst,cop_data,irq_addr,seg7led1,seg7led2) ; |
input clk; |
wire clk; |
input key2; |
wire key2; |
input rst; |
wire rst; |
input [31:0] cop_data; |
wire [31:0] cop_data; |
input [31:0] irq_addr; |
wire [31:0] irq_addr; |
output [6:0] seg7led1; |
wire [6:0] seg7led1; |
output [6:0] seg7led2; |
wire [6:0] seg7led2; |
|
wire [31:0] cop_addr; |
wire [3:0] cop_mem_ctl; |
wire [31:0] data2cop; |
wire [31:0] data2core; |
wire [31:0] data2mem; |
wire [31:0] ins2core; |
wire [31:0] mem_Addr; |
wire [31:0] pc; |
wire [3:0] wr_en; |
|
mips_core1 mips_core_ |
( |
.clk(clk), |
.cop_addr_o(cop_addr), |
.cop_data_o(data2cop), |
.cop_dout(cop_data), |
.cop_mem_ctl_o(cop_mem_ctl), |
.irq_addr(irq_addr), |
.irq_i(key2), |
.rst(rst), |
.zz_addr_o(mem_Addr), |
.zz_din(data2core), |
.zz_dout(data2mem), |
.zz_ins_i(ins2core), |
.zz_pc_o(pc), |
.zz_wr_en_o(wr_en) |
); |
|
|
|
mem_array ram_4k |
( |
.clk(clk), |
.din(data2mem), |
.dout(data2core), |
.ins_o(ins2core), |
.pc_i(pc), |
.rd_addr_i(mem_Addr), |
.wr_addr_i(mem_Addr), |
.wren(wr_en) |
); |
|
|
|
mips_seg7led seg7led |
( |
.addr_i(cop_addr), |
.clk(clk), |
.din(data2cop), |
.dmem_ctl_i(cop_mem_ctl), |
.rst(rst), |
.seg7led1(seg7led1), |
.seg7led2(seg7led2) |
); |
|
|
|
endmodule |
/branches/mcupro/doc/mips_struct.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
branches/mcupro/doc/mips_struct.pdf
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/mcupro/verilog/device/seg7led.v
===================================================================
--- branches/mcupro/verilog/device/seg7led.v (nonexistent)
+++ branches/mcupro/verilog/device/seg7led.v (revision 4)
@@ -0,0 +1,49 @@
+`define SEG7LED_ADDR 'H80_00_00_10
+`define DMEM_SB 1
+
+module mips_seg7led (
+ input [31:0] addr_i,
+ input clk,
+ input [31:0] din,
+ input [3:0]dmem_ctl_i,
+ input rst,
+ output [6:0]seg7led1,
+ output [6:0]seg7led2
+);
+
+reg [7:0] data;
+
+wire wr_seg7led;
+assign wr_seg7led= (addr_i==`SEG7LED_ADDR)&&(dmem_ctl_i==`DMEM_SB ) ;
+always @(posedge clk)
+ if (wr_seg7led)
+ data<=din[7:0]; //no matter big-endian or little
+
+ assign seg7led1= seg(data[3:0]) ;
+ assign seg7led2= seg(data[7:4]) ;
+
+ function [7:0] seg;
+ input [3:0] addr;
+ begin
+ case(addr)
+ 0: seg = 7'b0111111;
+ 1: seg = 7'b0000110;
+ 2: seg = 7'b1011011;
+ 3: seg = 7'b1001111;
+ 4: seg = 7'b1100110;
+ 5: seg = 7'b1101101;
+ 6: seg = 7'b1111100;
+ 7: seg = 7'b0000111;
+ 8: seg = 7'b1111111;
+ 9: seg = 7'b1100111;
+ 10: seg = 7'b1110111;
+ 11: seg = 7'b1111100;
+ 12: seg = 7'b1011000;
+ 13: seg = 7'b1011110;
+ 14: seg = 7'b1111001;
+ 15: seg = 7'b1110001;
+ default: seg = {7{1'b0}};
+ endcase
+ end
+ endfunction
+endmodule
\ No newline at end of file
Index: branches/mcupro/verilog/mips_core/cal_cpi.v
===================================================================
--- branches/mcupro/verilog/mips_core/cal_cpi.v (revision 3)
+++ branches/mcupro/verilog/mips_core/cal_cpi.v (revision 4)
@@ -42,9 +42,9 @@
//// ////
//// Version: 0.0.1 ////
//// ////
-//// Description: ////
+//// Description: For simulations only to calculate the CPI ////
+//// Cycles Per Instruction ////
//// ////
-//// ////
/////////////////////////////////////////////////////////////////////
//// ////
//// Change log: ////
Index: branches/mcupro/tools_source_code/convert_sp.c
===================================================================
--- branches/mcupro/tools_source_code/convert_sp.c (nonexistent)
+++ branches/mcupro/tools_source_code/convert_sp.c (revision 4)
@@ -0,0 +1,294 @@
+/* convert.c by Steve Rhoads 4/26/01 */
+/* Now uses the ELF format (get gccmips_elf.zip) */
+/* set $gp and zero .sbss and .bss */
+/* Reads test.axf and creates code.txt */
+/*modified by Liwei 2007-8-29*/
+#include
+#include
+#include
+#define BUF_SIZE (1024*1024*4)
+/*Assumes running on PC little endian*/
+#ifndef USE_BIG_ENDIAN
+#define ntohl(A)(((A)>>24)|(((A)&0x00ff0000)>>8)|(((A)&0xff00)<<8)|((A)<<24))
+#define ntohs(A)(unsigned short)((((A)&0xff00)>>8)|((A)<<8))
+#else
+#define ntohl(A)A
+#define ntohs(A)A
+#endif
+
+#define EI_NIDENT 16
+#define SHT_PROGBITS 1
+#define SHT_STRTAB 3
+#define SHT_NOBITS 8
+
+typedef struct
+{
+ unsigned char e_ident[EI_NIDENT];
+ unsigned short e_e_type ;
+ unsigned short e_machine ;
+ unsigned long e_version ;
+ unsigned long e_entry ;
+ unsigned long e_phoff ;
+ unsigned long e_shoff ;
+ unsigned long e_flags ;
+ unsigned short e_ehsize ;
+ unsigned short e_phentsize ;
+ unsigned short e_phnum ;
+ unsigned short e_shentsize ;
+ unsigned short e_shnum ;
+ unsigned short e_shstrndx ;
+}
+ElfHeader ;
+
+typedef struct
+{
+ unsigned long p_type ;
+ unsigned long p_offset ;
+ unsigned long p_vaddr ;
+ unsigned long p_paddr ;
+ unsigned long p_filesz ;
+ unsigned long p_memsz ;
+ unsigned long p_flags ;
+ unsigned long p_align ;
+}
+Elf32_Phdr ;
+
+typedef struct
+{
+ unsigned long sh_name ;
+ unsigned long sh_type ;
+ unsigned long sh_flags ;
+ unsigned long sh_addr ;
+ unsigned long sh_offset ;
+ unsigned long sh_size ;
+ unsigned long sh_link ;
+ unsigned long sh_info ;
+ unsigned long sh_addralign ;
+ unsigned long sh_entsize ;
+}
+Elf32_Shdr ;
+
+typedef struct
+{
+ unsigned long ri_gprmask ;
+ unsigned long ri_cprmask[4];
+ unsigned long ri_gp_value ;
+}
+ELF_RegInfo ;
+
+#define PT_MIPS_REGINFO 0x70000000
+#define SHT_MIPS_REGINFO 0x70000006
+
+void set_low(unsigned char*ptr,unsigned long address,unsigned long value)
+{
+ unsigned long opcode ;
+ opcode=*(unsigned long*)(ptr+address);
+ opcode=ntohl(opcode);
+ opcode=(opcode&0xffff0000)|(value&0xffff);
+ opcode=ntohl(opcode);
+ *(unsigned long*)(ptr+address)=opcode ;
+}
+
+/*the two functions listed between are added by Liwei 2007-8-29*/
+ char HEX[]="0123456789ABCDEF" ;
+ char hex[]="0123456789abcdef" ;
+unsigned char hex2byte( char hex_char)
+{
+ unsigned char i ;
+ for(i=0;i<16;++i)if(HEX[i]==hex_char)return i ;
+ for(i=0;i<16;++i)if(hex[i]==hex_char)return i ;
+ return 0 ;
+}
+unsigned int par2u32(char*par)
+{
+ unsigned int i,ret=0 ;
+ if(par==NULL)return ;
+ if((0==strncmp(par,"0x",2))||(0==strncmp(par,"0X",2)))
+ for(i=2;;++i) {if(par[i]=='\0')return ret ; ret=ret*16+hex2byte(par[i]);}
+ else
+ for(i=0;;++i) {if(par[i]=='\0')return ret ; ret=ret*10+hex2byte(par[i]);}
+ return 0 ;
+}
+/****************************/
+
+int main(int argc,char*argv[])
+{
+ FILE*infile,*outfile,*txtfile ;
+ unsigned char*buf,*code ;
+ long size,stack_pointer;
+ long stack_limit=0 ;
+ unsigned long length,d,i,gp_ptr=0,gp_ptr_backup=0 ;
+ unsigned long bss_start=0,bss_end=0 ;
+
+ ElfHeader*elfHeader ;
+ Elf32_Phdr*elfProgram ;
+ ELF_RegInfo*elfRegInfo ;
+ Elf32_Shdr*elfSection ;
+ (void)argc ;
+ (void)argv ;
+// printf(">%s<=>%d<\n",argv[1],par2u32((char*)argv[1]));//Liwei 2007-8.29
+ // printf(">%s<=>%d<\n",argv[2],par2u32((char*)argv[2]));//Liwei 2007-8.29
+// printf("argc = %d\n",argc);
+ if (argc>=3)
+ stack_limit=((par2u32((char*)argv[1]) - par2u32((char*)argv[2])));//alig 4
+ /* added by Liwei 2007_8_29 */
+ /*usage example :
+ convert_sp 0x800 0xf0
+ the sp_pointer is limited and set as (0x800 - 0xf0)
+ 0x800 is your instructions space lenth while 0xf0 is your stack lenth
+ but make sure your instructions space is big enough...
+ comment by Liwei
+ */
+ printf("test.axf -> code.txt & test.bin\n");
+ infile=fopen("test.axf","rb");
+ if(infile==NULL)
+ {
+ printf("Can't open test.axf");
+ return 0 ;
+ }
+ buf=(unsigned char*)malloc(BUF_SIZE);
+ size=(int)fread(buf,1,BUF_SIZE,infile);
+ fclose(infile);
+ code=(unsigned char*)malloc(BUF_SIZE);
+ memset(code,0,BUF_SIZE);
+
+ elfHeader=(ElfHeader*)buf ;
+ if(strncmp((char*)elfHeader->e_ident+1,"ELF",3))
+ {
+ printf("Error: Not an ELF file!\n");
+ printf("Use the gccmips_elf.zip from opencores/projects/plasma!\n");
+ return-1 ;
+ }
+
+ elfHeader->e_entry=ntohl(elfHeader->e_entry);
+ elfHeader->e_phoff=ntohl(elfHeader->e_phoff);
+ elfHeader->e_shoff=ntohl(elfHeader->e_shoff);
+ elfHeader->e_flags=ntohl(elfHeader->e_flags);
+ elfHeader->e_phentsize=ntohs(elfHeader->e_phentsize);
+ elfHeader->e_phnum=ntohs(elfHeader->e_phnum);
+ elfHeader->e_shentsize=ntohs(elfHeader->e_shentsize);
+ elfHeader->e_shnum=ntohs(elfHeader->e_shnum);
+ printf("Entry=0x%x ",elfHeader->e_entry);
+ length=0 ;
+
+ for(i=0;ie_phnum;++i)
+ {
+ elfProgram=(Elf32_Phdr*)(buf+elfHeader->e_phoff+
+ elfHeader->e_phentsize*i);
+ elfProgram->p_type=ntohl(elfProgram->p_type);
+ elfProgram->p_offset=ntohl(elfProgram->p_offset);
+ elfProgram->p_vaddr=ntohl(elfProgram->p_vaddr);
+ elfProgram->p_filesz=ntohl(elfProgram->p_filesz);
+ elfProgram->p_memsz=ntohl(elfProgram->p_memsz);
+ elfProgram->p_flags=ntohl(elfProgram->p_flags);
+
+ elfProgram->p_vaddr-=elfHeader->e_entry ;
+
+ if(elfProgram->p_type==PT_MIPS_REGINFO)
+ {
+ elfRegInfo=(ELF_RegInfo*)(buf+elfProgram->p_offset);
+ gp_ptr=ntohl(elfRegInfo->ri_gp_value);
+ }
+ if(elfProgram->p_vaddrp_vaddr, */
+ /* elfProgram->p_offset, elfProgram->p_filesz, elfProgram->p_memsz, */
+ /* elfProgram->p_flags); */
+ memcpy(code+elfProgram->p_vaddr,buf+elfProgram->p_offset,
+ elfProgram->p_filesz);
+ length=elfProgram->p_vaddr+elfProgram->p_filesz ;
+ /* printf("length = %d 0x%x\n", length, length); */
+ }
+ }
+
+ for(i=0;ie_shnum;++i)
+ {
+ elfSection=(Elf32_Shdr*)(buf+elfHeader->e_shoff+
+ elfHeader->e_shentsize*i);
+ elfSection->sh_name=ntohl(elfSection->sh_name);
+ elfSection->sh_type=ntohl(elfSection->sh_type);
+ elfSection->sh_addr=ntohl(elfSection->sh_addr);
+ elfSection->sh_offset=ntohl(elfSection->sh_offset);
+ elfSection->sh_size=ntohl(elfSection->sh_size);
+
+ if(elfSection->sh_type==SHT_MIPS_REGINFO)
+ {
+ elfRegInfo=(ELF_RegInfo*)(buf+elfSection->sh_offset);
+ gp_ptr=ntohl(elfRegInfo->ri_gp_value);
+ }
+ if(elfSection->sh_type==SHT_PROGBITS)
+ {
+ /* printf("elfSection->sh_addr=0x%x\n", elfSection->sh_addr); */
+ if(elfSection->sh_addr>gp_ptr_backup)
+ gp_ptr_backup=elfSection->sh_addr ;
+ }
+ if(elfSection->sh_type==SHT_NOBITS)
+ {
+ if(bss_start==0)
+ {
+ bss_start=elfSection->sh_addr ;
+ }
+ bss_end=elfSection->sh_addr+elfSection->sh_size ;
+ }
+ }
+
+ if(length>bss_start-elfHeader->e_entry)
+ {
+ length=bss_start-elfHeader->e_entry ;
+ }
+ if(bss_start==length)
+ {
+ bss_start=length ;
+ bss_end=length+4 ;
+ }
+ if(gp_ptr==0)
+ gp_ptr=gp_ptr_backup+0x7ff0 ;
+
+ /* #if 0 */
+ /*Initialize the $gp register for sdata and sbss */
+ printf("gp_ptr=0x%x ",gp_ptr);
+ /*modify the first opcodes in boot.asm */
+ /*modify the lui opcode */
+ set_low(code,0,gp_ptr>>16);
+ /*modify the ori opcode */
+ set_low(code,4,gp_ptr&0xffff);
+
+ /*Clear .sbss and .bss */
+ printf("sbss=0x%x bss_end=0x%x\nlength=0x%x ",bss_start,bss_end,length);
+ set_low(code,8,bss_start>>16);
+ set_low(code,12,bss_start&0xffff);
+ set_low(code,16,bss_end>>16);
+ set_low(code,20,bss_end&0xffff);
+
+ /*Set stack pointer */
+ if(elfHeader->e_entry<0x10000000)
+ stack_pointer=bss_end+512 ;
+ else
+ stack_pointer=bss_end+1024*4 ;
+
+ if(stack_limit)stack_pointer=(stack_pointer>16);
+ set_low(code,28,stack_pointer&0xffff);
+ /* #endif */
+
+ /*write out test.bin */
+ outfile=fopen("test.bin","wb");
+ fwrite(code,length,1,outfile);
+ fclose(outfile);
+
+
+ /*write out code.txt */
+ txtfile=fopen("code.txt","w");
+ for(i=0;i<=length;i+=4)
+ {
+ d=ntohl(*(unsigned long*)(code+i));
+ fprintf(txtfile,"%8.8x\n",d);
+ }
+ fclose(txtfile);
+ free(buf);
+ printf("\n");
+ return 0 ;
+}
Index: branches/mcupro/tools_source_code/gensim.c
===================================================================
--- branches/mcupro/tools_source_code/gensim.c (nonexistent)
+++ branches/mcupro/tools_source_code/gensim.c (revision 4)
@@ -0,0 +1,113 @@
+#include "stdio.h"
+main(int file_no,char*file_name[])
+{
+ int j=4,i=0 ;
+ int cntr ;
+ char str1[100],str2[111];
+ /*
+ FILE*ff=fopen(file_name[1],"r");
+ FILE*ft=fopen(file_name[2],"w");
+ */
+ FILE*ff=fopen("code.txt","r");
+ FILE*ft=fopen("sim_ram.v","w");
+ for(j=0;j<4;++j)
+ {
+ cntr = -10;
+ fprintf(ft,"module sim_syn_ram%d(\n",j);
+ fprintf(ft," data,\n");
+ fprintf(ft," wraddress,\n");
+ fprintf(ft," rdaddress_a,\n");
+ fprintf(ft," rdaddress_b,\n");
+ fprintf(ft," wren,\n");
+ fprintf(ft," clock,\n");
+ fprintf(ft," qa,\n");
+ fprintf(ft," qb);\n\n");
+ fprintf(ft," input [7:0] data;\n");
+ fprintf(ft," input [10:0] wraddress;\n");
+ fprintf(ft," input [10:0] rdaddress_a;\n");
+ fprintf(ft," input [10:0] rdaddress_b;\n");
+ fprintf(ft," input wren;\n");
+ fprintf(ft," reg [7:0] r_data;\n");
+ fprintf(ft," reg [10:0] r_wraddress;\n");
+ fprintf(ft," reg [10:0] r_rdaddress_a;\n");
+ fprintf(ft," reg [10:0] r_rdaddress_b;\n");
+ fprintf(ft," reg r_wren;\n");
+ fprintf(ft," input clock;\n");
+ fprintf(ft," output [7:0] qa;\n");
+ fprintf(ft," output [7:0] qb;\n");
+ fprintf(ft," reg [7:0] mem_bank [0:2047] ;\n");
+
+ fprintf(ft," initial begin \n ");
+ rewind(ff);
+ i=-1 ;
+
+ while(fgets(str2,100,ff))
+ {
+ ++i ;
+ if(3==j)
+ {
+ str2[2]=0 ;
+ fprintf(ft,"mem_bank[%d] = 'h%s ; ",i,&str2[0]);
+ ++cntr ;
+ if(!(cntr%10))
+ {
+ cntr==0 ;
+ fprintf(ft,"\n ");
+ }
+ }
+ else
+ if(2==j)
+ {
+ str2[4]=0 ;
+
+ fprintf(ft,"mem_bank[%d] = 'h%s ; ",i,&str2[2]);
+
+ ++cntr ;
+ if(!(cntr%10))
+ {
+ cntr==0 ;
+ fprintf(ft,"\n ");
+ }
+ }
+ else
+ if(1==j)
+ {
+ str2[6]=0 ;
+ fprintf(ft,"mem_bank[%d] = 'h%s ; ",i,&str2[4]);
+
+ ++cntr ;
+ if(!(cntr%10))
+ {
+ cntr==0 ;
+ fprintf(ft,"\n ");
+ }
+ }
+ else
+ if(0==j)
+ {
+ str2[8]=0 ;
+ fprintf(ft,"mem_bank[%d] = 'h%s ; ",i,&str2[6]);
+
+ ++cntr ;
+ if(!(cntr%10))
+ {
+ cntr==0 ;
+ fprintf(ft,"\n ");
+ }
+ }
+ }
+ fprintf(ft," \n end\n");
+ fprintf(ft," always @ (posedge clock) if (r_wren) mem_bank[r_wraddress]<=r_data;\n");
+ fprintf(ft," always @ (posedge clock)\n");
+ fprintf(ft," begin\n");
+ fprintf(ft," r_data<=data;\n");
+ fprintf(ft," r_wraddress<=wraddress;\n");
+ fprintf(ft," r_rdaddress_a<=rdaddress_a;\n");
+ fprintf(ft," r_rdaddress_b<=rdaddress_b;\n");
+ fprintf(ft," r_wren<=wren;\n");
+ fprintf(ft," end\n");
+ fprintf(ft," assign qa =mem_bank[r_rdaddress_a];\n");
+ fprintf(ft," assign qb =mem_bank[r_rdaddress_b];\n");
+ fprintf(ft,"endmodule\n\n\n\n");
+ }
+}
Index: branches/mcupro/tools_source_code/genmif.c
===================================================================
--- branches/mcupro/tools_source_code/genmif.c (nonexistent)
+++ branches/mcupro/tools_source_code/genmif.c (revision 4)
@@ -0,0 +1,53 @@
+#include "stdio.h"
+#include "stdlib.h"
+#define DEFAULT_LEN "2048"
+void main(int argc,char *argv[])
+{
+ int j=4,i=0 ;
+ char str1[100],str2[111];
+ FILE*ff=fopen("code.txt","r");
+ FILE*ft ;
+ for(j=0;j<4;++j)
+ {
+ if(j==0)
+ ft=fopen("qu2_ram0.mif","w");
+ else if(j==1)
+ ft=fopen("qu2_ram1.mif","w");
+ else if(j==2)
+ ft=fopen("qu2_ram2.mif","w");
+ else if(j==3)
+ ft=fopen("qu2_ram3.mif","w");
+ fprintf(ft,"WIDTH=8;\n");
+ fprintf(ft,"DEPTH=%s;\n\n",(NULL!=argv[1])?argv[1]:DEFAULT_LEN);
+ fprintf(ft,"ADDRESS_RADIX=HEX;\n");
+ fprintf(ft,"DATA_RADIX=HEX;\n\n");
+ fprintf(ft,"CONTENT BEGIN \n");
+ rewind(ff);
+ i=-1 ;
+ while(fgets(str2,100,ff))
+ {
+ ++i ;
+ if(3==j)
+ {
+ str2[2]=0 ;
+ fprintf(ft," %X : %s;\n ",i,&str2[0]);
+ }
+ else if(2==j)
+ {
+ str2[4]=0 ;
+ fprintf(ft," %X : %s;\n ",i,&str2[2]);
+ }
+ else if(1==j)
+ {
+ str2[6]=0 ;
+ fprintf(ft," %X : %s;\n ",i,&str2[4]);
+ }
+ else if(0==j)
+ {
+ str2[8]=0 ;
+ fprintf(ft," %X : %s;\n ",i,&str2[6]);
+ }
+ }
+ fprintf(ft,"END;");
+ }
+}
Index: branches/avendor/bench/cal_PI/pi.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/avendor/bench/cal_PI/pi.bmp
===================================================================
--- branches/avendor/bench/cal_PI/pi.bmp (nonexistent)
+++ branches/avendor/bench/cal_PI/pi.bmp (revision 4)
branches/avendor/bench/cal_PI/pi.bmp
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/avendor/gccmips_elf/convert_sp.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/avendor/gccmips_elf/convert_sp.exe
===================================================================
--- branches/avendor/gccmips_elf/convert_sp.exe (nonexistent)
+++ branches/avendor/gccmips_elf/convert_sp.exe (revision 4)
branches/avendor/gccmips_elf/convert_sp.exe
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/avendor/gccmips_elf/gensim.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/avendor/gccmips_elf/gensim.exe
===================================================================
--- branches/avendor/gccmips_elf/gensim.exe (nonexistent)
+++ branches/avendor/gccmips_elf/gensim.exe (revision 4)
branches/avendor/gccmips_elf/gensim.exe
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/avendor/gccmips_elf/genmif.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/avendor/gccmips_elf/genmif.exe
===================================================================
--- branches/avendor/gccmips_elf/genmif.exe (nonexistent)
+++ branches/avendor/gccmips_elf/genmif.exe (revision 4)
branches/avendor/gccmips_elf/genmif.exe
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/avendor/gccmips_elf/readme.txt
===================================================================
--- branches/avendor/gccmips_elf/readme.txt (nonexistent)
+++ branches/avendor/gccmips_elf/readme.txt (revision 4)
@@ -0,0 +1,16 @@
+Download a file from
+http://www.opencores.org/projects.cgi/web/mips/gccmips_elf.zip
+
+Extract it and copy files listed below in this folder.
+
+cywin1.dll
+as.exe
+gcc.exe
+ld.exe
+objdump.exe
+
+The usage of conver_sp.exe genmif.exe and gensim.exe please refrence to course code.
+
+Liwei
+2007-8-29
+