在上一篇中已经用test1进行了测试,下面再用test2和test3进行测试。
test2
修改ROM中的初始化数据如下:
若正常运行,程序将在20H处停止。
initial
begin
memrory[0] = 8'b101_11000; //00
memrory[1] = 8'b0000_0001;
memrory[2] = 8'b011_11000; //02
memrory[3] = 8'b0000_0010;
memrory[4] = 8'b100_11000; //04
memrory[5] = 8'b0000_0001;
memrory[6] = 8'b001_00000; //06
memrory[7] = 8'b0000_0000;
memrory[8] = 8'b0000_0000; //08
memrory[9] = 8'b0000_0000;
memrory[10] =8'b010_11000; //0a
memrory[11] =8'b0000_0000;
memrory[12] =8'b001_00000; //0c
memrory[13] =8'b0000_0000;
memrory[14] =8'b111_00000; //0e
memrory[15] =8'b0001_0010;
memrory[16] =8'b0000_0000; //10
memrory[17] =8'b0000_0000;
memrory[18] =8'b100_11000; //12
memrory[19] =8'b0000_0010;
memrory[20] =8'b010_11000; //14
memrory[21] =8'b0000_0000;
memrory[22] =8'b110_11000; //16
memrory[23] =8'b0000_0011;
memrory[24] =8'b101_11000; //18
memrory[25] =8'b0000_0000;
memrory[26] =8'b010_11000; //1a
memrory[27] =8'b0000_0011;
memrory[28] =8'b001_00000; //1c
memrory[29] =8'b0000_0000;
memrory[30] =8'b0000_0000; //1e
memrory[31] =8'b0000_0000;
memrory[32] =8'b0000_0000; //20
memrory[33] =8'b0000_0000;
memrory[34] =8'b111_00000; //22
memrory[35] =8'b0000_0000;
end
修改RAM中的数据:
initial
begin
ram[13'h1800] = 8'b0000_0001;
ram[13'h1801] = 8'b1010_1010;
ram[13'h1802] = 8'b1111_1111;
ram[13'h1803] = 8'b0000_0000;
end
经测试,程序运行没有问题。
test3
ROM数据:
initial
begin
memrory[0] = 8'b101_11000; //00
memrory[1] = 8'b0000_0001;
memrory[2] = 8'b110_11000; //02
memrory[3] = 8'b0000_0010;
memrory[4] = 8'b010_11000; //04
memrory[5] = 8'b0000_0000;
memrory[6] = 8'b110_11000; //06
memrory[7] = 8'b0000_0001;
memrory[8] = 8'b101_11000; //08
memrory[9] = 8'b0000_0010;
memrory[10] =8'b110_11000; //0a
memrory[11] =8'b0000_0000;
memrory[12] =8'b100_11000; //0c
memrory[13] =8'b0000_0011;
memrory[14] =8'b001_00000; //0e
memrory[15] =8'b0000_0000;
memrory[16] =8'b111_00000; //10
memrory[17] =8'b0000_0000;
memrory[18] =8'b0000_0000; //12 DONE:HLT
memrory[19] =8'b0000_0000;
end
RAM:
initial
begin
ram[13'h1800] = 8'b0000_0001;
ram[13'h1801] = 8'b0000_0000;
ram[13'h1802] = 8'b0000_0000;
ram[13'h1803] = 8'b100_10000;
end
经仿真测试,结果没有问题。
至此,这一章的学习告一段落,由于之前就有一定的FPGA基础和modelsim的使用经验,所以整体来说还算比较顺利,之后有时间尝试放在FPGA运行试试。