引言
便携式、小型的仪表和设备是一个非常重要的应用领域,在未来一段时间内会有比较大的市场。而等现场可器件也是正在兴起与普及的一种器件,把FPGA更好地运用到上述仪表和设备中,可以减少这些仪器、设备的开发周期,大幅度提升这些仪器的性能,减少总成本和体积等。
在许多应用场合,如大型设备中的板卡,比较适合采用标准的FPGA编程。但是对于便携式设备的应用场合,采用标准电路联系FPGA与CPU需要消耗的资源太多。许多DSP芯片只有2个通用I/O引脚,所以如果能只使用1~2个引脚就完成FPGA编程功能,意义将非常重大。
标准的FPGA编程电路
以Xilinx的Spartan系列FPGA为例,图1是一个标准的编程电路。电路中控制器使用了4条控制信号线PROG,CLK,Data,DONE。首先Prog信号控制FPGA的初始化,一个Prog信号的低电平使FPGA进入编程状态,在编程过程及以后的运行过程中,Prog信号保持高电平;在编程过程中,Data信号与CLK信号配合,在每个Clk信号的上升沿,FPGA锁定/读取一个Data信号,如此循环,直到控制器将需要编程的程序全部送到FPGA中;当FPGA正确接收到编程程序以后,就会产生一个DONE信号,通知控制器一切完毕。
该电路是Xilinx公司推荐的一个FPGA的标准电路,对于许多常规应用场合,它还是比较合适的,但是对于手持式仪表等尺寸非常小的设备,由于控制器本身只有1~2个I/O控制线,而上述标准电路占用4个I/O口,就有可能无法应用。
精简的FPGA编程方法
本文给出了一种精简的FPGA编程电路如图2所示。控制器的I/O控制信号线包括P/C和Data。P/C控制信号产生图2中所示的波形,经过Prog解码电路(如图4所示)得到Prog信号,经过CLK解码电路(在本例中也可以不经过),得到CLK信号,它们与Data一起组成完整的FPGA控制信号,完成对FPGA的编程控制。

图1 通常的FPGA下载电路

图2 精简的FPGA下载电路之一
该电路只使用2根I/O控制信号线,比标准编程电路要少,利用特殊控制信号的编码与解码,得到完成FPGA的编程工作。
更进一步,也可以只使用一个I/O控制信号线,如图3所示,使用Prog解码电路(如图4所示)、CLK解码电路和Data解码电路(如图5所示),得到FPGA编程所必须的Prog信号、CLK信号和Data信号。该方法比图2所示的电路所需要的控制线还要少。