RISC-V MCU中文社区

【分享】 利用蜂鸟E203搭建SoC【4】——DDR200T内存扩展

发表于 全国大学生集成电路创新创业大赛 2021-06-10 19:58:21
6
4085
1

队伍编号: CICC1842 


由于FPGA内部存储资源有限,很多时候不能满足需求,因此可以利用DDR对系统进行存储扩展。由于DDR3内部控制十分复杂,因此可以基于AXI总线,利用Vivado提供的MIG IP对DDR3进行控制,使DDR3成为系统的一部分,可以直接通过地址进行读写。


在配置MIG时,主要注意以下几点:

1. Clock Period选择400MHzRatio选择41,则用户时钟(ui_clock: MIG IP给用户使用的时钟)就为400/41=100 MHz,即SoCMIG IP核通过AXI总线连接100 MHz时钟。

2. Memory Part需要自己建立,因为没有和开发板完全对应的DDR3型号。注意:此处不可随便选,DDR3型号不对应无法工作!Nuclei DDR200T FPGA开发板使用的是MT41K128M16JT-125K,配置如下:


3. Input Clock Period选择200MHz, 此时钟是给DDR3运行时钟,

4.UCF文件需要根据原理图自行配置。


配置完成MIG后,由于e203与MIG(100MHz)时钟频率并不一致,可以将e203降频至10MHz,并通过AXI-Inerconnect进行跨时钟处理,具体连接如下


其中ui_clk连接到M01_ACLK端口,clk_16M连接到S00_ACLK。测试程序如下,


本程序向MIG写入100个数据,再将其读出,如果写入与读出一致,则打印正确标识。经过测试,DDR3工作正常。


喜欢1
用户评论 (6)
  • 月影,花香,风满楼

    2023-05-11 23:39:16 月影,花香,风满楼 1#

    Z

    ddr的地址在接出来的axi地址范围内就可以

    请问DDR硬件连接好后 怎么修改连接文件和启动文件把程序直接下载到DDR里头而不是ilm里头?请问你们有搞过这个吗?

  • 2022-04-16 21:45:31 2#

    Z

    我们就是用mig对ddr进行时序控制的

    好的好的,非常感谢

  • Z

    2022-04-16 21:44:37 Z 3#

    你好,我想请教一下,就是这个DDR3挂载到总线上,可以使用Vivado的MIG IP核对时序进行控制吗?

    我们就是用mig对ddr进行时序控制的

  • 2022-04-16 20:02:44 4#

    你好,我想请教一下,就是这个DDR3挂载到总线上,可以使用Vivado的MIG IP核对时序进行控制吗?

  • Z

    2022-03-27 23:48:58 Z 5#

    你好,我的DDR跟你的连接方式一样,注意到你的地址设为0xA0000000,请问在内核的perips里要把AXI的地址做相应偏移嘛?

    ddr的地址在接出来的axi地址范围内就可以

  • 2022-03-27 21:38:57 6#

    你好,我的DDR跟你的连接方式一样,注意到你的地址设为0xA0000000,请问在内核的perips里要把AXI的地址做相应偏移嘛?

Z

Z 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板