本文通过集成各个小项目,最后形成USB这个综合项目,分享给对USB感兴趣的朋友。废话不多说,直接上干货。
1、USB2.0的IP核
本项目的核心来自opencores,具体项目参考百度网盘链接中的《USB2.0的IP核(详细verilog源码和文档).rar》。
下图是对应的Architecture。
具体的文件列表如下图所示:
2、ahb转wishbone的bridge
具体项目参考百度网盘链接中的《ahb2wishbone_latest.tar.gz》。
端口定义,如下图所示:
结构框图,如下图所示:
3、usb_phy项目
具体项目参考百度网盘链接中的《usb_phy_latest.tar.gz》。
模块端口定义
文件列表,如下图所示:
4、基于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》。
原作者:无名sh
更多回帖