- 基于FPGA CPLD的EDA技術實用教程
- 任全會主編
- 2091字
- 2020-05-19 12:06:48
四、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器件的電路連接圖