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

电子说

1.3w人已加入

描述

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

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

1. USB2.0的IP核

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

下图是对应的Architecture。

usb

具体的文件列表如下图所示:

usb

2.ahb转wishbone的bridge

具体项目参考百度网盘链接中的《ahb2wishbone_latest.tar.gz》。

端口定义,如下图所示:

usb

结构框图,如下图所示:

usb

3.usb_phy项目

具体项目参考百度网盘链接中的《usb_phy_latest.tar.gz》。

模块端口定义

usb

文件列表,如下图所示:

usb

4. 基于ahb接口的usb2.0 controller项目

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

项目中的ahb接口转wishbone接口,如下图所示:

usb

项目中的wishbone接口,如下图所示:

usb

项目中的usb controller,如下图所示:

usb

项目中的utmi接口,如下图所示:

usb

项目中的dma接口,如下图所示:

usb

5. 基于ahb接口的usb2.0 controller+phy项目

在《ahb_usb2_controller.tar.gz》的基础上又集成了usb_phy,如下图所示,具体项目参考百度网盘链接中的《ahb_usb20_controller_phy.rar》。

usb

6.如何获得所有的资料

如果觉得对您有帮助,请关注微信公众号《芯片验证日记》,一键三连,后台回复"usb"即可获得网盘连接。网盘内容如下

usb

7. 主项目的spec中文翻译版本

本文的翻译版本,并非直接丢给google自动翻译的结果。虽然翻译的过程中也有借助google翻译,但是每一句都有仔细斟酌,并对不合理的地方进行了修正。具体请参考百度网盘链接中的《USB_Function_IP_Core中译版.docx》

8.油管上对应的视频

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

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分