ARM技术论坛
直播中

訾存贵

7年用户 924经验值
私信 关注
[经验]

分享一个高质量的usb2.0项目

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

1、USB2.0的IP核

本项目的核心来自opencores,具体项目参考百度网盘链接中的《USB2.0的IP核(详细verilog源码和文档).rar》。

下图是对应的Architecture。

1.jpg

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

1.jpg

2、ahb转wishbone的bridge

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

端口定义,如下图所示:

1.jpg

2.jpg

结构框图,如下图所示:

1.jpg

3、usb_phy项目

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

模块端口定义

1.jpg

文件列表,如下图所示:

1.jpg

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

我通过将ahb转wishbone接口模块集成到项目中。大家都知道opencores上的开源项目基本都是基于wishbone总线的,但是我们平时接触的最多的还是AMBA总线。

大家对AMBA总线都比较熟悉,所以我就集成ahb_to_wishbone_bridge到项目中,这样就把wishbone接口隐藏在内部,你甚至都可以忽略它的存在,对外的接口就变成了ahb接口了,这可以说是比较完美的一种方案了。

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

1.jpg

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

1.jpg

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

1.jpg

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

1.jpg

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

1.jpg

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

1.jpg

原作者:无名sh

更多回帖

发帖
×
20
完善资料,
赚取积分