基于FPGA CPLD的EDA技术实用教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

四、FPGA/CPLD器件的配置

在大规模可编程逻辑器件出现以前,人们在设计数字系统时,把器件焊接在电路板上是设计的最后一个步骤。当设计存在问题时,设计者往往不得不重新设计印制电路板,设计周期被无谓地延长了,设计效率也很低。CPLD、FPGA的出现改变了这一切。现在,人们在逻辑设计时,可以在未设计具体电路时就把CPLD、FPGA焊接在印制电路板上,然后在设计调试时可以一次又一次随心所欲地改变整个电路的硬件逻辑关系,而不必改变电路板的结构。这一切都有赖于CPLD、FPGA的在系统下载或重新配置功能。

目前常见的大规模可编程逻辑器件的编程工艺有三种。

①基于电可擦除存储单元的EEPROM或Flash技术。CPLD一般使用此技术进行编程。CPLD被编程后改变了电可擦除存储单元中的信息,掉电后可保存。某些FPGA也采用Flash工艺,比如Lattice的Lattice XP系列FPGA。

②基于SRAM查找表的编程单元。对该类器件,编程信息是保存在SRAM中的,SRAM在掉电后编程信息立即丢失,在下次上电后,还需要重新载入编程信息。因此该类器件的编程一般称为配置。大部分FPGA采用该种编程工艺。

③基于反熔丝编程单元。比如Xilinx部分早期的FPGA采用此种结构,现在Xilinx已不采用。反熔丝技术编程方法是一次性可编程。

通常,将对CPLD的下载称为编程(Program),对FPGA中的SRAM进行直接下载的方式称为配置(Configure),对于反熔丝结构和Flash结构的FPGA的下载和对FPGA的专用配置ROM的下载仍称为编程。

不同厂商的器件,配置方法及工具并不相同,下面主要以Altera器件为例,介绍其配置工具及方法。

(一)下载工具及其使用

1. ByteBlaster并口下载电缆

ByteBlaster并口下载电缆是进行在系统编程常用的连接线,ByteBlaster下载电缆一端通过并口与PC机相连,另一端与目标PCB板插座相连,实现配置数据的传输,见图1.12。它的构成为:与PC并口相连的25针插座、与目标PCB板插座相连的10针插头和25针到10针的变换电路。

图1.12 ByteBlaster并口下载电缆

下载电缆与Altera器件的接口一般是10芯的接口,连接信号如表1.1所示。

表1.1 ByteBlaster下载电缆10芯接口引脚定义  

2. USB Blaster下载电缆

USB Blaster是ALTERA推出的FPGA/CPLD程序下载电缆,见图1.13,通过计算机的USB接口可对Altera的FPGA/CPLD以及配置芯片进行编程、调试等操作。USB Blaster的驱动来自PC的配置或者编程数据。它具备以下特性。

图1.13 USB Blaster

•支持1.8V、2.5V、3.3V和5.0V工作电压。

•支持SignalTap Ⅱ逻辑分析功能。

•支持Altera公司的全系列器件。CPLD有MAX3000、MAX7000、MAX9000、MAX Ⅱ等系列;FPGA有Stratix、Stratix Ⅱ、Stratix Ⅲ、Stratix Ⅳ、HardCopy Ⅰ、HardCopy Ⅱ、HardCopy Ⅲ、HardCopy Ⅳ、Cyclone Ⅰ、Cyclone Ⅱ、Cyclone Ⅲ、Cyclone Ⅳ、ACEX 1K、ACEX 20K、ACEX 10K等系列。

•支持EPCS串行配置器件的主动串行配置模式。

•支持NIOS Ⅱ嵌入式处理器系列的通信和调试。

•支持主动串行配置器件EPCS1、EPCS4、EPCS16以及其他第三方配置器件。

•支持强型配置器件EPC1、EPC4、EPC16等。

•支持NIOS调试,支持NIOS下的FLASH烧写。

•支持三种下载模式(AS、PS和JTAG)。

相比ByteBlaster,USB Blaster具备速度快、使用方便、接口简单、状态指示灯指示清晰等优势,是当今调试Altera系列FPGA/CPLD最为广泛使用的工具。

(二)CPLD器件的配置

CPLD器件多采用JTAG编程方式,JTAG编程方式对CPLD和FPGA器件都支持,用于CPLD器件的下载文件为POF格式文件,用于PFGA器件的下载文件为SOF格式文件。

1.单个MAX器件的JTAG编程

图1.14给出了单个MAX器件的JTAG编程连接示意图,图中的电阻为上拉电阻。

图1.14 单个MAX器件的JTAG编程连接示意图

2.多个MAX/FLEX器件的JTAG编程/配置

多个MAX器件的JTAG链配置如图1.15所示。当JTAG链中的器件多于5个时,建议对TCK、TMS和TDI信号进行缓冲处理。

图1.15 多个MAX器件的JTAG链配置方式

在Quartus Ⅱ软件的Programmer窗口下打开多个器件的JTAG编程选项,然后选择“JTAG/Multi-Device JTAG Chain Setup”命令,出现多级JTAG链设置对话框。单击“Select Programming File”对话框,选择相应器件的下载文件,再将选定的文件添入器件编程列表中。确认所选择的下载文件类型及次序与硬件系统中连接的顺序是否一致,然后单击“OK”按钮,即设置好编程文件,就可以进行下载了。对器件进行编程和校验所需的硬件和软件均可从Altera获得,还有很多第三方厂家也提供编程支持。

3. FPGA器件的配置

Altera的FPGA器件主要有两类配置方式:主动配置方式和被动配置方式。主动配置方式由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程;被动配置方式由外部计算机或控制器控制配置过程。根据配置数据线的宽度将配置分为串行配置和并行配置。

①使用PC并行配置FPGA 使用PC并行配置FPGA,配置数据将通过ByteBlaster电缆串行发送到FPGA器件,配置数据收发同步由ByteBlaster时钟提供,此种配置方式使用的配置文件为SOF文件(.sof),此文件在设计综合过程中自动形成。

将ByteBlaster电缆的一端与PC机的并口相连(LPT1),另一端10针插头与装配有PLD器件的PCB板上的插座相连,图1.16所示为FLEX10K器件的并口配置连接图。

图1.16 FLEX10K器件并口配置连接图

②使用EPC配置器件配置FPGA 在FPGA 正常工作时,它的配置数据存储在SRAM中,由于SRAM的易失性,每次加电时,配置数据必须重新构造。在实验系统中,常用计算机或控制器进行调试,因此可以使用被动配置方式。而实用系统不能带有计算机控制,因此必须由FPGA器件引导配置操作工程,这时主动工作的FPGA器件从外围存储芯片中获得配置数据。

常用的EPC配置芯片有EPC1、EPC2和EPC141,这些器件将配置芯片存放在EPROM中,并按照内部的时钟频率输出数据。OE、nCS和DCLK引脚提供了地址计数器和三态输出缓存器控制信号。配置器件将配置数据通过串行比特流由DATA引脚输出,图1.17所示为单个EPC1、EPC2和EPC141器件配置FPGA器件的电路连接图。

图1.17 单个EPC1、EPC2和EPC141器件配置FPGA器件的电路连接图