集系统级FPGA芯片XCV50E的结构与开发_EDAPLD论文
关键词:fpga 可配置逻辑块 设计流程 配置
xcv50e是xilinx公司virtexe系列系统级fpga芯片中的一员。其主要资源有71693个系统门、65536位块内存和176个用户i/o口(其中包括83对差分i/o口)。主要特性有:1.8v超低核心电压、支持20种高速总线标准、八个全数字延迟锁定环、0.18微米6层金属工艺、支持ieee 1149.1边界扫描。virtexe系列fpga芯片具有卓越的整体性能和高速特性,是实现高速系统级设计的优选芯片。下面以xcv50e为例,介绍virtexe系列fpga的结构特性和开发流程。
1 xcv50e芯片的结构
xcv50e芯片主要由四部分组成,其结构图如图1所示,芯片中央是由16×24个可编程逻辑块(clb)构成的clb阵列,用以实现芯片的主要逻辑功能。芯片中16个4kb的块内存(block ram
或bram)组成4个块内存槽,位于clk阵列的两端及接近芯片中心的位置。块内存可用作高速ram或fifo。环绕clb阵列的是叫做versaring的布线资源,它连接内部的逻辑信号到输入输出单元。输入输出单元位于芯片周边,用以实现不同标准信号(如lvds、cmos、gtl)间的和转换。
1.1 可配置逻辑块
可配置逻辑块是fpga的核心部分,主要用来实现各种逻辑功能。其内部结构见图2所示。每个可配置逻辑块包括左右两个功能片。每个功能片包括两个逻辑单元。每个逻辑单元由一个四输入查找表(lut)、一个进位逻辑和一个寄存器组成。查找表可作为函数产生器来使用,也可用作高速16位移位寄存器或16×1的随机存取内存(ram)。为扩展芯片的逻辑功能,在每个功能片中还设有一个f5复选器,在每个逻辑块中设有一个f6复选器,可分别用以实现9输入的函数和19输入的函数。
1.2 通用布线资源
芯片内部与可配置逻辑块阵列相匹配的是通用布线矩阵阵列(grm)。grm是开关矩阵,它用足够的连线将对应的可配置逻辑连接到相邻可配置逻辑块和部分远端的可配置逻辑块。芯片内有许多双向长线分别横贯和纵贯整个芯片,利用它们可以快速高效地分配信号。通过通用布线资源,各个可配置逻辑块和块内存构成了一个高速动作的统一整体。
图2
1.3 versaring布线资源
versaring环绕着芯片中央的clb阵列,它将阵列信号与芯片i/o管脚相连。versaring以毫微秒级的速度将任一内部逻辑信号连接到芯片的任一i/o管脚。正是由于xcv50e这种信号分配的任意性,使得xcv50e的设计工作可以与电路板制版并行进行,从而大大缩短了开发周期。
1.4 延迟锁存环(dll)
芯片内有八个延迟锁定环,借助它们可以实现高速零时延的时钟信号,延迟锁定环的输入时钟范围是25mhz~350mhz,输出时钟的传输时延为零,边沿抖动小于60ps。锁定环可对时钟进行二倍频或2~16倍分频,并可进行90o、180o、270o的移相操作。使用延迟锁定环可有效解决高速应用中信号的时滞和抖动问题。
2 xcv50e的开发
笔者使用xilin foundation f4.1来开发
xcv50e芯片。xilin foundation f4.1是xilinx公司主要的fpga芯片开发平台之一。基于该平台可实现xcv50e芯片从设备构想到此特流下载的全部过程。图3所示是基于该平台开发xcv50e的设计流程。该平台的由设计入口工具、设计实现工具、设计验证工具三大部分构成。设计入口工具接收各种图形或文字的设计输入,并最终生成网络表文件。设计实现工具将网络表转化为配置比特流,并下载到器件。设计验证工具用来对设计中的逻辑关系及输出结果进行仿真和时序阻制分析。
对于系统级设计,一般可以使用基于原理图的层次化设计,过程如下:先以系统结构原理图作为顶层图,自上而下的构造基于模块的结构子图,同时自下而上的将结构子图的结构子图,同时自下而上的将结构子图具体体(用vhdl评议或元件互连关系表示出来),并对每个模块和子图进行功能性仿零点,以保证每层逻辑关系都是正确进行功能性仿真,以保证每层逻辑关系都是正确的。顶层原理图具体化并完成功能仿真后,再添加必要的输入输出元件,即可合成系统网络表。之后,对系统网络表进行翻译、映射、放置和布线,并利用流程引擎产生的时序进行时序仿真和时序分析。然后采用修改入口设计、设置各种属性和限制、调整其片布局等方法完善设计,直到达到设计要求,最后将优化后的配置比特流下载到fpga芯片中。
3 xcv50e的应用配置
xcv50e芯片是基于静态ram(sram)的fpga,其配置信息必须固化到另外的可编程rom(prom)芯片中。系统加电后,xcv50e芯片首先从prom中读取配置并加载到配置内存中。virtexe系列芯片中支持四种配置模式,分别为主串行模式、从串行模式、并行模式和边界扫描模式。
图4是xcv50e在主串行模式的配置电路图。图中配置模式选择位m2、m1、m0均连接到地;program为fpga配置控制信号;fpga的配置数据输入管脚din连接到prom芯片xc18v01的数据输出脚data;初始化指示信号init用作xc08v01的复位信号;配置完成信号done用作prom的片选信号。配置过程如下:当系统加电并且program首脚升高后,配置过程开始,xcv50e首先进行内部的初始经,初始化完成后,vcv50e释放init管脚,并从下一个配置时钟的上升沿开始从prom中读入配置数据流;全部数据读完后,fpga发出配置结束信号done来关闭prom,配置过程结束。下一个时钟起,xcv50e运行启动进程,之后就可以按设定的程序工作了。图5给出了xcv50e的配置流程图。