EDN China > 产品新闻 > 可编程器件 > FPGA > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

借助USB来完成系统配置

Mark Schultz?? 赛普拉斯半导体公司高级应用工程师:EDN China?? 2004年06月04日 ?? 收藏0
引言
  USB2.0规范凭借其较高的传送速率而使更加复杂和高度集成的外设设计得以实现。许多USB设计都采用了现场可编程门阵列(FPGA),以便将定制逻辑功能包容在内。由于FPGA具有易失性,因此它另外还需要一个处理器和一个大容量存储器以用于配置目的。
  应用于EZ-USB设计中的FPGA可在FPGA代码存储于PC存储器的情况下借助EZ-USB微控制器来进行配置,从而能够免除因在系统设计中使用一个处理器和存储器所造成的占用空间和成本的增加。
  本文将介绍一种借助USB来进行FPGA配置的方法以及用于通过USB获得数据并将其传送至FPGA的微控制器固件实例。此外,还将说明FPGA配置的一种简单的主机应用。
  采用FPGA的系统级芯片
  FPGA由于其密度的不断提高而正在被人们用来实现前所未有的众多功能,从而使得"系统级芯片"成为现实。利用FPGA所实现的功能包括定制逻辑、通信接口和协议以及数据存储。由于可提供各种内核(包括硬核和软核)并包括DSP功能、CRC发生器、串行接口和加密/解密引擎,因而使得FPGA成为一种能够添加到任何设计中的通用型器件。
  然而,由于FPGA具有易失性,所以

每次FPGA功率循环其设计代码都必须重新装入。这一任务常常由某种专门针对FPGA配置的专用存储器件或专用处理器来完成。
  FPGA的规模大小不一,小到4万门,大到600万门。配置位的数量与FPGA的规模成正比。对于4万门的器件,所需的配置存储器的容量为360Kbits。而对于100万门的器件,则所要求的配置存储器的容量为4.1Mbits(即500Kbytes)。
  使用对一个100万门的FPGA进行配置的专用存储器会增加约18美元(以10,000片为批量来购买一种4Mbit器件时的单价)的关联成本。不同制造商所提供的这种特殊器件的封装占位面积从36mm2到44mm2不等。如能去掉这一元件将大大节省成本和电路板的占用空间。
  为了使借助USB来进行FPGA配置成为一种高效解决方案,必须遵循以下准则:
  1.?成本--借助USB所进行的FPGA配置应几乎(或根本)不增加成本。
  2.?性能--借助USB所进行的FPGA配置所花费的时间不应明显长于采用配置存储器时所耗费的时间。
  3.?时间--这种改变不应对设计周期产生任何负面影响。
  设计要求
  这里所面临的难题是如何在代码被存储于PC硬盘驱动器的情况下对FPGA进行配置,以便免除因使用配置存储器所造成的成本增加。本文将全面论述借助USB来进行FPGA配置的过程。
  我们再回过头来看一下上一节中所谈到的几项要求,第一条准则指的是设计方法的改变不得使设计成本有任何的增加。事实上,该设计将省去在配置存储器上所花费的18美元成本,而不会带来任何的附加成本。于是,针对这一设计准则已经实现了成本的节约。
  第二条设计准则是性能。对数据通路进行快速分析将能够揭示出任何的潜在瓶颈。数据流的行进路线如下:
  主PC软件从一个文件中获取FPGA配置数据并通过USB将其传送至目标设计。然后,USB微控制器从其端点FIFO(先入先出缓存器)中获取该数据并连同必需的控制选通信号一起提供给FPGA。
  PC与目标设备之间的USB传送将取决于USB连接的速度。对于USB2.0高速器件,该速率可达480Mbit/s。然而,将数据从USB FIFO传送至FPGA有可能要稍慢一些。这是由两个因素造成的,即从USB缓冲器中检索一个数据字节以及微处理器生成写入和时钟脉冲选通信号都需要花费一定的时间。
  我们来研究一下下面的波形,以便对配置一个FPGA所需的处理时间进行分析:

用于器件配置所需的波形

  在第一个时钟周期,数据被提供至并行输出端。在第二个时钟周期,确定nWR(写入)和nCS(时钟选通)信号。在第三个时钟周期,CLK(时钟)信号被驱动至高电平且配置数据被装入FPGA。接着,取消对nRW和nCS信号的确定并最终将时钟信号(CLOCK)重新驱动至低电平。采用某种测试固件和一个逻辑分析仪所进行的快速测试发现了两个性能限制因素。
  首先,采用位传递方案来生成写入选通脉冲信号所产生的脉冲开关时间间隔不会短于250ns,从而导致上面波形中的5个周期的总循环时间为1250ns(800KHz)。这是因为即使是在48MHz的条件下,一个增强型8051处理器仍然需要4个时钟脉冲来完成一个指令周期。控制选通信号是采用各自需要3个指令周期来完成的AND和OR指令来生成的。于是,在48MHz条件下,用于完成一个AND或一个OR指令的总时间为:
  3周期 * 4时钟/周期 * 20.833 ns/时钟 = 250ns
  其次,目前从USB FIFO中进行数据检索需要花费3.8ms/字节的时间。这是因为缓冲器指示字的字节更新、环路计数器的加1计数


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

USB? 系统配置? FPGA?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈