采用EEPROM对大容量FPGA芯片数据实现串行加载_第1页
采用EEPROM对大容量FPGA芯片数据实现串行加载_第2页
采用EEPROM对大容量FPGA芯片数据实现串行加载_第3页
采用EEPROM对大容量FPGA芯片数据实现串行加载_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、采用EEPROM对大容量FPGA芯片数据实现串行加载        摘要:通过对比多种FPGA数据加载方式,从可靠性、>' target='_blank' class='infotextkey'>经济性及PCB设计等几个方面说明了串行加载的优越性,分析了目前串行加载所面临的问题。为解决串行加载新面临的问题,提出了采用EEPROM与9500系列CPLD相结合实现串行加载的构想,并通过实际设计,成功地实现了该构想。   自大规模现场可编程逻辑器件问

2、世以来,先后出现了两类器件,一类是基于SRAM体系结构的FPGA系列,如XILINX公司4000系列和最新的Virtex系列;另一类 基于fastFLASH技术的CPLD器件,如XILINX公司9500系列和Lattic公司的ispLSxx系列芯片。FPGA具有容量大、设计资源丰富、片内ROM及RAM设计灵活等特点1,但是它们需要在每次上电时进行数据加载。目前实现加载的方法有以下三种:采用PROM并行加载;彩 专用SROM串行加载;采用单片机控制实现加载。第一种方式需要占用较多的FPGA管脚资源,虽然这些管脚在加载完成后可用作一般I/O口,但在加载时不允许这些载完成后可用作一般I/O口,但在加

3、载时不允许这些管脚有其他任何外来信号源;另外数据存储器PROM与FPGA之间的大量固定连线如8位数据线以及大量访问PROM的地址线等,使得PCB设计不便。但是第一种方式有一个有利的方面,即PROM的容量较大、容易购置、价格低、技术支持(编程器)较好。第二种方式情况刚好与第一种方式相反,即占用资源少,PCB布板方便,但是容量小、价格较高、兼容性差。第三种方式采用单片机控制,由PROM中读取并行数据,然后再串行送出。由于涉及到单片机编程,对于开发者来说较为不便;另外,如果单片机仅用来实现该任务,较为浪费硬件资源。CPLD的一个最大优点是采用计算机专用开发工具,通过JTAG口直接一次性实现编程数据加

4、载,并永久保留,除非进行再次编程(与GAL器件相似)。该类器件比较适合在实验室内进行现场调试,但是由于其数据的加载必须通过计算机,因此对于从事野外作业者来说会产生不便。通过上述比较,并结合实际工作情况,我们认为采用串行数据加载比较方便、可靠(这种可靠性得益于FPGA与SROM之间较少的接口线)。但随着FPGA规模的不断升级,其CONFIG数据量越来越大,截止到本文写作时,CONFIG数据量最大已列6MBIT,虽然XILINX公司有相关的XC17X系列SROM提供使用,但皆为一次性芯片2、开发成本较高、代理商供货周期长、价格较高,这给FPGA的应用及普及带来很大的障碍。我们曾使用过AT&

5、T公司的ATT17系列电可擦除SROM,但是该类SROM芯片能与XILINX系列FPGA芯片实现接口的种类不多,且容量小。由于种种原因,其价格往往是同样存储容量的EEPROM的五、六倍,甚至更高,并且来源困难。那么能不能结合并行加载与串行加载的优点,从而解决容量FPGA数据加载的问题呢?我们在仔细分析了串行加载机制后,认为采用EEPROM作为数据存储器,经过可控的并-串转换,应该可以实现数据加载。下面的XILINX公司Virtex系列XCV100芯片为例,采用ATMEL公司1兆位的AT29C010A进行数据存储,采用XILINX公司9500系列XC95108芯片作为加载控制器件进行设计。1 原

6、理设计原理性Master Serial模式串行加载时序如图1所示。在该加载模式中,比较重要的几个信号为/INIT、CCLK、DATAIN、DONE。/INIT表示FPGA芯片上电时或者当/PROGRAM信号为低时FPGA内部数据初始化过程,并作为外送信号给数据加载控制器件作为复位之用。当/INIT信号跃为高电平时,CCLK开始启动。加载数据DATAIN在CCLK的上升沿打入,与通用串行通讯相类似,加载数据流也有开始位与结束位,且以数据帧的方式接收。一旦发生错误,FPGA立即停止接收数据,并将/INIT信号置为低电平,因此该信号又称为错误指示信号。当数据全部接受并验证无误后,FPGA将DONE信

7、号置为“1”3。在分析了FPGA加载数据流特性后,可以得出这样一个结论:保证CCLK与DATAIN之间的严格同步与连续性,就可以实现加载。基于此结论,在生成加载数据格式时,产生单片SROM串行格式,对于XILINX公司的FPGA系列,该格式为.MCS文件格式;然后用ALL07编程器以INTEL HEX数据格式将其写入EEPROM中。余下的工作是在CCLK、/INIT、DATAIN的控制下完成并-串转换。该控制过程采用一片CPLD之95系列XC95108芯片来承担,在设计容量上采用一片X9536即可完成,之所以采用XC95108是因为其尚需要完成其他任务。其原理框图如图2所示。2 并-串转换时序

8、设计在时序设计上,关键在于要保持DATAIN加载数据的连续性、DATAIN与CCLK加载时钟的同步性以及EEPROM访问地址的复位问题。对于复位问题,采用上电时FPGA产生的/INIT信号对95108内部的EEPROM地址发生器复位。这样做的原因是/INIT与FPGA之CCLK时钟产生有着同步关系,但同时也默认上电加载是一次成功;在考虑可贵 行DATAIN数据的连续性时,采用两组移位寄存器,设定它们为R_shiftA和R_shiftB,当R_shitfA在进行移位操作时,R_shiftB由EEPROM中读入八位并行数据,反之亦然;为保持ATAIN与CCLK时钟的同步性,所有上述操作都以CCLK

9、为同步时钟,值得注意的是,由于DATAIN串行数据是在CCLK的上升沿打入FPGA,因此我们给予XC95108芯片设计的运转时钟是经过反相的CCLK时钟,这样就保证了CCLK与DATAIN的时间关系。以下是为该加载设计的VHDL硬件编程语言设计程序45,其中的计数器及移位寄存器模块用F2.11设计软件之LogicBlox模块产生。整个程序经F2.11开发软件仿零点、编译成功后,经JTAG编程电缆写入XC95108芯片。加电后便加载成功,经多次加电实验,成功率为100%。虽然该程序是针对XCV100芯片及AT29C010AEEPROM设计的,但对于其他FPGA及EEPROM芯片同样适用,不同的是

10、针对不同容量的EEPRIM,应改变其地址计数器的位数。library IEEE;use IEEE.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.allentity v10sload isport (pDATA:in STD_LOGIC_VECTOR(7 downto 0);pADDRESS:inout STD_LOGIC_VECTOR (16 downto 0);CCLKIN: in STD_LOGIC;RESET:in STD_LOGIC;DATAIN:out STD_LOGIC);en

11、d v10sload;architecture v10sload_arch of v10sload issignal:loadin,CE,nCE,CCLK8,nRESET,nCCLK,aDATAIN,bDATAIN:std_logic;signal clkenable,CCLK:std_logic;signal ppDATA:std_logic_vector(7 downto 0);component clk_div8PORT(CLOCK,ASYNC_CTRL:IN std_logic;CLK_OUT:OUT std_logic);end component;component R_shift

12、8PORT(D_IN:IN std_logic_vector(7 DOWNTO 0);LOAD:in std_logic;CLK_EN:IN std_logic;CLOCK:IN std_logic;LS_OUT:OUT std_logic);end component;component BUFGport (I:in std_logic; O:out std_logic);end component;begin-data-loading function statements herenRESET<=not RESET;init_data:process(RESET)beginif(R

13、ESET='0') thenppDATA<="00000000"else ppDATA<=pDATA;end if;end process init_data;L0:BUFG port map(I=>CCLKIN,O=>CCLK);nCCLK<not CCLK;L1:counter17 portmap(CLOCK=>CCLK8,ASYNC_CTRL=>nRESET,Q_OUT=>pADDRESS);L2:clk_div8 portmap(CLOCK=>nCCLK,ASYNC_CTRL=>nRESET,CLK_OUT=>CCLK8);nCE<=not pADDRESS(0);CE<=pADDRESS(0);Clkenable<='1'L3:R_shitf8 portmap(D_IN=>ppDATA,LOAD=>nCE,CLK_EN=>clkenable,CLOCK=>nCCLK,LS_OUT=>aDATAIN;L4:R_shift8 portmap(D_IN=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论