无名sh · 2022年11月20日 · 美国

USB系列(一)分享一个USB项目ahb|utmi|dma等接口一应俱全

被usb折磨了一段时间了,不写点东西记录一下,都对不起自己的青春。而且以后还将会继续被折磨,所以不写一个系列,真对不起自己的人生呀。希望在记录自己努力学习的过程中,也能给感兴趣的小伙伴儿带来帮助。今天是开篇,先分享一个高质量的usb2.0项目给大家。

本文通过集成各个小项目,最后形成USB这个综合项目,分享给对USB感兴趣的朋友。废话不多说,直接上干货。

  1. USB2.0的IP核
    本项目的核心来自opencores,具体的网址是:https://opencores.org/project...,大家可以自有下载。具体项目参考百度网盘链接中的《USB2.0的IP核(详细verilog源码和文档).rar》。

下图是对应的Architecture。
image.png
具体的文件列表如下图所示:
image.png
2.ahb转wishbone的bridge
具体项目参考百度网盘链接中的《ahb2wishbone_latest.tar.gz》。

端口定义,如下图所示:
image.png
结构框图,如下图所示:
image.png
3.usb_phy项目
具体项目参考百度网盘链接中的《usb_phy_latest.tar.gz》。

模块端口定义
image.png
文件列表,如下图所示:
image.png

  1. 基于ahb接口的usb2.0 controller项目
    我通过将ahb转wishbone接口模块集成到项目中。大家都知道opencores上的开源项目基本都是基于wishbone总线的,但是我们平时接触的最多的还是AMBA总线。大家对AMBA总线都比较熟悉,所以我就集成ahb_to_wishbone_bridge到项目中,这样就把wishbone接口隐藏在内部,你甚至都可以忽略它的存在,对外的接口就变成了ahb接口了,这可以说是比较完美的一种方案了。

项目中的ahb接口转wishbone接口,如下图所示:
image.png
项目中的wishbone接口,如下图所示:
image.png
项目中的usb controller,如下图所示:
image.png
项目中的utmi接口,如下图所示:
image.png
项目中的dma接口,如下图所示:
image.png

  1. 基于ahb接口的usb2.0 controller+phy项目
    在《ahb_usb2_controller.tar.gz》的基础上又集成了usb_phy,如下图所示,具体项目参考百度网盘链接中的《ahb_usb20_controller_phy.rar》。
    image.png
    6.如何获得所有的资料
    如果觉得对您有帮助,请关注微信公众号《芯片验证日记》,一键三连,后台回复"usb"即可获得网盘连接。网盘内容如下
    image.png
  2. 主项目的spec中文翻译版本
    本文的翻译版本,并非直接丢给google自动翻译的结果。虽然翻译的过程中也有借助google翻译,但是每一句都有仔细斟酌,并对不合理的地方进行了修正。具体请参考百度网盘链接中的《USB_Function_IP_Core中译版.docx》

8.油管上对应的视频
油管上对应的视频我也帮你扒下来了,时长2小时21分钟,具体请参考百度网盘链接中的《USB2.0_core_verification_UVM_SR_SES1_demo.mp4》。等后续我时间充足一点,我打算基于这个项目,从零搭建一套完整的UVM验证环境。

写文章不易,如果觉得对您有帮助,麻烦一键三连,或者赏个鸡腿也行。

推荐阅读
USB
关注数
4
内容数
1
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息