被usb折磨了一段时间了,不写点东西记录一下,都对不起自己的青春。而且以后还将会继续被折磨,所以不写一个系列,真对不起自己的人生呀。希望在记录自己努力学习的过程中,也能给感兴趣的小伙伴儿带来帮助。今天是开篇,先分享一个高质量的usb2.0项目给大家。
本文通过集成各个小项目,最后形成USB这个综合项目,分享给对USB感兴趣的朋友。废话不多说,直接上干货。
- USB2.0的IP核
本项目的核心来自opencores,具体的网址是:https://opencores.org/project...,大家可以自有下载。具体项目参考百度网盘链接中的《USB2.0的IP核(详细verilog源码和文档).rar》。
下图是对应的Architecture。
具体的文件列表如下图所示:
2.ahb转wishbone的bridge
具体项目参考百度网盘链接中的《ahb2wishbone_latest.tar.gz》。
端口定义,如下图所示:
结构框图,如下图所示:
3.usb_phy项目
具体项目参考百度网盘链接中的《usb_phy_latest.tar.gz》。
模块端口定义
文件列表,如下图所示:
- 基于ahb接口的usb2.0 controller项目
我通过将ahb转wishbone接口模块集成到项目中。大家都知道opencores上的开源项目基本都是基于wishbone总线的,但是我们平时接触的最多的还是AMBA总线。大家对AMBA总线都比较熟悉,所以我就集成ahb_to_wishbone_bridge到项目中,这样就把wishbone接口隐藏在内部,你甚至都可以忽略它的存在,对外的接口就变成了ahb接口了,这可以说是比较完美的一种方案了。
项目中的ahb接口转wishbone接口,如下图所示:
项目中的wishbone接口,如下图所示:
项目中的usb controller,如下图所示:
项目中的utmi接口,如下图所示:
项目中的dma接口,如下图所示:
- 基于ahb接口的usb2.0 controller+phy项目
在《ahb_usb2_controller.tar.gz》的基础上又集成了usb_phy,如下图所示,具体项目参考百度网盘链接中的《ahb_usb20_controller_phy.rar》。
6.如何获得所有的资料
如果觉得对您有帮助,请关注微信公众号《芯片验证日记》,一键三连,后台回复"usb"即可获得网盘连接。网盘内容如下 - 主项目的spec中文翻译版本
本文的翻译版本,并非直接丢给google自动翻译的结果。虽然翻译的过程中也有借助google翻译,但是每一句都有仔细斟酌,并对不合理的地方进行了修正。具体请参考百度网盘链接中的《USB_Function_IP_Core中译版.docx》
8.油管上对应的视频
油管上对应的视频我也帮你扒下来了,时长2小时21分钟,具体请参考百度网盘链接中的《USB2.0_core_verification_UVM_SR_SES1_demo.mp4》。等后续我时间充足一点,我打算基于这个项目,从零搭建一套完整的UVM验证环境。
写文章不易,如果觉得对您有帮助,麻烦一键三连,或者赏个鸡腿也行。