|
摘 要: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所需的地址线
|