RISC-V MCU中文社区

【分享】 利用蜂鸟E203搭建SoC【1】——AXI总线的配置与板级验证

发表于 全国大学生集成电路创新创业大赛 2021-06-10 17:39:01
11
7609
15

队伍编号: 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总线连接正常,可以进行后续操作。


喜欢15
用户评论 (11)
  • 11111

    2023-03-24 10:54:52 11111 1#

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


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


  • Z

    2023-02-24 20:00:31 Z 2#

    123666

    请问解决了吗

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

  • 123666

    2023-02-14 17:19:11 123666 3#

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

    请问解决了吗

  • 2022-03-08 12:32:17 4#

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


  • 2022-02-24 11:28:30 5#

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

  • 2022-02-23 20:46:08 6#

    Z

    是这样

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

  • 2022-02-23 20:20:29 7#

    Z

    是这样

    好的,谢谢大佬

  • Z

    2022-02-23 20:18:42 Z 8#

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

    是这样

  • 2022-02-23 20:14:20 9#

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

  • Z

    2021-08-11 09:30:02 Z 10#

    剑阁闻铃

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

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

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

  • 剑阁闻铃

    2021-08-10 22:21:09 剑阁闻铃 11#

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

Z

Z 实名认证

懒的都不写签名

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