总线

新讲义还没写好, 大家可以先看上面的课件和视频录播.

将IFU的取指接口改造成AXI-Lite

  1. 用RTL编写一个AXI-Lite的SRAM模块, 地址位宽为32bit, 数据位宽为64bit
  2. 收到读请求后, 通过DPI-C调用pmem_read(), 并延迟一周期返回读出的数据
    • IFU每次取指都要等待一个周期, 才能取到指令交给IDU

将LSU的访存接口改造成AXI-Lite

  1. 用RTL编写一个AXI-Lite的SRAM模块, 地址位宽为32bit, 数据位宽为64bit
  2. 收到读写请求后, 通过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模块交互.

最近更新时间:
贡献者: myyerrol