fpga map测试_通过USB接口实现FPGA的SelectMap配置

本文介绍了一种使用USB接口实现FPGA SelectMap配置的方法,以解决传统配置方式的局限性。该方案利用Cypress EZ-USB FX2LP芯片,通过GPIF状态机控制大容量端点FIFO,实现高速数据传输通道,避免了配置速度瓶颈。FPGA选用了Xilinx Spartan3系列的XC3S5000,并通过USB请求控制配置进程,具备低成本、高速度和灵活性的特点。
摘要由CSDN通过智能技术生成

通过

USB

接口实现

FPGA

SelectMap

配置

1.

引言

FPGA

器件结合了

ASIC

的高性能和微处理器的灵活,

不仅拥有丰富的逻辑资源,

而且

可以进行方便灵活的配置。主动配置方式尽管配置速度快、实现简单,但并未发挥

FPGA

置灵活的特点,适合于

FPGA

用作单一应用的场合,并且大容量的配置芯片及其占用的电路

板面积也带来了较高的成本;被动配置方式需要使用外部控制单元产生配置时序,实现一般

较为复杂,而且在目前常见的方案中,常由于接口速率限制

[1]

或者采用微处理器介入数据

传输等原因,

而造成配置速度不高。

USB2.0

协议在目前

PC

外设的接口方案中非常流行,

支持高速率、多管道、多类型的数据传输,可以方便的构建出高性能的数据传输通道和灵活

的控制通道。本文提出了一种基于

USB

接口的

FPGA SelectMap

(并行被动)配置方式的实

现方案,

不但具有被动配置灵活、

设计成本低的特点,

而且实现简单、

配置快速。

方案以

Xilinx

Spartan3

系列目前最大容量的

500

万门

FPGA

(

XC3S5000

)作为配置目标,选用

Cypress

EZ-USB FX2LP

作为

USB

设备芯片,并使用其内部的大容量端点

FIFO

,在

GPIF

状态机的控

制下,实现了一个高性能的配置数据传输通道。配置的进程则由设计的

USB

请求来控制。此

配置方案具有开发简单、配置成本低、速度快、使用灵活的特点,具有很强的实用性。

2.

系统的总体设计

,系统使用

USB

通道连接上位机和

EZ-USB

EZ-USB

是一块高速

USB

外设芯片,它支持

USB

协议所描述全部四种传输模式,并拥有

1

64Byte

的控制传输专用端点、

2

个缓存为

64Byte

的普通端点和

4

个缓存最大可达

1KB

并可以进行四倍缓冲的大数据从端点转移到外

设(

FPGA

)的过程中,如果使用

USB

设备芯片内嵌的

8051

MCU

进行转移的话,最快

8

个时

钟周期才能传输一个字节的数据

[2]

,在

8051

的时钟周期为

48MHz

情况下,传输速度为

6MB/s

,远小于

USB

通道的传输速率,会成为瓶颈而无法发挥出

USB

传输通道高传输速率的

优势;

而如果通过位宽为

8bit

FIFO

来传输的话,

最快情况下,

每时钟周期都可以传输一

个字节数据

[2]

。在

EZ-USB

中,大端点的缓存可以作为端点

FIFO

直接连接

FPGA

的配置数

据输入口形成高速传输通道,端点

FIFO

的读写时序可由

EZ-USB

内嵌的

GPIF[4]

(

General

Programmable

Interface

)产生,

MCU

可以不参与端点到

FPGA

的数据转移,只起到配置和控

制的作用,在

FIFO

位宽为

8bit

GPIF

时钟频率为

48MHz

的情况下,传输速率为

48MB/s

这样数据从端点到

FPGA

的传输速度超过了上位机到端点的

USB

中断传输管道的最大速度,

不对

USB

传输通道构成瓶颈。

3.

配置时序的发生配置数据需要在配置时序的配合下写入

FPGA[5]

GPIF

是一个可编程的状态机,它可以采集

5

个输入引脚(

RDY

)的状态,并通过

5

个输出引脚

(

CTL

)

对外产生任意时序,

因此可用来产生

FPGA

的配置时序。

1

说明了

FPGA

SelectMap

模式下各配置引脚的作用

[5]

CCLK

连接

EZ-USB

提供的界面时钟

IFCLK

D[7:0]

连接端点

FIFO

,其它配置引脚连接着

GPIF

状态机的

RDY

CTL

引脚。为了确保各

引脚的输入有充足的建立时间供

FPGA

采样,

FPGA

的时钟输入应与

GPIF

的内部时钟倒相。

本设计方案使用了一个控制端点(端点

0

)和一个大端点(端点

2

)传输数据。其中控制端

点是所有

USB

设备所必备的,它用于在设备枚举时传输

USB

请求和相关数据,在本设计中,

控制端点还用来传输专门设计的

USB

厂商请求来控制配置进程、

获取配置状态。

大端点用来

传输配置数据,由于配置数据需要及时、无误的传输,因此使用可以同时保证传输准确性和

最大延时的中断传输方式,并设置端点缓存为

1KB

、做

4

倍缓冲,最大传输间隔为一个微帧

(

125us

)

,且每个传输间隔内传输

3

个有效载荷为

1KB

的包(最后一个包的载荷可能小于

1KB

)

,这样配置数据在

USB

通道中的传输速率可达到

3*1KB*

(

1/125us

)

=24000KB/s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值