2025年10月21日
摘要: 不知道是不是我网络的原因,博客园有时候会卡死打不开,于是自己建了个简单的博客www.veosat.ink,打算后面在这上面更新了 阅读全文
posted @ 2025-10-21 22:06 veosat 阅读(5) 评论(0) 推荐(0)
  2025年10月20日
摘要: 今天在npc上实现itrace的时候碰到了一个很坑的问题,当然这也可能是我知识不丰富的原因。 NEMU的实现itrace的时候要用到反汇编相关函数,实现的方法是在一个disasm.c中定义了disassemble函数,这个函数会用到capstone动态链接库的内容。让我卡了一段时间的错误有两个,一个 阅读全文
posted @ 2025-10-20 17:58 veosat 阅读(10) 评论(0) 推荐(0)
  2025年10月19日
摘要: nemu的srai似乎有问题,平台选择riscv-nemu时,程序执行到下面代码处 0x80000094: slli a0,a0,0x18 0x80000098: srai a0,a0,0x18 执行前$a0的值为0x61,按理说执行完毕后$a0的值应该是0x00000061,但是通过调试器发现执行 阅读全文
posted @ 2025-10-19 11:40 veosat 阅读(9) 评论(0) 推荐(0)
  2025年10月18日
摘要: verilator的赋值也是有时序的,在调用top->eval()前用所用的verilog的输出都是旧值。另外ELF文件结构这块还是需要看一下的,例如看一下《程序员的自我修养》这本书。 现在的硬件设计非对齐访问有点问题。非对齐访问均以byte为单位,这样行为才是对的。 阅读全文
posted @ 2025-10-18 17:18 veosat 阅读(6) 评论(0) 推荐(0)
  2025年10月17日
摘要: 今天测试新写的npc,发现参考的那个微架构图有问题(或者说还不够完善),修改之后dummy测试程序通过了,但是add测试程序有问题,发现一直在死循环。这一刻我才意识到cpu出了问题调试起来会有多难受,这还是最简单的单周期cpu。这时候我想起之前做nemu的时候讲义里提到的那些话,有种恍然大悟的感觉, 阅读全文
posted @ 2025-10-17 17:44 veosat 阅读(6) 评论(0) 推荐(0)
  2025年10月16日
摘要: 本来打算先随便写一个npc让系统先跑起来,但是转念一想这样后面还得返工,还不如实现一个相对靠谱一些的结构。最后打算按照下面的微架构实现第一版单周期的NPC 感觉我多少还是有些数字电路设计经验的,实现这个微架构应该不用太长时间。 这个图没办法实现auipc和lui指令,需要改进一下。增加ALUSrcA 阅读全文
posted @ 2025-10-16 16:40 veosat 阅读(3) 评论(1) 推荐(0)
摘要: 今天进度还可以,完成了ftrace功能。实现ftrace的时候犯了一个错误:我认为凡是调用jalr或者jal的就是函数调用或者返回,其实不是这样,函数内部也会有跳转,所以函数返回要通过检测跳转的目的地址是否在某个函数的范围内而不是只检测目的地址是否是某个函数的其实地址。完成ftrace之后AM运行时 阅读全文
posted @ 2025-10-16 12:57 veosat 阅读(13) 评论(0) 推荐(0)
  2025年10月15日
摘要: ELF文件的结构网上有很多教程,这里先只记录如何从ELF文件构建地址-函数名。 首先从ELF Header获取section header表的偏移,section header Elf32_Ehdr header; ... fread(&header,sizeof(ELF32_Ehdr),1,fp) 阅读全文
posted @ 2025-10-15 08:32 veosat 阅读(6) 评论(0) 推荐(0)
  2025年10月14日
摘要: verilator最开始的值不会触发verilog动作,例如开始把异步复位rst_n置为0并不会触发异步复位。 符号表类型为FUNC的表项是程序中的函数,每个表项的Value是对应函数的其实地址,Name是函数的名字,可见符号表将函数的名字和地址关联起来了。实际上Name存储的不是函数名字符串,而是 阅读全文
posted @ 2025-10-14 08:57 veosat 阅读(7) 评论(0) 推荐(0)
  2025年10月12日
摘要: 之前做到了“ELF文件和链接”这一节,今天重新回想一下接着往下做。 发现做到了“用RTL实现最简单的处理器”这里,verilog已经写完了,但是用verilogtor搭建得仿真环境有点问题,明天再研究吧 阅读全文
posted @ 2025-10-12 22:30 veosat 阅读(5) 评论(0) 推荐(0)