RISC-V MCU中文社区

【分享】 蜂鸟E203 SoC的私有设备总线的简单使用

发表于 全国大学生集成电路创新创业大赛 2021-06-06 15:57:21
16
4876
5

一、队伍介绍

参赛队名:英勇不秃 队伍编号:CICC2990

本篇主要介绍蜂鸟E203 SoC的私有设备总线的使用

二、私有设备总线接口

BIU模块接收IFULSU单元的存储器访问请求,判断访问地址区间后,通过ICB接口来访问外部的不同接口,比如系统存储接口和私有外设接口。系统存储接口连接的是SoC中的系统存储总线,可以访问ROMFLASH等。而私有外设接口连接的是私有设备总线,可以访问UARTGPIO等。

在设计和扩展E203 SoC功能的过程中,我们一般都会为系统需要添加外设到私有设备总线上,如何添加和配置是主要的问题。

通过阅读SoC工程RTL代码可以发现,e203_subsys_perips.v,蜂鸟在私有外设总线接口(PPI)上,给我们预留了一定的地址空间(Reserved)。


我们知道,E203采用的是自定义的总线协议ICB,其主要包含2个通道:命令通道和返回通过。ICB协议并不复杂,其主要的特点是从设备在反馈时需要判断主设备是否ready,并将rsp_valid信号拉高以视为一次完整传输的结束。进一步学习其协议时序,为我们所设计的外设添加上ICB总线接口。


除此之外,我们还需要根据地址区间,声明我们外设中的控制寄存器,以便进一步设计和使用。如:


三、总结

这篇贴子简单分享了蜂鸟E203 SoC的私有设备总线的使用方法,本人能力有限,难免可能会出现疏漏,但还是希望能够帮助到大家,同时也希望大家指正,祝各参赛队比赛顺利!

 

喜欢5
用户评论 (16)
  • riscv

    2023-10-26 14:50:41 riscv 1#

    hhulll

    您可以新建一个.h文件 header file,声明之后再将其include到hbird_skd_soc.h里面。

    请问hbird_skd_soc.h这个头文件是在sdk里面吗?没有检索到

  • 突刺咸鱼

    2021-06-09 16:43:04 突刺咸鱼 2#

    hhulll

    会的呢

    大佬,感觉可能出现在总线代码那里的问题,虽然我们的仿真图是对的,但是可能会出现时序上的错误。能分享一下.v总线那一块的代码书写的经验吗?ICB总线以前确实没接触过啊..

  • 突刺咸鱼

    2021-06-09 11:14:40 突刺咸鱼 3#

    hhulll

    会的呢

    好的好的,我再去试试,谢谢啦

  • hhulll

    2021-06-09 11:05:55 hhulll 4#

    突刺咸鱼

    我发现好像把icb_rsp_err输入输出搞反了,但这个会影响结果吗..

    会的呢

  • 突刺咸鱼

    2021-06-09 10:59:28 突刺咸鱼 5#

    hhulll

    MCAUSE是7,store指令出错了,应该是它store不到0x10042000这个地址,可能还是你声明或者你接外设时出的问题,可以先考虑看仿真波形,是否真的可以访问到这个地址

    我发现好像把icb_rsp_err输入输出搞反了,但这个会影响结果吗..

  • 突刺咸鱼

    2021-06-09 10:36:13 突刺咸鱼 6#

    hhulll

    MCAUSE是7,store指令出错了,应该是它store不到0x10042000这个地址,可能还是你声明或者你接外设时出的问题,可以先考虑看仿真波形,是否真的可以访问到这个地址

    这个波形图好像也是访问到了地址啊...晕了


  • 突刺咸鱼

    2021-06-09 10:32:30 突刺咸鱼 7#

    hhulll

    MCAUSE是7,store指令出错了,应该是它store不到0x10042000这个地址,可能还是你声明或者你接外设时出的问题,可以先考虑看仿真波形,是否真的可以访问到这个地址

    大佬,我们定义外设引脚的时候是把外设模块例化进system那个顶层文件里面,然后把他的几个接口定义成为输入输出,比如SD卡的四个引脚我就放在system那个顶层文件作为输入输出,这样可以的吧,你们是怎么做的啊....


  • hhulll

    2021-06-09 10:24:56 hhulll 8#

    突刺咸鱼

    大佬,我们这么写总是出现这个错误啊,你们遇到过吗...晕了

    MCAUSE是7,store指令出错了,应该是它store不到0x10042000这个地址,可能还是你声明或者你接外设时出的问题,可以先考虑看仿真波形,是否真的可以访问到这个地址

  • 突刺咸鱼

    2021-06-09 10:19:45 突刺咸鱼 9#

    hhulll

    例:这样用没问题呀

    大佬,我们这么写总是出现这个错误啊,你们遇到过吗...晕了

  • 突刺咸鱼

    2021-06-08 18:47:47 突刺咸鱼 10#

    hhulll

    例:这样用没问题呀

    好的好的,谢谢了,我去看看...

  • hhulll

    2021-06-08 18:22:26 hhulll 11#

    突刺咸鱼

    改了还是错的啊,大佬能分享下你们执行的主函数是怎么写的吗..

    例:这样用没问题呀

  • 突刺咸鱼

    2021-06-08 17:49:47 突刺咸鱼 12#

    hhulll

    您可以看到我们声明的最后一句,可以在程序中直接使用如 SD_REG(PADDR_SD) 对此地址进行操作

    改了还是错的啊,大佬能分享下你们执行的主函数是怎么写的吗..

  • hhulll

    2021-06-08 17:33:50 hhulll 13#

    突刺咸鱼

    您好大佬,能看下你们的运行程序吗,我们这样写的,但似乎出错了

    您可以看到我们声明的最后一句,可以在程序中直接使用如 SD_REG(PADDR_SD) 对此地址进行操作

  • 突刺咸鱼

    2021-06-08 17:19:00 突刺咸鱼 14#

    hhulll

    您可以新建一个.h文件 header file,声明之后再将其include到hbird_skd_soc.h里面。

    您好大佬,能看下你们的运行程序吗,我们这样写的,但似乎出错了

  • hhulll

    2021-06-08 17:10:54 hhulll 15#

    突刺咸鱼

    您好,我想问一下你在软件程序中声明地址区间的时候是在哪一个文件啊

    您可以新建一个.h文件 header file,声明之后再将其include到hbird_skd_soc.h里面。

hhulll

hhulll 实名认证

懒的都不写签名

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