当前位置:首页 > 工业控制 > 电子设计自动化
[导读]摘要:本文提出了一种基于USB接口的FPGA SelectMap配置方式的实现方案。方案以大容量Spartan3 FPGA作为配置目标,选用Cypress EZ-USB FX2LP作为USB设备芯片,采用其内置的端点FIFO和GPIF状态机实现了一个高性能的配置数

摘要:本文提出了一种基于USB接口的FPGA SelectMap配置方式的实现方案。方案以大容量Spartan3 FPGA作为配置目标,选用Cypress EZ-USB FX2LP作为USB设备芯片,采用其内置的端点FIFO和GPIF状态机实现了一个高性能的配置数据传输通道,并设计了USB厂商请求来控制配置进程。方案具有配置灵活、成本低、速度快、实现简单的特点,目前已在很多软件无线电项目中得到应用,具有很强的实用性。

1. 引言

FPGA 器件结合了ASIC 的高性能和微处理器的灵活,不仅拥有丰富的逻辑资源,而且可以进行方便灵活的配置。主动配置方式尽管配置速度快、实现简单,但并未发挥FPGA 配置灵活的特点,适合于FPGA 用作单一应用的场合,并且大容量的配置芯片及其占用的电路板面积也带来了较高的成本;被动配置方式需要使用外部控制单元产生配置时序,实现一般较为复杂,而且在目前常见的方案中,常由于接口速率限制[1]或者采用微处理器介入数据传输等原因,而造成配置速度不高。USB2.0 协议在目前PC 外设的接口方案中非常流行,它支持高速率、多管道、多类型的数据传输,可以方便的构建出高性能的数据传输通道和灵活的控制通道。

本文提出了一种基于 USB 接口的FPGA SelectMap(并行被动)配置方式的实现方案,不但具有被动配置灵活、设计成本低的特点,而且实现简单、配置快速。方案以Xilinx Spartan3系列目前最大容量的500 万门FPGA(XC3S5000)作为配置目标,选用Cypress EZ-USBFX2LP 作为USB 设备芯片,并使用其内部的大容量端点FIFO,在GPIF 状态机的控制下,实现了一个高性能的配置数据传输通道。配置的进程则由设计的USB 请求来控制。此配置方案具有开发简单、配置成本低、速度快、使用灵活的特点,具有很强的实用性。

2. 系统的总体设计

如图 1 所示,系统使用USB 通道连接上位机和EZ-USB。EZ-USB 是一块高速USB 外设芯片,它支持USB 协议所描述全部四种传输模式,并拥有1 个64Byte 的控制传输专用端点、2 个缓存为64Byte 的普通端点和4 个缓存最大可达1KB、并可以进行四倍缓冲的大端点。本设计方案使用了一个控制端点(端点0)和一个大端点(端点2)传输数据。其中控制端点是所有USB 设备所必备的,它用于在设备枚举时传输USB 请求和相关数据,在本设计中,控制端点还用来传输专门设计的USB 厂商请求来控制配置进程、获取配置状态。大端点用来传输配置数据,由于配置数据需要及时、无误的传输,因此使用可以同时保证传输准确性和最大延时的中断传输方式,并设置端点缓存为1KB、做4 倍缓冲,最大传输间隔为一个微帧(125us),且每个传输间隔内传输3 个有效载荷为1KB 的包(最后一个包的载荷可能小于1KB),这样配置数据在USB 通道中的传输速率可达到3*1KB*(1/125us)=24000KB/s。


数据从端点转移到外设(FPGA)的过程中,如果使用USB 设备芯片内嵌的8051 MCU进行转移的话,最快8 个时钟周期才能传输一个字节的数据[2],在8051 的时钟周期为48MHz情况下,传输速度为6MB/s,远小于USB 通道的传输速率,会成为瓶颈而无法发挥出USB传输通道高传输速率的优势;而如果通过位宽为8bit 的 FIFO 来传输的话,最快情况下,每时钟周期都可以传输一个字节数据[2]。在EZ-USB 中,大端点的缓存可以作为端点FIFO 直接连接FPGA 的配置数据输入口形成高速传输通道,端点FIFO 的读写时序可由EZ-USB 内嵌的GPIF(General Programmable Interface)产生,MCU 可以不参与端点到FPGA 的数据转移,只起到配置和控制的作用,在FIFO 位宽为8bit,GPIF 时钟频率为48MHz 的情况下,传输速率为48MB/s,这样数据从端点到FPGA 的传输速度超过了上位机到端点的USB 中断传输管道的最大速度,不对USB 传输通道构成瓶颈。


3. 配置时序的发生

配置数据需要在配置时序的配合下写入 FPGA。GPIF 是一个可编程的状态机,它可以采集5 个输入引脚(RDY)的状态,并通过5 个输出引脚(CTL)对外产生任意时序,因此可用来产生FPGA 的配置时序。表1 说明了FPGA 在SelectMap 模式下各配置引脚的作用,如图1 所示,CCLK 连接EZ-USB 提供的界面时钟IFCLK,D[7:0]连接端点FIFO,其它配置引脚连接着GPIF 状态机的RDY 及CTL 引脚。为了确保各引脚的输入有充足的建立时间供FPGA 采样,FPGA 的时钟输入应与GPIF 的内部时钟倒相。

根据配置时序所设计的 GPIF 状态机的状态转移图如图2 所示。配置时钟为48MHz,所以PROG 低脉冲要维持25 个时钟周期,状态机会根据端点FIFO 的空满状态控制FPGA 的CS 引脚,确保FPGA 在FIFO 有配置数据输出的情况下进行数据采样,数据输出在字节计数达到FPGA 配置比特流文件的字节数值时停止,500 万门的XC3S5000 为13271936 bit。



4. 系统软件的设计

4.1 EZ-USB 固件程序设计

EZ-USB 的固件框架如图3 所示,Cypress 为大部分模块提供了完整的代码,本设计需要编写的模块有TD_Init,TD_Poll 和USB 请求解析模块。TD_Init 模块仅执行一次,作用是设置端点和GPIF 传输界面,以及将端点2 缓存的控制权交给逻辑单元使得逻辑单元可以将总线上收到的数据包装入缓存。TD_Poll 模块会反复执行,作用是在端点2 的缓存填入数据包后,开启GPIF 状态机,将FIFO 内的配置数据写入FPGA。USB 请求解析模块需要解析本方案设计的2 条USB 厂商请求,0xB1 和0xB2,它们用于配置初始化和查询配置状态。


4.2 上位机程序设计

由于 Cypress 已提供USB 设备驱动,因此上位机程序只需要获得了一个至 USB 设备驱动程序的句柄,打开包含配置代码的文件并对其进行语法分析,在 USB 中断传输的每次调用过程中传送取自配置文件的1024 字节发送出去,这一过程将继续下去,直到配置文件中没有剩余字节为止。

5. 配置性能的实际测试

配置数据传输的瓶颈在 USB 传输通道,而采用中断端点时,USB 传输通道的速度极限值应为24000KB/s,对于500 万门的XC3S5000 而言,传输13271936bit 配置数据的理论时间约为527.4ms。

对配置时间进行的实际测试中,使用500 万门的XC3S5000 作为配置对象,使用测量精度为10ms 的码表测量从送出配置文件到FPGA 的Done 引脚所连接的LED 点亮的时间差,经测量,配置实际使用时间为540ms。考虑到MCU 判断端点缓存和开启标志,以及开启状态机所用时间,实测值比理论值多出的时间是合理的。

6. 结论

采用 Cypress EZ-USB 及其内置的GPIF 状态机对大容量FPGA 进行 SelectMap 方式配置的方案,不仅具有被动配置方式灵活性高的优点,而且因为不需要大容量配置存储器、同时可以节约电路板空间,所以实现成本较低。另外Cypress 完善的开发工具也使得方案的实现非常简单。经过实际测试,本方案的配置速度非常快,对于大规模FPGA 配置时间也能在一秒之内完成,因此本方案具有很好的实用价值。

本文作者创新点:设计了一种针对大规模FPGA 的实用配置方案,配置方式灵活、配置、速度快、配置成本低、系统开发简单。



来源:过往烟云0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在这篇文章中,小编将对usb的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: USB USB隔离诊断

今天,小编将在这篇文章中为大家带来Type-C接口的有关报道,通过阅读这篇文章,大家可以对Type-C接口具备清晰的认识,主要内容如下。

关键字: Type-C USB

一直以来,Type-C接口都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来Type-C接口的相关介绍,详细内容请看下文。

关键字: Type-C USB

随着科技的飞速发展和智能手机的普及,USB调试模式已成为许多科技爱好者和开发者不可或缺的工具。通过USB调试模式,用户可以连接手机与电脑,实现数据传输、应用安装、系统调试等多种功能。本文将深入探讨USB调试模式的打开方法...

关键字: USB 智能手机

USB 2.0与USB 3.0到底有什么不同,今天来深入探索两者之间的区别。随着科技的不断进步和设备的不断升级,USB接口作为连接设备的重要桥梁,也在不断发展。USB 2.0和USB 3.0是两种广泛使用的USB接口标准...

关键字: USB 智能手机 USB 3.0

随着科技的飞速发展,智能手机已成为我们日常生活中不可或缺的一部分。作为手机与电脑或其他设备之间的桥梁,USB(通用串行总线)连接在我们的日常生活中扮演着重要的角色。本文将深入探讨USB如何连接手机,并详细介绍USB连接手...

关键字: USB 智能手机

虽然 USB 几乎完全取代那些旧电缆和连接器,但 UART 绝对不会成为过去。您会发现许多 DIY 电子项目都使用 UART。

关键字: UART 串口通信 USB

USB(Universal Serial Bus)是一种通用的串行总线标准,它被广泛应用于连接计算机及其外部设备。USB通信系统具有以下特点:

关键字: USB 串行总线 计算机

USB Type-C接口将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: USB Type-C

在这篇文章中,小编将对USB Type-C接口的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: USB Type-C
关闭
关闭