RISC-V MCU中文社区

【分享】 DDR扩展方案

发表于 全国大学生集成电路创新创业大赛 2023-05-25 16:03:58
0
984
1

报名编号:CICC1764
团队名称:两年半IC练习生

使用的rtl官方源代码:e203_hbirdv2
使用的FPGA开发板:DDR200T

扩展原因:蜂鸟e203的内存ITCM和DTCM都是64k,太小,不能加载较大的程序(如:几M)

扩展方案:使用DDR200T上板载的DDR3对内存进行扩展
图片alt
扩展方案结构图:
图片alt
该方案中DDR3使用vivado提供的axi接口mig的IP核来进行控制,蜂鸟e203源代码中提供了icb2axi模块,可以使发出数据的从icb协议转到axi协议。axi_interconnect实现了数据的跨时钟域和位宽转换,并将转换后的数据传给mig模块进而实现对DDR3的控制。

简单阅读蜂鸟的代码发现,蜂鸟本身提供了外部存储器的访问接口,在e203_subsys_mems.v文件中可以找到:
图片alt
同时在这个源文件中实现了一主多从的总线系统,可以看到sysmem被分配到0x80000000到0xFFFFFFFF的地址空间,共有2G。注意这里ITCM的起始地址为0x80000000,DTCM的起始地址为0x90000000,与sysmem地址空间重合,实际上在代码中判断了如果访存地址位于0x80000000和0x90000000起始的64k空间范围内时,内核会访问ITCM和DTCM;如果不在上述空间范围内,内核会通过sysmem接口访问外部存储器。这里通过sysmem接口扩展内存空间是简单方便的方法。

喜欢1
用户评论
北落师门

北落师门 实名认证

懒的都不写签名

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