2025-10-17

今天测试新写的npc,发现参考的那个微架构图有问题(或者说还不够完善),修改之后dummy测试程序通过了,但是add测试程序有问题,发现一直在死循环。这一刻我才意识到cpu出了问题调试起来会有多难受,这还是最简单的单周期cpu。这时候我想起之前做nemu的时候讲义里提到的那些话,有种恍然大悟的感觉,原来在这等着我呢。nemu就是一个标准模型,添加了很多的debug功能,可以单步执行,也可以打印内部寄存器状态,扫描内存,这不就是用来debug cpu的吗?

发现了bug:auipc的汇编是不显示立即数的低12bit的,现在编译出的程序栈顶位置大于存储器上限了。

现在add没通的原因是.data没有加载的内存。暂时先把存储器放到npc外部,.data也加载到存储器

posted on 2025-10-17 17:44  veosat  阅读(4)  评论(0)    收藏  举报