用XC9500CPLD和并行PROM配置XilinxFPGA
- 格式:pdf
- 大小:137.12 KB
- 文档页数:3
Xilinx-FPGA配置的一些细节Xilinx FPGA配置的一些细节2010年07月03日星期六 14:260 参考资料(1) Xilinx: Development System Reference Guide. dev.pdf, v10.1在Xilinx的doc目录下有。
(2) Xilinx: Virtex FPGA Series Configuration and Readback. XAPP138 (v2.8) March 11, 2005在Xilinx网站上有,链接/bvdocs/appnotes/xap p138.pdf(3)Xilinx: Using a Microprocessor to Configure Xilinx FPGAs via Slave Serial or SelectMAP Mode.XAPP502 (v1.5) December 3, 2007在Xilinx网站上有,链接/bvdocs/appnotes/xap p502.pdf注:此外xapp139和xapp151也是和配置相关的。
(4)Xilinx: Virtex-4 Configuration Guide. UG071 (v1.5) January 12, 2007(5) Tell me about the .BIT file format.链接:/FAQ_Pages/0026_Tell_me_about_bit_files.htm1 Xilinx配置过程主要讲一下Startup Sequence。
Startup Sequence由8个状态组成.除了7是固定的之外,其它几个的顺序是用户可设置的,而且Wait for DCM和DCI是可选的。
其中默认顺序如下:这些在ISE生成bit文件时通过属性页设定。
这几个状态的具体含义如下:Release_DONE : DONE信号变高GWE : 使能CLB和IOB,FPGA的RAMs和FFs可以改变状态GTS : 激活用户IO,之前都是高阻。
1.第一章:FPGA/CPLD简介●FPGA一般是基于SRAM工艺的,其基于可编程逻辑单元通常是由查找表(LUT,look up table)和寄存器(register)组成。
其中内部的查找表通常是4输入的,查找表一般完成纯组合逻辑功能;●Xilinx可编程逻辑单元叫做slice,它由上下两部分组成,每部分都由一个register加上一个LUT组成,被称为LC(logic cell,逻辑单元),两个LC之间有一些共用逻辑,可以完成LC之间的配合工作与级连;●Altera可编程逻辑单元叫做LE(Logic Element,逻辑单元),由一个register加上一个LUT构成;Lattice的底层逻辑单元叫做PFU(programmable Function unit,可编程功能单元),它由8个LUT和9个register组成。
●Ram和dpram/spram/伪双口RAM,CAM(content addressable memory)。
Fpga中其实没有专业的rom硬件资源,实现ROM是对RAM赋初置,并且保存此初值●CAM,即内容地址储存器,在其每个存储单元都包含了一个内嵌的比较逻辑,写入cam的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所以内部数据的地址。
总结:RAM是一种根据地址读/写数据的存储单元;而CAM 和RAM恰恰相反,它返回的是与端口数据相匹配的内部地址。
使用很广,比如路由器中的地址交换表等等●Xilinx块ram大小是4kbit和18kbit两种结构。
Lattice块ram是9kbit●分布式ram适合用于多块小容量的ram的设计;●Dll(delay-locked loop)延迟锁定回环或者pll(phase locked loop)锁相环,可以用以完成时钟的高精度,地抖动的倍频/分频/占空比调整/移相等功能。
Xilinx主要集成的是DLL,叫做CLKDLL,在高端的FPGA中,CLKDLL的增强型模块为DCM (digital clock manager,数字时钟管理模块)。
《Platform Flash PROM User Guide》中文版FPGA的配置分为主串行和从串行两种,差别在于时钟源不同。
nCF为高时PROM的DO数据有效,nCE和OE使能。
P24和26介绍了接线图和引脚功能。
原型开发优势每写一次可以有4套不同的程序进行测试。
板子测试配置或安全升级设计的版本中写有诊断程序,如果发现原程序不满足要求,可以调用符合要求的程序重新执行,节省了调试时间。
PlatForm具有备份程序的功能。
防止不完整或损坏数据FPGA的所有IO口在DONE为低电平时均不可用,PlatForm满足这个要求。
为什么使用内部解压或晶振Platform PROM片上解压使得用户可以多存储50%的数据。
Platform PROM提供20MHz或者40MHz(默认)的时钟用于将配置数据从PROM送入FPGA。
内部晶振,特别是40MHz的操作只应用于解压模式。
否则,FPGA的CCLK或者外部晶振会用于驱动。
PROM的解压输出数据速率为内部时钟的一半,换言之,解压数据流配置时间是非压缩数据流的两倍。
如果需要快速配置,FPGA的BitGen-g compress方式可以作为压缩模式。
时钟CLKOUT信号在配置过程中,且在nCE低、OE/nRESET高时有效;无效时呈高组态并且需要外部上拉以避免不确定状态。
时钟速率可以配置,默认为1MHz,可以为1,3,6,12等,XCFxxS最大为33MHz。
PROM文件生成和烧写.bit(Bitstream)文件为输入数据流,.mcs文件为输出数据,.cfi文件为配置格式信息文件。
.bit文件为FPGA使用的二进制数据,.mcs文件为PROM运行文件,.cfi(Configuration format information)文件名字与前两者根目录相同。
标准的PROM文件为前两者。
在XCFxxP系列PROM使用多版本程序设计、CLKOUT、解压缩等功能时还需要使用.cfi文件。
基于FPGA的高精度恒流源系统设计目录一、内容综述 (2)1. 研究背景和意义 (3)2. 国内外研究现状 (4)3. 论文研究目的及内容 (5)二、FPGA技术概述 (6)1. FPGA基本概念及特点 (7)2. FPGA的发展历程 (8)3. FPGA的主要应用领域 (9)三、恒流源系统基本原理与设计要求 (11)1. 恒流源系统基本原理 (12)2. 恒流源系统的设计要求 (13)3. 恒流源系统的性能指标 (14)四、基于FPGA的高精度恒流源系统设计方案 (15)1. 系统架构设计 (16)2. 主要功能模块设计 (18)3. 系统工作流程设计 (18)五、关键技术研究与实现 (19)1. 高精度电流采样与转换技术 (21)2. 高性能PWM波形生成技术 (22)3. 基于FPGA的电流闭环控制技术 (23)六、系统硬件设计与实现 (24)1. 电源模块设计 (26)2. 电流采样与处理模块设计 (27)3. FPGA配置与实现 (28)七、系统软件设计与实现 (30)1. 软件架构设计 (31)2. 程序流程设计 (33)3. 关键算法实现与优化 (34)八、系统测试与性能评估 (36)1. 测试环境与平台搭建 (37)2. 系统测试方法与步骤 (38)一、内容综述本文档主要介绍了基于FPGA的高精度恒流源系统的设计。
恒流源系统在众多领域中有着广泛的应用,如精密测量、电子仪器、医疗设备和通信系统等。
随着科技的不断发展,对恒流源系统的精度和稳定性要求也越来越高。
研究并设计一种基于FPGA的高精度恒流源系统具有重要的实际意义。
该系统设计的主要目标是实现高精度、高稳定性的恒流输出,同时具备良好的响应速度和负载调整能力。
系统设计的核心部分是基于FPGA(现场可编程门阵列)的控制电路,通过优化算法和控制策略,实现对恒流源输出电流的精确控制。
输入电源及稳压模块:为系统提供稳定的输入电压,保证系统的稳定运行。
一、填空1、ASIC的中文含义是__专用集成电路_____;2、EDA的中文含义是_电子设计自动化;3、PROM的中文含义是_______4、EEPROM的中文含义是_______5、SOPC的中文含义是_______6、PLD的中文含义是______可编程逻辑器件_____________;7、HDL的中文含义是_硬件描述语言;8、CPLD的中文含义是_复杂可编程逻辑器件;9、FPGA 的中文含义是_现场可编程门阵列。
10、LUT的中文含义是__查找表_______________。
11、RTL的中文含义是_寄存器传输级(Register Transfer Level)12、PAR的中文含义是_布局布线13、UUT的中文含义是_被测单元(Unit Under Test)14、JTAG的中文含义是_联合测试行动小组(Joint Test Action Group)15、在ISE软件中的原理图输入时,用元件符号INV表示非门。
16、目前应用最广泛的HDL(硬件描述语言)有__VHDL语言,_Verilog HDL_语言。
17、FPGA在结构上主要分成三个部分:可编程逻辑单元,可编程输入输出单元,可编程连线.CPLD在结构上主要分成三个部分:可编程逻辑宏单元,可编程输入输出单元,可编程内部连线18、目前主流的FPGA都采用了基于SRAM 工艺的查找表结构。
FPGA芯片主要由6部分构成,分别是可编程I/O单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。
19、CPLD由可编程的与/或阵列以及宏单元库构成,CPLD主要由可编程I/O单元、基本逻辑块、互连资源和其它辅助功能模块构成。
20、Xilinx 公司器件主要包括Xilinx CPLD 芯片、FPGA 芯片、PROM 芯片,其中,XC9500系列是属于CPLD 芯片,而Spartan 类和Virtex 类是属于FPGA芯片,在这两大类芯片中Virtex 类是高端产品。
CPLD(complex programable logic device)复杂可编程逻辑器件FPGA(field programable gate array)现场可编程门阵列FPGA和CPLD的逻辑单元本身的结构与SPLD相似,即与阵列和可配置的输出宏单元组成。
FPGA逻辑单元是小单元,每个单元只有1-2个触发器,其输入变量通常只有几个因而采用查找表结构(PROM形式)这样的工艺结构占用的芯片面积小,速度高(通常只有1-2纳秒),每个芯片上能集成的单元数多,但逻辑单元功能弱。
如果想实现一个较复杂的功能,需要几个这样的单元组合才能完成(总延时是各个单元延时和互连延时的和),互连关系复杂。
CPLD中的逻辑单元是单元,通常其变量数约20-28个。
因为变量多,所以只能采用PAL结构。
由于这样的单元功能强大,一般的逻辑在单元内均可实现,因而其互连关系简单,一般通过集总总线既可实现。
电路的延时通常就是单元本身和集总总线的延时(通常在数纳秒至十几纳秒),但是同样集成规模的芯片中的触发器的数量少得多。
从上面分析可知道:小单元的FPGA较适合数据型系统,这种系统所需要的触发器数多,但是逻辑相对简单;大单元的CPLD较适合逻辑型系统,如控制器等,这种系统逻辑复杂,输入变量多,但触发器需求量相对较少。
反熔丝工艺只能一次性编程,EPROM EEPROM 和FLASH工艺可以反复的编程,但是他们一经编程片内逻辑就被固定。
他们都是只读型(ROM)编程,这类编程不仅可靠性较高还可以加密。
XILINX公司的FPGA芯片采用RAM型编程,相同集成规模的芯片中的触发器数目较多,功耗低,但是掉电后信息不能保存,必须与存储器联用。
每次上电时必须先对芯片配置,然后才能使用,这似乎是RAM型PLD的缺点,但是ROM型PLD中的编程信息在使用时是不能变化的,RAM型PLD却可以在工作时更换内容,实现不同的逻辑。
CPLD和FPGA的结构,性能对照:CPLD FPGA PROM集成规模:小(最大数万门)大(最高达百万门)单元粒度:大(PAL结构)小(PROM结构)互连方式:集总总线分段总线长线专用互连编程工艺:EPROM EEPROM FLASH SRAM编程类型:ROM RAM型须与存储器联用信息:固定可实时重构触发器数:少多单元功能:强弱速度:高低222222222222222222222222222222222222延迟:确定,可以预测不能确定不能预测功耗:高低加密性能:可加密不能加密适用场合:逻辑型系统数据型系统LCA(LOGIC CELL ARRAY)逻辑单元阵列CLB(CONFIGURABLE LOGIC BLOCK)可配置逻辑模块IOB(INPUT OUTOUT BLOCK)输入输出块Spartan-xl系列FPGA的主要特性SPARTAN-XL系列的FPGA具有低压,低功耗的特点。
复位和上电复位1 在上电时,这器件要求VCCINT在精确的上升时间内,单调的上升到标准工作电压值。
2 如果电压没满足要求,这器件就不能执行合适的上电复位。
3 上电运行的顺序:先PROM的OE/RESET保持低电平,在配置开始以前要求电源能达到它们各自的POR(上电复位电压)门限,OE/RESET被定时释放后对稳定电源的应用有更多的余地。
4 在系统利用慢上升电源时,另外增加一个电源监控电路能被用做延时配置直到系统电源达到最小的操作电源在OE/RESET一直为低电平。
5 当OE/RESET被释放,INIT就被上拉为高电平,允许FPGA有次序的配置。
6 如果电压低于POR门限时,PROM复位,OE/RESET再为低,直到达到POR 门限。
7 对于PROM电压正常时,只要OE/RESET=0或CE=1,复位就开始,当地址计数器复位时,CEO输出高电平,其它的数据输出脚为高阻态。
8 XCFXXS PROM 只要求OE/RESET被释放以前,VCCINT上升到POR门限就行了。
9 XFCXXP PROM 在OE/RESET被释放以前,不但要求VCCINT上升到POR 门限,而且还要求VCCO达到被推荐的正常工作电压。
配置1 当JTAG配置指令在PROM里被更新时,PROM暂时给CF一个低电平,接着就给CF一个高电平。
结合CF脚在外部加了上拉电阻,此时在CF脚输出一个‘高-低-高’的脉冲个FPGA的PROGRAM 脚。
此次FPGA就依次的开始配置。
2 在CF脚外部必须加个上拉电阻,防止CF脚产生一个浮动到低电平的值而引起复位。
3 当XCFXXP的PROM存有多重设计文件时,CF脚必须连接到FPGA的PROGRAM_B脚去保证重新安放那些被选中的设计文件(配置有效)。
4 对于XCFXXS的PROM,CF脚只是个输出,如果没有由于的功能的话,可以不用连接FPGA。
在SPARTAN FPGA系列中,INIT_B脚使用内部下拉有典型的补偿,外部上拉电阻在INIT_B脚时,能产生一个不明确的信号给PROM的OE/RESET脚,鉴别一个错误的配置,CRC错误在INIT_B脚。
FPGA-CPLD芯片设置方法
1 打开Quartus II软件。
Assignments->Devices 如下图:
2 出现下面的对话框,在Family选择器件(是那个家簇的),EPM240 属于MAX II家簇;如我们这里选择的是Cyclone II :
3 如下图: 选择芯片的封装.
4 选择芯片的管脚数目。
如下图:
5 选择速度等级,如下图:
6 如下图,高亮显示的就是你要找的器件。
点击确定按键,
重新编译一次工程。
7 如下图,I/O口的分配:
8 出现如下对话框,分配好你管脚。
8 出现以下对话框,将Compression 打钩,并且点击OK
9 出现以下对话框,选择.SOF ,在点击Generate.
10 当出现如下对话框,点击确定,并且重新把整个工程文件编译一次。
11 在下载模式选择AS下载,如下图,在点击Start:
12 如下图,表示下载成功。
恭喜你!!。
Xilinx ISE 使用入门手册1发布日期:2009-3-6 13:06:10文章来源:搜电浏览次数:58111、ISE的安装现以ISE 5.2i为例介绍Xilinx ISE Series的安装过程。
1)系统配置要求ISE 5.2i推荐的系统配置与设计时选用的芯片有关。
因为在综合与实现过程中运算量非常大,所以对系统配置要求很高。
为了提高综合、仿真、实现过程的速度,对于计算机的CPU的主频、主板和硬盘的工作速度,尤其是内存大小配置都有非常高的要求。
在ISE 5.2i支持的所有Xilinx的FPGA/CPLD中,要求最低的Spartan II和XC9500/XL/XV等系列需要的内存和虚拟内存推荐值均达到128MB,而对于Virtex-II XC2V8000来说,需要的内存和虚拟内存推荐值均高达3GB。
2)ISE 5.2i的安装以中文版Windows XP操作系统为例加以说明。
(1)启动Windows XP,插入ISE5.2i安装光盘,自动或选择执行Install.exe,安装界面如图4.25所示。
图4.25 ISE5.2i安装界面(2)单击此时安装界面上的操作选择“下一步”直到出现图示对话框,输入有效的Registration ID。
之后单击“下一步”选择安装路径;再之后点击“下一步”,会弹出图4.26的对话框,可以选择器件模型。
图4.26 器件模型选择对话框(3)点击“下一步”,如图4.27所示,可以选择器件种类。
图4.27 器件种类选择对话框通过以上步骤后,可根据具体情况来选择,继续“下一步”即可完成安装。
安装完成后,环境变量应作如下描述:若操作系统是Windows NT/2000/XP,选择开始->控制面板->系统->选项->系统->高级->环境变量,在环境变量中加入:变量名:Xilinx变量值:C:Xilinx(即安装路径)具体设置如图4.28所示。
图4.28 环境变量设置操作图3)安装第三方软件在PC上安装完ISE之后,还需要安装第三方仿真软件,如ModelSim等。
今日电子 http://www.epc.com.cn 2003年第1期
22
北方交通大学电气学院 黎莉 张晓冬 苏治国
概述
随着FPGA芯片密度的增加,串行PROM已不能适应高密度的FPGA的配置。
大容量的并行PROM所要求的寻址方式又不能直接与FPGA接口,这时可以采用XC9500 CPLD和PROM对高密度FPGA进行配置。
FPGA设备在线配置或电源上电时,配置逻辑会被自动清除。
FPGA的PROGRAM信号必须在300ns内置低,使配置逻辑复位。
INIT输出在内部配置存储器清零期间保持低电平。
一旦INIT管脚变高,就表明设备已准备接受配置。
FPGA的配置有主设备串行配置和从设备串行配置两种方式。
XC4000和Spartan系列设备在INIT变高后要求在设备准备接收配置数据之前有一个超时期,但Spartan-Ⅱ不在此列。
在主设备串行模式下,FPGA在超时达到要求之前关闭配置时钟(CCLK)。
在从设备串行模式下,必须在超时期完成后才能开启CCLK。
而Spartan-Ⅱ和Virtex系列在INIT信号变高之后不要求超时期,一旦INIT信号变高,设备立即准备接收配置数据。
接口设计
在串行配置模式下用并行PROM对FPGA进行配置时,需要专门的接口进行并行数据到串行数据的转换,并管理FPGA的配置信号。
接口的设计方法很多,图1是使用XC9500CPLD配置FPGA的电路结构。
VSPROM的设计
设计虚拟串行PROM(VSPROM)的目的是为并行PROM和FPGA之间的连接提供接口,接口的任务是将从PROM中读来的数据转换成串行输出,然后再将地址递增。
VSPROM的结构如图2所示。
在处理数据的同时,VSPROM还管理INIT和DONE信号。
在配置期间,如果INIT被FPGA拉低,表明出现配置错误,VSPROM必须复位并等待用户将FPGA复位,然后重新配置。
一旦FPGA的DONE变高,表明配置成功,VSPROM就撤消ROM_CS来取消PROM的使能,将自己和PROM与FPGA隔离,并将DOUT设为高阻态。
在VSPROM的设计中,使用XC9536PC44-10、XCV600BG432-6和一个8位的PROM(AT27C080)验证。
图1 FPGA的接口电路图2 VSPROM的结构
ELECTRONIC PRODUCTS CHINA http://www.epc.com.cn JAN. 2003
23
主设备串行配置时,Xilinx FPGA供配置时钟(CCLK)。
CCLK与VSPROM的时钟CLK_IN直接相连。
VirtexSpartan-60MHz,XC4000/Spartan大配置速率是8MHz。
然而,置速率还应该考虑PROM(TACC)和主设备串行输入的时间(TDSCK)。
主设备串行模式下PROM的频率=1(TACC+TDSCK)。
TACC对于Virtex为5.0ns,对于XC4000/Spartan系列是20.0ns,PROMTACC对于AT27C080是Virtex设备最大频率为9.5MHz,对于这就是说,VirtexPROM的限制,而XC4000/Spartan设备的配置频率受自己内部CCLK的限制。
为了加快Virtex设备的配置速度,可以选择更快的PROMFPGA在准备好接收配置数据之前会关闭CCLK,因此VSPROM的设计不用考虑其他问题。
从设备串行配置有专门的振荡电路提
供配置时钟,速度比较快。
振荡电路的时钟输出必须接FPGA的配置时钟(CCLK)和
VSPROM的时钟(CLK_IN)。
最大配置频率对于Virtex是66MHz,对于XC4000/Spartan系列是10MHz。
同样,配置频率受到PROM的存取时间(TACC)和从设备串行输入时间(TDCC)的限制,计算方法同上。
从设备串行模式下对XC4000或者Spartan系列FPGA进行配置时,必须考虑设备开始的顺序(这里讨论的顺序不适合Spartan-Ⅱ系列)。
正如前面提及的,一旦INIT置高,设备能够接收配置数据之前需要有一个超时期,VSPROM接口必须能够在超时期达到之前封锁振荡电路的时钟输出。
如果是Virtex或者Spartan-Ⅱ设备作为从设备,INIT置高后FPGA可以立即准备好接收配置数据,就不用考虑超时的问
题。
在以上两种配置方式下,并行PROM的大小和数目由配置FPGA所要求的配置位的数目决定。
PROM的大小由所需要的地址线数目决定。
缺省情况下,VSPROM设计使用19根地址线,对应4MB的PROM。
当需要更多的容量存储配置数据时,可以修改VSPROM源程序(VHDL或GENERIC)使其适应新的需求,详细情况参见表1。
如果配置要求多于19根地址线,可以使用XC9572设计VSPROM。
FPGA配置期间发生错误时,INIT信号变成低电平,配置程序中止。
所以VSPROM需要管理INIT,当INIT变低时,VSPROM需要复位并等待FPGA的复位后才能进行重新配置。
简单的方法是可以在INIT变低时用VSPROM控制FPGA的PROGRAM变低,迫使FPGA清除自己的配置存
表1 不同的EPROM所需的地址线
表2 两个PROM的地址译码
图4 用VSPROM配置两个FPGA图3 用两个PROM配置FPGA
今日电子 http://www.epc.com.cn 2003年第1期
24
储器,然后重试。
或者可以将INIT接微控制器,在配置期间INIT变低时控制整个系统复位。
接口的扩展
FPGA要求的配置空间大于所选的PROM时,可以使用多个PROM,连接方法如图3所示。
这时地址线是20位,高位地址线 ADDRESS(19)用来选择PROM,见表2。
多个FPGA可以直接级连,如图4所示。
这种情况下对VSPROM没有特殊的要求。
CCLK,INIT,DONE和PROG信号必须并联,前一个设备的DOUT信号连接下一个的DIN。
调试应用
为了保证FPGA的CCLK和DIN信号不受任何干扰,在设计电路板时通常在每个Vcc和GND之间加0.1μF和0.01μF的电容。
同时,要保证Vcc的响应速度足够快。
如
果电源响应速度不够快、响应单调性不好,会影响系统的上电过程从而影响正确的配置。
所有的XC4000和Spartan设备都对5V和3.3V环境兼容。
Virtex和Spartan-Ⅱ设备也可以直接应用于5V和3.3V的环境,在LVTTL与3.3V的Vcco相连时必须使用缺省的I/O标准。
详细情况参见Xilinx设备的电压兼容性数据资料。
Virtex-E设备不能直接应用在5V环境,因此在配置时必须加以考虑。
EPC。