总线
新讲义还没写好, 大家可以先看上面的课件和视频录播.
将IFU的取指接口改造成AXI-Lite
- 用RTL编写一个AXI-Lite的SRAM模块, 地址位宽为32bit, 数据位宽为64bit
- 收到读请求后, 通过DPI-C调用
pmem_read()
, 并延迟一周期返回读出的数据- IFU每次取指都要等待一个周期, 才能取到指令交给IDU
将LSU的访存接口改造成AXI-Lite
- 用RTL编写一个AXI-Lite的SRAM模块, 地址位宽为32bit, 数据位宽为64bit
- 收到读写请求后, 通过DPI-C调用
pmem_read()
/pmem_write()
, 并延迟一周期返回读出的数据/写回复- LSU每次访存都要等待一个周期
- 此时可以保留
pmem_read()
/pmem_write()
中的设备访问功能, 我们将在SoC章节介绍如何通过总线访问外设
实现AXI-Lite仲裁器
保留一个AXI-Lite的SRAM模块, 编写一个AXI-Lite的Arbiter, 从IFU和LSU的AXI-Lite中选一个master与SRAM模块交互.