可以得到正确的运行结果(因为没啥问题所以不用看这段):
Warning-[SIMCR] Simulator is moved or copied or renamed
Simulator is moved or copied or renamed from the
'/eda/home/zhfrv/RISCV/chipyard/sims/vcs/simv-chipyard-SmallRocketConfig' to
'/eda/home/zhf/NTV/RISCV/chipyard/sims/vcs/simv-chipyard-SmallRocketConfig',
which is unsafe and may incur unexpected simulation result.
Note-[RT_BS] Larger stack needed
Note: Bumping stack limit from 8192 to 8193 Kbytes.
Chronologic VCS simulator copyright 1991-2016
Contains Synopsys proprietary information.
Compiler version L-2016.06_Full64; Runtime version L-2016.06_Full64; Apr 6 10:54 2022
[UART] UART0 is here (stdin/stdout).
Hello!
$finish called from file "/eda/home/zhf/NTV/RISCV/chipyard/sims/vcs/generated-src/chipyard.TestHarness.SmallRocketConfig/TestDriver.v", line 158.
$finish at simulation time 41780500
V C S S i m u l a t i o n R e p o r t
Time: 41780500 ps
CPU Time: 2.950 seconds; Data structure size: 2.7Mb
Wed Apr 6 10:54:19 2022
尝试
我看了 chipyard/sims/vcs/generated-src/chipyard.TestHarness.SmallRocketConfig/TestDriver.v 里面完全没有涉及二进制文件读取的代码
也看了 chipyard/generators/rocket-chip/src/main/scala/system/TestHarness.scala 里面好像只描述了连接关系,我在其中搜索了 plusarg_reader,找到很多TLMonitor,不知道和我的问题有什么关系。看到了这个文件 chipyard/generators/rocket-chip/bootrom/bootrom.S 里面描述了最开始上电之后的几条指令,但是也不知道和main函数怎么对接起来的。
看到了手册上讲 loads the program binary over a simulated serial line 之后更迷惑了,它是通过什么东西将程序载入DRAM的呢。