RISC-V MCU中文社区

【分享】 通过DDR对蜂鸟E203处理器进行内存拓展(二)

发表于 全国大学生集成电路创新创业大赛 2023-05-26 22:53:28
0
1260
2

一、队伍信息:

团队编号:CICC1156

团队名称:兔飞猛进

开发板:DDR200T

二、mig

mig是Vivado中的DDR的控制IP核,他提供的AXI类型的总线接口可以实现DDR的访问

直接在IP Catalog中搜索mig即可
mig IP

配置参数可参考此分享DDR200T中DDR的使用与时序介绍_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (riscv-mcu.com)

成功配置完成mig后,可以打开其例子工程,新工程会自动生成ddr的模型,可以将相应的文件加入自己的工程中

注意在仿真时,需要在source中添加ddr3_model.sv和ddr3_model_parameters.vh文件,并实例化ddr模型,而在综合时不需要。

三、总线协议转换—-icb2axi

蜂鸟处理器核预留的内存拓展信号为icb总线协议,而mig的信号为axi总线协议,需要通过一个模块对这两种总线协议进行转换。

首先我们通过博客先了解一下这两种总线协议,

icb总线:【分享】关于ICB总线的应用_中国研究生创芯大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (riscv-mcu.com)

axi总线:AXI总线介绍 - 迈克老狼2012 - 博客园 (cnblogs.com)

然后,对于两种总线协议的转换,蜂鸟在sirv_gnrl_icbs.v源文件中提供了sirv_gnrl_icb2axi模块,通过它可以优雅地进行协议转换

四、测试

为了测试蜂鸟处理器对DDR的读写是否正确,编写了以下测试程序
测试程序源代码

值得注意的是,由于DDR与itcm和dtcm之间存在地址空间冲突,因此应该选择在一个不会发生冲突的地址进行测试,这里我们选择0x8100 0000,当然也可以通过设置itcmh和dtcm的基地址来解决冲突。
测试结果

测试发现DDR读写正确,DDR内存拓展完成。

喜欢2
用户评论
锟斤拷

锟斤拷 实名认证

手持两把锟斤拷,口中疾呼烫烫烫。脚踏千朵屯屯屯,笑看万物锘锘锘

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