RISC-V技术论坛
登录
直播中
恐龙之家
9年用户
908经验值
私信
关注
[经验]
如何为蜂鸟添加DDR内存扩展
蜂鸟
DDR
本队伍编号
CICC3042
,本文介绍如何为蜂鸟添加
DDR
内存扩展。一些需要大存储空间的设计中经常需要使用
DDR
,这时我们希望蜂鸟可以访问
DDR
,以实现更好的软硬件协同。
简单阅读蜂鸟的代码发现,蜂鸟本身提供了外部存储器的访问接口,在e203_subsys_mems.v文件中可以找到:
同时在这个源文件中实现了一主多从的总线系统,可以看到sysmem被分配到0x80000000到0xFFFFFFFF的地址空间,共有2G。注意这里ITCM的起始地址为0x80000000,DTCM的起始地址为0x90000000,与sysmem地址空间重合,实际上在代码中判断了如果访存地址位于0x80000000和0x90000000起始的64k空间范围内时,内核会访问ITCM和DTCM;如果不在上述空间范围内,内核会通过sysmem接口访问外部存储器。这里通过sysmem接口扩展内存空间是简单方便的方法。
蜂鸟提供了icb2axi模块,为了方便在block design中使用,将其封装为IP,保留其可配置参数,如下所示:
为了方便多个设备访问DDR,这里采用axi接口的MIG控制器,可以方便地使用axiinterconnect,block design结构如下,MIG控制器的使用这里不再展开。
随后需要分配地址空间,为了节省
BRAM
空间,我们去掉了
ITCM
和
DTCM
,因此
DDR
的地址空间从
0x80000000
开始,这样蜂鸟可以访问完整的
DDR
空间。这里为了测试处理器访问
0x40000000
的地址空间,使用了两块
BRAM
,从
0x40000000
开始分别分配
4k
的地址空间(仅作测试用,可以正常访问)。
最后在顶层system.v文件中例化block design,并添加DDR访问接口:
添加DDR内存扩展前,原来的蜂鸟v2在Nexys Video上的资源消耗如下:
添加DDR访问的部分,去掉ITCM和DTCM后,蜂鸟v2在Nexys Video上的资源消耗如下:
测试发现程序可以正常下载和运行。
更多回帖
rotate(-90deg);
回复
相关帖子
蜂鸟
DDR
如
何为
STM32
扩展
内存
呢
6024
利用
蜂鸟
E203搭建SoC【4】——
DDR
200T
内存
扩展
141
如
何为
DDR
5
内存
接口构建 AMI 模型
4132
DDR
内存
与SDRAM的区别
DDR
4
内存
与
DDR
3
内存
哪个好
4831
基于E203的
DDR
内存
扩展
开发
100
DDR
5
内存
与
DDR
4
内存
性能差异
4830
蜂鸟
机器人如
何为
搜素救援提供帮助
819
如何检测
DDR
内存
性能
4574
DDR
内存
频率对性能的影响
5697
如何选择
DDR
内存
条
DDR
3与
DDR
4
内存
区别
10948
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分