喜欢2次
提出问题
用最新的官方编译器得到的汇编文件在程序开始运行时会有很多初始化和预处理的步骤,但是仿真时不需要这些初始化,我们只关心main函数开始后CPU及NICE_core的表现。否则可能会仿真很久。
解决办法
1. 首先我们要将.verilog文件的地址全部改成0开头的,@8000_0000是ITCM的寻址基址,我们要将其写到存储器中就要从@0000_0000开始。(源文件共有4个@,后面是数据段地址也要修改)
2. 修改前三条指令:
80000000: 10010117 auipc sp,0x10010 #堆栈指针从90010000开始
80000004: 293000ef jal ra,80000a92 #跳转到main所在80000a96,需要根据具体地址更改80000008: a001 j 80000008 #原地跳转等待仿真结束
initial begin
#40000000
$display("Time Out !!!");
$finish;
end