🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/全国大学生集成电路创新创业大赛/利用蜂鸟E203搭建SoC【1】——AXI总线的配置与板级验证
利用蜂鸟E203搭建SoC【1】——AXI总线的配置与板级验证
全国大学生集成电路创新创业大赛 作者 Z 发布于 2021-06-10 17:39(1947 天前) 12482 浏览

队伍编号: CICC1842 


由于Vivado中Block Design的友好的ui界面以及丰富的IP资源,在FPGA上实现SoC大多会采用Block Design进行设计与实现。对于基于蜂鸟e203内核的SoC设计,为了使其融合进BD设计流程,第一步需要对其总线进行配置以便于后续的SoC搭建。


蜂鸟e203内部使用的是icb总线,这种总线协议与AXI类似,都采用了握手信号进行传输,相对易于转换;此外,在蜂鸟提供的rtl代码中也提供了icb连接AXI从设备的示例,位于/subsys/ e203_subsys_mems.v文件中,为了避免自己连接造成的错误,可以直接使用这些转换好的AXI-MASTER信号,并将其作为输入输出端口引出到顶层。此外,AXI总线的地址分配也在/subsys/ e203_subsys_mems.v文件中声明,sirv_icb1to8_bus模块中的参数定义了各个从设备的基地址与地址范围,如下图所示

其中BASE_ADDR指明了从设备的基地址,BASE_REGION_LSB指明了从设备的地址范围,为(1<< BASE_REGION_LSB)。在这里我使用了O5端口作为AXI总线的从设备端口,并将地址范围定位A000_0000~BFFF_FFFF。此后,将e203模块打包,并在端口定义中对axi总线端口进行声明与配置,即可得到如下图所示的总线端口。


其中expl_axi即为AXI-MASTER端口,可以直接连接Vivado中提供的AXI从设备。

打包成功后,接下来可以利用LED对该总线是否可以正常工作进行验证,如果利用IDE编程可以控制LED的亮与灭,即可以说明AXI总线可以正确传输数据。Block Design设计如下:


其中axi-gpio的地址设置为0xb000_0000~0xbfff_ffff,设置为全输出,并将其连接到FPGA开发板上的LED管脚。测试程序如下图所示,程序主要控制LED闪烁,如果可以在FPGA开发板上观察到LED闪烁,即可以验证AXI总线连接正常,可以进行后续操作。


全部回复 11
1
111111295 天前 · 1 楼
回复 匿名用户:

请问在添加AXI总线后下载时出现Debug Interrupt didn't clear是什么原因呢


你好,请问你解决了吗?我也是一样的问题


Z
Z1323 天前 · 2 楼
回复 123666:

请问解决了吗

有点久远了,应该是红圈里面的方法

1
1236661333 天前 · 3 楼
回复 匿名用户:

大佬,用VIVADO封装E203 ip的时候,是用这个,然后把RTL加进去吗?还是用上面的,把接口加进去呢

请问解决了吗

匿
1676 天前 · 4 楼

请问在添加AXI总线后下载时出现Debug Interrupt didn't clear是什么原因呢


匿
1688 天前 · 5 楼

大佬,用VIVADO封装E203 ip的时候,是用这个,然后把RTL加进去吗?还是用上面的,把接口加进去呢

匿
1689 天前 · 6 楼
回复 Z:

是这样

emmm...大佬,我是需要直接把 e203_subsys_mems 这个模块里例化的 这个模块直接放到system层,然后声明对应的输入输出端口,这样对吗?

匿
1689 天前 · 7 楼
回复 Z:

是这样

好的,谢谢大佬

Z
Z1689 天前 · 8 楼
回复 匿名用户:

大佬,请问使用 sirv_gnrl_icb2axi 这个模块作为AXI Master吗?引出这个模块后再把E203封装成SoC,然后用Block Design设计?

是这样

匿
1689 天前 · 9 楼

大佬,请问使用 sirv_gnrl_icb2axi 这个模块作为AXI Master吗?引出这个模块后再把E203封装成SoC,然后用Block Design设计?

Z
Z1886 天前 · 10 楼
回复 剑阁闻铃:

您好,我想问一下就是在引出AXI总线的时候,1to8和转换协议这两个模块怎么改?

axi的1to8可以用vivado的interconnect ip做,我没有自己在代码里加。

转换协议e203里面给了例程的

剑阁闻铃
剑阁闻铃1886 天前 · 11 楼

您好,我想问一下就是在引出AXI总线的时候,1to8和转换协议这两个模块怎么改?

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