🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/全国大学生集成电路创新创业大赛/为蜂鸟处理器添加DDR内存扩展
为蜂鸟处理器添加DDR内存扩展
全国大学生集成电路创新创业大赛 作者 王翔 发布于 2021-05-10 08:45(1979 天前) 10320 浏览

本队伍编号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控制器,可以方便地使用axi interconnect,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上的资源消耗如下:

测试发现程序可以正常下载和运行。

全部回复 8
叶
叶逸昇519 天前 · 1 楼
回复 月影,花香,风满楼:

请问有大佬知道 硬件配置好DDR后 程序在编译的时候 如何修改链接文件和启动文件将它下到DDR里头而不是itcm?

你好,请问你现在知道如何操作了吗


月影,花香,风满楼
月影,花香,风满楼1247 天前 · 2 楼
回复 匿名用户:

还可以关掉ITCM和DTCM的吗?那软件能直接加载到SDRAM里运行?

同问

月影,花香,风满楼
月影,花香,风满楼1248 天前 · 3 楼

请问有大佬知道 硬件配置好DDR后 程序在编译的时候 如何修改链接文件和启动文件将它下到DDR里头而不是itcm?

月影,花香,风满楼
月影,花香,风满楼1248 天前 · 4 楼
回复 匿名用户:

还可以关掉ITCM和DTCM的吗?那软件能直接加载到SDRAM里运行?

仿真可以 上开发板不能 需要修改CPU启动文件和ld链接文件

匿
1683 天前 · 5 楼

还可以关掉ITCM和DTCM的吗?那软件能直接加载到SDRAM里运行?

剑阁闻铃
剑阁闻铃1863 天前 · 6 楼

您好,我也是想添加端口增加外设,但是有些问题,请问您可以加我下QQ么 791874184

王翔
王翔1976 天前 · 7 楼
回复 威尔罗格:

请问你们使用的是一代蜂鸟E203还是二代蜂鸟E203

我们使用的第二代

威
威尔罗格1977 天前 · 8 楼

请问你们使用的是一代蜂鸟E203还是二代蜂鸟E203

💡 请 登录 后参与讨论(微信扫码即登录/注册)