新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用XC9500 CPLD和并行PROM配置Xilinx FPGA(图)

用XC9500 CPLD和并行PROM配置Xilinx FPGA(图)

——
作者:黎莉 张晓冬 苏治国时间:2007-02-06来源:
摘 要:xilinx fpga系列可以通过串口配置,本文给出了一个用xc9500和并行prom对xilinx fpga进行串行配置的应用实例。
关键词:fpga;cpld;串行配置

概述
  随着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是使用xc9500 cpld配置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)验证。

  主设备串行配置时,xilinx fpga提供配置时钟(cclk)。cclk与vsprom的时钟clk_in直接相连。virtex和spartan-ⅱ支持的最大配置速率是60mhz,xc4000/spartan系列支持的最大配置速率是8mhz。然而,实际的最大配置速率还应该考虑prom的存取时间(tacc)和主设备串行输入的时间(tdsck)。

  主设备串行模式下prom的频率=1/(tacc+tdsck)。

  tacc对于virtex为5.0ns,对于xc4000/spartan系列是20.0ns,prom的tacc对于at27c080是100ns。因此,对于virtex设备最大频率为9.5mhz,对于xc4000/spartan设备最大频率为8.3mhz。这就是说,virtex设备的配置频率受prom的限制,而xc4000/spartan设备的配置频率受自己内部cclk的限制。为了加快virtex设备的配置速度,可以选择更快的prom。在主设备串行模式下,fpga在准备好接收配置数据之前会关闭cclk,因此vsprom的设计不用考虑其他问题。

  从设备串行配置有专门的振荡电路提供配置时钟,速度比较快。振荡电路的时钟输出必须接fpga的配置时钟(cclk)和vsprom的时钟(clk_in)。最大配置频率对于virtex是66mhz,对于xc4000/spartan系列是10mhz。同样,配置频率受到prom的存取时间(tacc)和从设备串行输入时间(tdcc)的限制,计算方法同上。

表1
不同的eprom所需的地址线

eprom 配置位数 所需的地址线
1m eprom 1 048 576 17
2m eprom 2 097 152 18
3m eprom 4 194 304 19
4m eprom 8 388 608 20


  从设备串行模式下对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清除自己的配置存储器,然后重试。或者可以将init接微控制器,在配置期间init变低时控制整个系统复位。


2 两个prom的地址译码

额外的地址(a19)
/ce0
/ce1
0
0
1
1
1
0


接口的扩展
  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环境,因此在配置时必须加以考虑。

参考文献
1 xilinx.xc9500xv family high-performance cpld ds049(v2.0),january 15,2001
2 xilinx.fastflash xc9500xl high-performance cpld family(v1.5), 1999,7
3 陈光梦.可编程逻辑期间的原理与应用.上海:复旦大学出版社,1997
4 xilinx.xc9500 in-sytem programmable cpld family(v5.0),september 15,1999


关键词:

评论

技术专区

关闭