USB IP核的设计及FPGA验证
基于FPGA的USB接口IP核设计

基于FPGA的USB接口IP核设计USB(通用串行总线)作为一种外设连接技术,是计算机外设连接技术的重大变革,USB具有速度快、通用性好、扩展性强、功耗低、稳定、易开发等众多优点,在实践中获得了广泛的应用,逐步成为PC机的一种标准接口。
USB接口控制芯片是实现USB设备与主机建立通信所必须的芯片,目前国内的USB开发者所采用的芯片都是由国外的芯片商所提供,如Cypress、NEC、Motorola等大的IC设计公司,价格较贵。
由于USB的广泛应用,国内外众多科研机构和集成电路设计公司都把目光投向USB这项具有广阔市场前景的技术。
USB内核(USB Core)是USB接口控制芯片的关键模块,设计一个稳定、高速的USB内核更是芯片成功推向市场的前提。
1 USB通信原理USB通信逻辑上分成了3层:信号层、协议层和数据层。
信号层用来实现在USB 设备和主机的物理连接之间传输位信息流的信息。
逻辑层用来实现在USB设备和USB主机端的协议软件之间传输包字节流的信息,它们在信号层被编码成NRZI位信息后传送出去。
数据传输层用来实现在USB主机端的客户端驱动程序和设备端的功能接口之间传输有一定意义的信息,这些信息在协议层被打包成包格式。
1.1 传输的基本单元包(Packet)是USB系统中信息传输的基本单元。
结构,如图1所示,根据USB 规范,包的类型有:令牌包、数据包、握手包和专用包。
USB总线操作(通讯过程)都可以归结为3种包的传输:令牌包、数据包和应答包。
任何操作都是从主机开始的,主机以预先排好的时序,发出一个描述操作类型、方向、外设地址以及端点号,称之为令牌包Foken Packet。
然后由在令牌中指定的数据发送者发出一个数据包Data Packet或者报告它没有数据可以传输。
而数据的目的地一般要以一个应答包Handshake Packet做出响应表明传输是否成功。
1.2 事务处理事务处理(Transaction)是指USB总线上数据信息的一次接收或发送的处理过程。
USB2.0设备控制器IP核的设计与实现

USB2.0设备控制器IP核的设计与实现
李美峰;戴冠中;胡伟;张德刚
【期刊名称】《计算机测量与控制》
【年(卷),期】2008(16)12
【摘要】USB2.0接口以其速度快、功耗低、使用方便,为PC外设中的大容量存储设备提供了很好的支持,出现了一系列的便携式大容量存储设备;文中针对大容量存储设备高速数据传输要求,根据USB2.0协议规范,利用VHDL语言设计实现了一种USB2.0设备控制器的IP核,为高速USB设备的开发打下了基础,可以用于SOC集成中.
【总页数】3页(P1943-1944,1956)
【作者】李美峰;戴冠中;胡伟;张德刚
【作者单位】西北工业大学自动化学院,陕西西安,710072;西北工业大学自动化学院,陕西西安,710072;西北工业大学自动化学院,陕西西安,710072;西北工业大学自动化学院,陕西西安,710072
【正文语种】中文
【中图分类】TP393
【相关文献】
B
2.0设备控制器IP核的设计与验证 [J], 王秀玲;周明健;林平分
B2.0设备控制器IP核设计 [J], 金钊
3.AXI4总线的USB2.0设备控制器IP核设计 [J], 韩进;秦宏超;刘锴
4.基于WISHBONE片上总线的USB2.0设备控制器IP核的设计 [J], 孙爱良;徐磊
5.符合EHCI的USB2.0主机控制器IP核设计与实现 [J], 左斌;余敬鹏;周晓方;黄宏
因版权原因,仅展示原文概要,查看原文内容请购买。
USB_FIRMWARE_FPGA总体设计

USB硬件控制内核总体设计伍俊洪一.功能定义该设计中要完成一个控制PDIUSBD12的FPGA硬件电路,功能等同于设备固件程序的功能。
设备完成设备枚举和简单的通过USB向FIFO读写数据的功能。
该部分的特性决定后面电路的设计,具体要求如下:1.利用并口方式实现FPGA和PDIUSBD12通信,不实现两者之间的DMA通信。
2.PDIUSBD12系统采用本地系统供电方式,不是用总线供电。
FPGA提供向复位信号,内部终结于1,不用FPGA复位PDIUSBD12。
3.PDIUSBD12使用模式0(NO-ISO非同步模式):端点0为控制传送,端点1为一般传送,端点2为一般传送。
4.PDIUSBD12接口为不使用地址/数据总线模式,直接使用USB_A0来判别命令和数据(FPGA内部终结USB_ALE和CS于底电平)。
5.支持总线复位、挂起和唤醒功能以及激活端点、禁用端点功能。
6.设备描述为单个配置、单个接口(只有一个设置、没有替代设置)、一个接口两个端点(1、2)。
7.不支持字符串描述符。
二.开发板上PDIUSBD12和FPGA接口信号开发板上PDIUSBD12定义了如下的一些信号线连接到FPGA芯片。
在设计FPGA中使用如下信号定义。
USB_000--------_007USB_ALE (FPGA内部被终止于0)USB_CS (FPGA内部被终止于0,对应板子USB_CS#)SUSPENDUSB_CLKOUTUSB_INT (对应板子USB_INT#)USB_A0USB_RST (FPGA内部被终止于1,对应板子USB_RST#) USB_WR (对应板子USB_WR#)USB_RD (对应板子USB_RD#)三.FPGA外部接口和时序要求FPGA实现的USB硬件控制(固件程序)内核使用类似于80C51并行接口的连接方式和PDIUSBD12进行连接。
FPGA和PDIUSBD12两者的通信方式的功能、时序要求满足并行接口的要求。
基于 USB 的 FPGA 开发板系统设计

基于 USB 的 FPGA 开发板系统设计在现代电子设备的设计中,基于可编程逻辑器件(FPGA)的系统设计越来越成为主流。
FPGA可以被重新配置,因此电子设备制造商可以在不更换电路板的情况下对其进行修改和升级。
而针对FPGA的开发板也越来越多,且采用USB作为设备间通信的标准,这给电子工程师们提供了更加便利的条件来进行设计实现。
本文将介绍基于USB的FPGA开发板系统设计,并探究其应用和优势。
一、选型当电子工程师决定使用基于USB的FPGA开发板进行系统设计时,首先需要确定自己需要的功能。
因为不同的FPGA开发板具有不同的特性和功能,正确的选型可以使设计更加高效和成功。
此外,还需要考虑FPGA开发板与PC机的连接方式(如USB接口和JTAG接口),以及接口与外围设备之间的兼容性等因素。
二、设计实现1. FPGA选择在完成选型后,电子工程师需要选择合适的FPGA芯片。
这需要根据项目的需求和功能选择相应的FPGA芯片。
一些知名的FPGA品牌包括Altera、Xilinx和Lattice等。
选择合适的FPGA芯片非常重要,因为这决定了开发板可以实现的功能,并影响了设计周期和成本。
2. 软件一旦选择了FPGA芯片,就需要准备相应的设计软件。
这些软件包括EDA软件(如Altium、Cadence和Mentor Graphics等)和FPGA开发工具(如Xilinx ISE和Altera Quartus等)。
电子工程师需要根据所选的FPGA芯片来选择相应的FPGA开发工具。
3. 开发板设计FPGA开发板的设计方案主要包括调试和验证,这需要工程师设计和实现一个与FPGA芯片和PC机通信的电路板。
在此过程中,应充分利用FPGA芯片提供的外围设备支持功能。
例如,您可以使用FPGA开发板的GPIO接口来与外部设备通信。
4. 内存和存储器开发板需要一个存储空间来保持存储器。
因此,该关键组件将是RAM存储器。
RAM存储器有两种类型——Single Data Rate (SDR)RAM和Double Data Rate(DDR)RAM。
USB设备控制器IP核设计与FPGA验证

关键词:设备控制器 ;串行接 口引擎 ;高速检测 ;控制传输 ;枚举
De s i g n a n d FPGA v e r i ic f a t i o n o f a h i g h — s p e e d US B d e v i c e
c o n t r o l l e r I P c o r e
s y s t e m a r c h i t e c t u r e i s i f r s l t y c l a r i i f e d a n d he t b l o c k d i a g r a ms o f he t d e s i g n a x ' e s h o w n .H i g h s p e e d
用在 U S B设 备 中 , 实现 U S B协 议 的处 理 , 和 特定 的 应用 层结合 , 形成 丰 富的 U S B外 设 。
模块和鼠标等移动增量计算模块。 目 前U S B设备控制器的开发可以分为两种: 一 种只包含 U S B接 口芯片, 由外部 的微控制器管理其
d e t e c t i o n a n d e n u me r a t i o n a r e d e s c i r b e d s p e c i a l l y .T h e d e s i g n i s i mp l e me n t e d b y Ve r i l o g HDL a n d v e i r i f e d i n F P GA.T h e r e s u l t i n d i c a t e s t h a t t } l i s I P c o r e c a n c o mmu n i c a t e wi h t U S B h o s t . Ke y wo r d s :d e v i c e c o n t r o H e r ;US B; h i g h — s p e e d d e t e c t i o n;c o n t r o l t r a n s f e r ;e n u me r a t i o n
USB 2.0 OTG IP核设计和FPGA实现的开题报告

USB 2.0 OTG IP核设计和FPGA实现的开题报告一、研究背景及意义在目前的物联网领域中,大量的设备需要使用USB接口来进行数据传输和交互,例如智能手机、平板电脑、数字相机、USB存储设备等。
传统的USB接口带宽较低,只能实现一般的数据传输,不能满足高速数据传输的需求。
因此,USB 2.0 OTG技术应运而生。
USB 2.0 OTG是一种高速数据传输技术,它能够实现设备之间的直接连接,不需要通过电脑进行数据传输。
这样,设备之间可以快速交换数据,提高了设备的灵活性。
USB 2.0 OTG技术在物联网领域中具有广泛的应用。
为了满足USB 2.0 OTG技术的需求,需要设计和实现一种高性能的USB 2.0 OTG IP核和FPGA设备,以支持USB 2.0 OTG技术的应用。
二、研究内容和方法本研究的内容是设计和实现一种高性能的USB 2.0 OTG IP核,以支持USB 2.0 OTG技术的应用。
同时,使用FPGA实现USB 2.0 OTG功能,验证所设计的IP核的正确性和性能。
具体研究方法包括:1. 分析USB2.0 OTG技术的原理和要求,确定IP核的功能和性能指标。
2. 设计USB 2.0 OTG IP核的硬件结构和逻辑,采用Verilog HDL语言进行实现。
3. 验证USB 2.0 OTG IP核的正确性和性能,包括电路仿真和波形分析等。
4. 使用FPGA实现USB 2.0 OTG功能,同时评估所设计的IP核在FPGA上的性能。
三、研究计划和进度安排项目进度安排如下:1. 5月10日~5月15日:完成开题报告的撰写和提交,确定研究方向和目标。
2. 5月20日~6月10日:分析USB 2.0 OTG技术的原理和要求,确定IP核的功能和性能指标。
3. 6月10日~7月10日:设计USB 2.0 OTG IP核的硬件结构和逻辑,采用Verilog HDL语言进行实现。
4. 7月10日~8月10日:验证USB 2.0 OTG IP核的正确性和性能,包括电路仿真和波形分析等。
USB2 IP核的设计与FPGA实现

USB2 IP核的设计与FPGA实现本文介绍了一种USB2.0设备控制IP核的设计方法。
先总结控制器的功能和内部结构。
再来是控制器的接口和扩展芯片。
然后是内部数据读取方式。
接着是UTMI接口、PL层、存储器接口和仲裁器,控制状态寄存器,最后通过verilog HDL 实现IP核的的设计和功能验证。
经过几年的发展通用串行总线(USB)已经演化成了电脑和外设的连接标准。
在众多嵌入式应用里从鼠标键盘到相机移动电话等都可以通过USB方便地与电脑互连。
随着新的USB标准的诞生,数据高速传输已经成为了可能,然而与之而来的是使用的多样化和复杂化。
当前主流的解决方案是使用USB控制器来检测并对USB端口发生的事件进行回应。
目前市场上供应的USB控制器主要有两种,一种是把微处理器集成在一个芯片里打包处理,另一种则是利用外部的微控制器来管理USB控制器的寄存器、设备描述符的内容读取和外部数据交换,这里的USB 芯片仅处理USB通信。
本文所设计的控制器属于后者。
IP核(知识产权核,intellectual property core),是指某一方提供的、形式为逻辑单元、芯片设计的可征用模块。
它分为软核、硬核和固核。
软核通常是与工艺无关、具有寄存器传输级硬件描述语言描述的设计代码,可以进行后续设计;硬核是前者通过逻辑综合、布局、布线之后的一些列工艺文件,具有特定的工艺形式、物理实现方式;固核则通常介于上面两者之间,它已经通过功能验证、时序分析等过程,设计人员可以以逻辑门级网表的形式获取。
本文所介绍的USB IP核处于软核阶段,以Verilog HDL语言描述文本的形式提交使用,并经过仿真验证,可以用它综合出正确的门级网表。
第一章控制器结构原理本文所设计的USB2.0设备控制器可以用来进行USB协议处理和数据间交换,实现USB通讯。
根据USB2.0协议,控制器对USB总线上的差分信号进行NRZI解码和位解填充,然后经过串行转并行转换接着分组拆装,把需要的数据放入RAM区;也可以进一步把RAM区里的数据组装成协议所规定形式(分组),再利用差分驱动电路并行转串行、位填充NRZI编码输出到USB总线然后传回主机(逆过程)。
基于FPGA的USB接口可信平台模块设计与实现

基于FPGA的USB接口可信平台模块设计与实现随着信息技术的发展,基于FPGA的USB接口可信平台模块也越来越受到广泛的关注。
本文将介绍这种模块的基本原理、设计与实现过程,并给出三个实际案例。
一、基于FPGA的USB接口可信平台模块的原理基于FPGA的USB接口可信平台模块是一种集成了许多功能的芯片,用于数据传输、解密、加密、认证等多种计算机安全任务。
其主要原理为:通过FPGA对数据进行加解密和认证,并通过USB接口实现数据的传输。
模块内部具有丰富的控制和状态监测,能够实现可信计算所需的关键功能。
二、基于FPGA的USB接口可信平台模块的设计与实现过程在设计基于FPGA的USB接口可信平台模块时,首先要明确设计要求和目标,例如所要求的接口类型、处理速度、功耗、硬件成本等。
其次,需选取相应的芯片和开发工具,根据开发工具的提示,进行硬件和软件的开发。
在开发过程中,需要特别注意芯片的时序设计、电路连接、数据流控制等方面的问题,以保证模块能够正常工作并提供高性能。
三、实际案例1、基于Lattice XP2-5 FPGA的USB接口可信平台模块该模块主要用于数字信息安全领域,能够实现高速数据的加解密和认证。
其主要特点为:小型化设计、高性能、低功耗、易于集成和应用。
该模块提供了标准的USB 2.0接口,可直接连接到PC或其他设备。
2、基于Xilinx Spartan-6 FPGA的USB接口可信平台模块该模块主要用于智能安全设备、存储加密设备等领域,具有较高的安全性和可靠性。
该模块支持USB 2.0/3.0接口,可实现高速数据传输和多种加解密算法。
其设计还考虑了能耗、体积、成本等问题,具有较好的实用性。
3、基于Altera Cyclone V FPGA的USB接口可信平台模块该模块是一种高性能、低功耗、易于扩展和应用的可信计算平台。
它提供了丰富的接口和功能,包括USB接口、加解密加速器、随机数发生器、GPIO等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
USB IP核的设计及FPGA验证关键字:USB lP FPGA验证SoC介绍了一款可配置的USB IP核设计,重点描述USB IP核的结构划分,详细阐述了各模块的设计思想。
为了提高USB lP的可重用性,本USB IP核设计了总线适配器,经过简单配置可以用于AMBA ASB总线或WishBone总线结构的SoC中。
此IP核进行了FPGA验证,验证结果表明他可作为一个独立的模块嵌入到SoC系统中。
1 引言USB(Universal Serial Bus)具有以下特点:即插即用、广泛的软硬件支持、低功耗、可选择的多种速度模式、完备的总线拓扑结构。
随着半导体工艺技术的发展,集成电路设计者能够将愈来愈复杂的功能集成到单硅片上。
SoC是将系统集成在一块芯片上,包括微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)等。
SoC的一项关键技术即为IP(Intellectual Property)复用技术。
IP核是指在电子设计中预先开发的用于系统芯片设计的可复用构件,系统设计者在进行一个复杂设计时将众多IP核在一个芯片上有效集成,从而构成一个功能强大的系统。
IP技术在SoC的开发中可以充分利用已有的开发成果,从而缩短系统芯片的设计周期,提高效率。
在设计IP核时应注意其可重用性,为了增强IP核的可能重用性,使IP核能更好地适应不同总线结构的SoC平台,可以为IP核设计一个总线接口模块。
该模块主要完成片上总线的协议转换和实现,称之为总线适配器(BusAdapter)。
其特点为:IP核与外部的片上总线标准无关,其逻辑相对固定,只需对相应的总线适配器进行配置就能够有效地集成于不同片上总线的SoC平台。
当前SoC中常用的总线协议有三种分别是:ARM公司的AMBA、Silicore 公司的WISHBONE SoC Interconnection Archi—tecture和Ahera的Avalon总线。
本文实现的USB IP核中,设计了总线适配器,在综合前针对WishBone总线或AMBA ASB 总线通过宏定义进行设置,从而使USB IP核能够直接集成于WishBone或AMBA ASB总线的SoC系统中。
2 USB系统组成部分系统主要分为三个部分:主机、设备和互连。
在任何的系统中,只有一个主机,与主机系统的接口称作主机控制器。
他可由硬件、固件和软件综合实现。
设备可以分为功能性设备即外设和集线器,前者作为系统的功能扩展设备而后者作为设备的扩展连接点。
互连定义了主机和外设的连接和通信方式。
包括总线拓扑结构、内部分层关系、数据传输模型和总线访问控制等几个部分。
一个简单的系统可以由一台主机和一个外设构成。
3 USB的模块设计3.1 模块划分USB IP核主要是实现了USBl.1协议,在对整个协议分析的基础上,整个IP核共分成五大模块:串行接口引擎模块、协议层模块、端点控制模块、端点存储模块和总线适配器模块。
串行接口引擎主要是支持最底层的USB协议,由于USB协议中为了增加抗干扰对比特流进行了“不归零码(Non Return to Zero Invert)”的编解码,同时为了可以从比特流中提取同步信号用了“位填充”和“位剔去”。
串行接口主要完成比特流方面的处理。
协议层模块则主要是完成解包和打包。
在USB协议中,数据缓冲区用了端点(Endpoint)这个概念,不同的缓冲区用了不同的端点号来区分,端点存储模块就是相应的数据缓冲区。
端点控制模块主要是端点控制寄存器和端点状态寄存器,对端点进行相应的控制。
总线适配器模块主要是在不同总线结构的SoC中,对USB IP核总线接口进行相应的配置,从而可以进行无缝连接到相应的SoC中。
USB IP核模块划分如图1所示。
图13.2 串口接口引擎串口接口引擎主要是完成USB协议中比特流的处理。
根据数据的传输方向可分为发送部分和接收部分。
发送部分即为USB设备给USB主机发送数据,接收部分则为USB设备从USB主机那里接收数据。
如图2所示。
图2接收部分:从同步域中恢复出12 MHz的时钟信号,接收主机过来的比特流对其进行不归零码(NRZI)解码,剔除位填充然后进行串并转换,最后将转换后的数据以字节的形式传给协议层。
接收部分还要能判断出一个包的开始,在USB传输过程中,是以包为单的,因此接收部分首先要测包的开始S OP(Start of Packet),所有包都是从同步字段(SYNC)开始的,同步字段是产生最大的边缘转换密度(Endge Transition Density)的编码序例。
以NR—ZI编码的二进制串“KJKJKJKK”同步字段最后2位是同步字段结束的标记,同时标志了包标识符(Pacekt Iden一tiler,PID)的开始。
只有当检测到包SOP才开始后面的NRZI解码、去位填充和串并操作,否则就继续处于等待阶段。
在接收部分还需要有检错部分,在检查到传输过来的数据有错误时,要进行相应的错误处理。
如在NRZI解码后,在对数据进行去位填充时发现了有连续7个“1”则可以认为数据在传输过程中出现了错误,数据包已经损坏,必须通知协议层。
在接收部分需要特别注意的是:在接收USB主机过来数据时,是不同的时钟域,因此必须考虑到亚稳态问题。
在本设计中,由于只处理单个比特信号,因此用了两级寄存器来消除亚稳态。
发送部分:将协议层打包好的加上同步字段,然后进行并串转换,将字节形式转换成比特流形式,接着根据协议将数据进行位填充和NRZI编码,通过D+和D一信号传送给USB主机。
这个同步字段也是告诉USB主机有一个新数据包发送过来了,在发送部分还要产生包结束EOP(End of Packet)的信号。
3.3 USB协议层协议层主要分成三个子模块:解包模块、打包模块和协议引擎模块。
这一层主要是将经过串口接口引擎模块过来的数据进行解包,剔除USB协议中的信息。
同时将端点中要发送的数据,在协议引擎控制下进行相应的打包,然后通过SIE模块传送给USB主机。
3.3.1 解包模块本模块主要将接收到的信息包数据进行解析,解析出包标识(PID),端点地址和USB设备地址以及包含在包中的有效数据。
在解包时,对令牌包进行CRC5校验,对数据包进CRCl6检验,若出错则进行相应的出错处理。
从上面所述可知,任何包都有同步字段而同步字段在串口接口引擎模块中已经除去了,因此本模块不用关心同步字段。
整个解包数据流如图3所示。
图3整个解包过程如下:首先判断接收的包是什么包,若为TOKEN包(0UT或IN或SOF或SETUP或ACK或NAK或STALL或PRE)则转入到TOKEN包的处理进程,若为数据包(DATA0或DATAl)则转入到DATA包的处理进程。
在TOKEN包或DATA包中若发现数据有错则丢弃此包并报错。
3.3.2 打包模块根据PE送来的PID组织相应的信息包,把要发送的数据安排在相应的数据包,或者组织令牌包。
发送令牌包时,不必产生CRC5校验位。
在发送数据包时,需要把有效数据的CRCl6校验位放在末尾一起发送。
这个模块主要就是如何把协议层引擎模块送过来的数据进行打包,打包的概念其实质就是把要发送的数据根据其相应的信息安排相应的发送顺序。
同样打包的过程中也不用考虑同步字段,同步字段在串口接口引擎层加入。
整个打包数据流如图4所示。
图43.3.3 协议层引擎模块在USB设备中,某一个时刻和主机通信的只能是一个端点,当前操作都基于这个端点地址。
主机不能同时和几个端点进行通信,端点的属性在设备和主机刚开始连接时进行的枚举过程中已经确定,保存在各端点对应的寄存器中,比如是IN还是OUT端点,是支持控制传输、批量传输还是中断传输的端点等。
协议引擎模块是整个协议层的核心控制单元,控制了其他所有模块的工作方式,根据当前端点的配置或当前状态处理传输事务,并在传输事务中实时更新控制与状态寄存器。
他的功能包括:有效处理IN,OUT和SETUP事务,确定当前传输事务要操作的端点地址,正确应答各种包和管理数据的发送和接收,同时实现USB协议中的错误恢复机制。
3.4 端点控制模块和端点模块端点模块:端点其实就是USB进行通信时,用于存数据的缓冲区,为了提高数据存取的速度,本IP核的端点设计成FIFO。
端点控制模块:主要是端点控制寄存器和端点状态寄存器,此模块中包含了USB IP核的顶层控制和状态寄存器。
如USB设备的状态控制寄存器、设备地址寄存器、中断屏蔽寄存器和中断源寄存器等。
为了增加灵活性,在设计时针对每一个端点分别设计了设置和功能相同但地址不同的寄存器,包括端点的控制状态寄存器、中断源寄存器、中断屏蔽寄存器、缓冲区的指针寄存器。
端点根据协议可以配置1到16个,在实际设计中根据本身系统需要可以对USB IP核配置端点数,增加了USB IP核端点可扩展性。
3.5 总线适配器模块此模块是为了提高本IP核的可重用性而设计的。
他主要包括WishBone总线接口、AMBA ASB总线接口和相应的配置寄存器。
若使用于WishBone总线结构的SoC中,则在综合前通过宏定义进行设置启用WishBone总线接口,这样整个USB IP核可以无缝接入WishBone总线结构的SoC中。
若使用于AMBA ASB总线结构的SoC 中,则在综合前通过宏定义进行设置启用AMBA总线接口无缝接入其SoC中。
由于是在综合前通过宏定义的,因此在实际综合的时候,只会将宏定义的总线模块综合成实际电路,而不会两个总线接口模块都给综合,节省资源。
同时当此IP 核要应用于其他的总线结构SoC中,如Altera的Avalon总线,则只要根据此总线协议再设计一个总线接口模块,在综合时启用此总线接口模块就可以将此IP 核直接应用于此SoC中。
因此本USB IP核对于不同总线的SoC利用总线适配器使具体较强灵活性,可重用性强。
4 FPGA验证本USB IP核已经应用于一款数据采集单芯片系统中。
因此在进行FPGA验证时,是将此IP核嵌入于此单芯片系统中进行的。
此单芯片系统中嵌入UART模块可与PC机的串口进行通信,此系统中的增强型8051MCU核对整个USB IP核进行相应的控制。
FPGA验证采用了Xilinx公司的ISE集成开发环境,在调试的过程中用了ChipSeope Pro软逻辑分析仪。
硬件平台用Xilinx公司的Virtex4系列中XC4VLX60器件。
整个过程如下:(1)USB从设备与PC机的USB接口连接,此时USB从设备要完成设备枚举的过程。
(2)设备枚举完成PC机会提示驱动程序还没有装,要求加载驱动程序在PC机上加驱动程序,USB的驱动程序直接与PC机的操作系统联系,项目中的USB接口是在Windows XP操作系统中调试的。