第二十五章 曲线救国的典型案例(1/2)
对于任天堂来说,生产出连接两台FC主机的数据线,这再容易不过了。但连接起来不代表它们能够运行,因此需要切实的汇编来测试。
而王秋阳提供了能够测试两枚八位元CPU同时运行的运算依据,并转换成VerilogHDL语言。横井俊平现在正用心的将它记在脑子里。
module memory
(
input [15:0] addr,
inout [15:0] data,
input rw
);
reg [15:0] data_ram[0:16'b1111_1111_1111_1111];
integer i;
initial begin
for (i = 0; i <= 16'b1111_1111_1111_1111; i = i + 1)
data_ram[i]=$random();
data_ram[0]=16'b1000000100000000;//mov [ADDR],r0;r0 = 0
data_ram[1]= 16'b1100000000000000;//ADDR
data_ram[2]= 16'b1000000010001000;//mov r1,100
data_ram[3]= 100;//100
//data_ram[2]= 16'b1110011001000000;
data_ram[4]= 16'b0010000100010001;//lop:add r2,r1
data_ram[5]= 16'b1110000011001000;//sub r1,1
data_ram[6]= 16'b0000000000000001;//1
data_ram[7]= 16'b1110000000001000;//cmp r1,0
data_ram[8]= 16'b0000000000000000;//0
data_ram[9]= 16'b1110011010000000;//jz ext
data_ram[10]= 16'b0000000000000011;//+3 offset(ext)
data_ram[11]= 16'b1000000010100000;//mov r4,4
data_ram[12]= 16'b0000000000000100;
data_ram[13]= 16'b0110011001100000;//jmp r4(lop)
data_ram[14]= 16'b1000000100000010;//ext:mov [ADDR],r2
data_ram[15]= 16'b1100000000000000;//ADDR
data_ram[16]= 16'b1110011001000000;//jmp $
data_ram[17]= 16'b1111111111111110;//-2 offset($)
/*data_ram[0]= 16'b1000000010000000;//mov r0,imm
data_ram[1]= 16'b0011111111111111;//imm
data_ram[2]= 16'b0000000001111000;//mov r7,r0
data_ram[3]= 16'b1000000010011000;//mov r3,0
data_ram[4]= 16'b0000000000000000;
data_ram[5]= 16'b1000000010100000;//mov r4,code of jmp r5
data_ram[6]= 16'b0110011001101000;//jmp r5
data_ram[7]= 16'b0000000101011100;//mov [r3],r4
data_ram[8]= 16'b1000000011110000;//mov r6,[0]
data_ram[9]= 16'b0000000000000000;//[0]
83中文网最新地址www.83zws.com本章未完,点击下一页继续阅读。