- EDA技術(shù)與實(shí)踐教程
- 宋烈武編著
- 3584字
- 2020-05-07 12:46:31
2.4 FPGA/CPLD器件的配置與編程
通常,將對(duì)FPGA的數(shù)據(jù)文件下載過(guò)程稱(chēng)為配置(Configure),而對(duì)CPLD的數(shù)據(jù)文件下載過(guò)程稱(chēng)為編程(Program)。
2.4.1 下載電纜
目前,Altera的下載電纜主要有ByteBlasterⅡ、ByteBlaster MV并口下載電纜、USB Blaster USB口下載電纜、MasterBlaster串行/USB通信電纜。下載電纜既可用于FPGA器件的ICR,也可用于CPLD器件的ISP。下面重點(diǎn)介紹ByteBlaster并口下載電纜。
ByteBlaster并口下載電纜連接到PC機(jī)25針LPT標(biāo)準(zhǔn)接口,它由以下幾部分組成:與PC機(jī)并口相連的25針插頭、與用戶(hù)PCB板相連的10針插頭,以及25針到10針的變換電路。要下載的數(shù)據(jù)文件從PC機(jī)并口通過(guò)ByteBlaster電纜下載到電路板上的器件中,其連接方法如圖2-12所示。

圖2-12 并口下載電纜連接示意圖
(1)ByteBlaster 25針插頭
ByteBlaster與PC機(jī)并口相連的是25針插頭,它在PS模式下和在JTAG模式下的引腳信號(hào)定義是不同的,見(jiàn)表2-11。
表2-11 ByteBlaster 25針插頭的引腳信號(hào)定義

(2)ByteBlaster 10針插座
ByteBlaster下載電纜的10針插座與含有FPGA/CPLD目標(biāo)器件的PCB板上的10針插頭相連接。PCB板上的10針插頭分成兩排,每排5個(gè)引腳,連接到器件引腳上(器件的引腳名與10針插座的引腳信號(hào)名稱(chēng)相同)。表2-12列出了10針插座在PS模式下和在JTAG模式下的引腳信號(hào)定義。
表2-12 ByteBlaster 10針插座的引腳信號(hào)定義

(3)ByteBlaster數(shù)據(jù)變換電路
在ByteBlaster下載電纜中,其變換電路實(shí)際上只有一個(gè)74LS244驅(qū)動(dòng)芯片和幾個(gè)電阻,變換電路原理如圖2-13所示。

圖2-13 ByteBlaster變換電路原理圖
2.4.2 配置與編程模式
Altera器件的配置方式可分為主動(dòng)串行(AS)、被動(dòng)串行(PS)、被動(dòng)并行同步(PPS)、被動(dòng)并行異步(PPA)和JTAG模式。主動(dòng)配置方式由專(zhuān)用配置器件引導(dǎo)配置操作過(guò)程,而被動(dòng)配置方式由外部計(jì)算機(jī)或控制器控制配置過(guò)程。其中PS和JTAG模式最為常用。
(1)PS模式
在PS模式中,配置數(shù)據(jù)從數(shù)據(jù)源通過(guò)ByteBlaster下載電纜串行地送到FPGA,配置數(shù)據(jù)的同步時(shí)鐘由數(shù)據(jù)源提供。配置文件是編譯器在項(xiàng)目編譯時(shí)自動(dòng)產(chǎn)生的SRAM目標(biāo)文件(.sof)。下面以FLEX 10K器件為例介紹PS模式對(duì)器件的配置情況。其連接如圖2-14所示,主要配置引腳如下。

圖2-14 PS模式下ByteBlaster下載電纜對(duì)FLEX器件的配置
①M(fèi)SEL1、MSEL0 輸入腳,接地。
②nSTATUS 命令狀態(tài)下為器件的狀態(tài)輸出。加電后,F(xiàn)LEX 10K立即驅(qū)動(dòng)該引腳到低電位,然后在100ms內(nèi)釋放它。nSTATUS必須經(jīng)過(guò)1kΩ電阻上拉到VCC,如果配置中發(fā)生錯(cuò)誤,F(xiàn)LEX 10K將其拉低。
③nCONFIG 配置控制輸入。低電位使FLEX 10K器件復(fù)位,在由低到高的跳變過(guò)程中啟動(dòng)配置。
④CONF_DONE 雙向漏極開(kāi)路。在配置前和配置期間為狀態(tài)輸出,F(xiàn)PGA將其驅(qū)動(dòng)為低。所有配置數(shù)據(jù)無(wú)誤差接收后,F(xiàn)LEX 10K將其置為三態(tài),由于有上拉電阻,所以將變?yōu)楦唠娖剑硎九渲贸晒ΑT谂渲媒Y(jié)束且初始化開(kāi)始時(shí),CONF_DONE為狀態(tài)輸入:若配置電路驅(qū)動(dòng)該引腳到低,則推遲初始化工作;輸入高電位則引導(dǎo)器件執(zhí)行初始化過(guò)程并進(jìn)入用戶(hù)狀態(tài)。CONF_DONE必須經(jīng)過(guò)1kΩ電阻上拉到VCC,而且可以將外電路驅(qū)動(dòng)為低以延時(shí)FLEX 10K初始化過(guò)程。
⑤DCLK 輸入腳。為外部數(shù)據(jù)源提供時(shí)鐘。
⑥nCE 使能輸入。當(dāng)nCE為低時(shí),使能配置過(guò)程。單片配置時(shí),nCE必須始終為低。
⑦nCEO 輸出(專(zhuān)用于多片器件)。FLEX 10K配置完成后,輸出為低。在多片級(jí)聯(lián)配置時(shí),驅(qū)動(dòng)下一片的nCE端。
⑧DATA0 數(shù)據(jù)輸入,在DATA0引腳上的一位配置數(shù)據(jù)。
在PS配置方式中,由ByteBlaster下載電纜或微處理器產(chǎn)生一個(gè)由低到高的跳變送到nCONFIG引腳,然后編程硬件或微處理器將配置數(shù)據(jù)送到DATA0引腳,該數(shù)據(jù)鎖存至CONF_DONE變?yōu)楦唠娢弧>幊逃布蛭⑻幚砥飨葘⒚孔止?jié)的最低位LSB送到FLEX 10K器件,當(dāng)CONF_DONE變?yōu)楦唠娢缓螅珼CLK用多余的10個(gè)周期來(lái)初始化該器件(器件的初始化由下載電纜自動(dòng)執(zhí)行)。在PS方式中沒(méi)有握手信號(hào),故配置時(shí)鐘的工作頻率必須低于10MHz。
(2)JTAG模式
JTAG(Joint Test Action Group)是1985年制定的檢測(cè)PCB和IC芯片的一個(gè)標(biāo)準(zhǔn),1990年被修改后成為IEEE的一個(gè)標(biāo)準(zhǔn),即IEEE 1149.1—1990。通過(guò)這個(gè)標(biāo)準(zhǔn),可對(duì)具有JTAG接口芯片的硬件電路進(jìn)行邊界掃描和故障檢測(cè)。在JTAG模式下,利用ByteBlaster下載電纜,可以實(shí)現(xiàn)FPGA/CPLD器件的ICR和ISP。下面舉例說(shuō)明JTAG模式下ByteBlaster下載電纜對(duì)FPGA/CPLD器件的配置或編程情況。
①JTAG模式下ByteBlaster下載電纜對(duì)FPGA器件的配置 通過(guò)ByteBlaster電纜,將編譯過(guò)程中產(chǎn)生的SRAM目標(biāo)文件(.sof)直接下載到目標(biāo)器件FPGA中。以FLEX 10K器件為例,其連接如圖2-15所示。器件的配置是經(jīng)過(guò)JTAG引腳TCK、TMS、TDI和TDO完成的,所有其他I/O引腳在配置過(guò)程中均為三態(tài)。

圖2-15 JTAG模式下ByteBlaster下載電纜對(duì)FPGA器件的配置
注:FIEX 10K的144引腳TQEP封裝器件沒(méi)有TRST信號(hào)腳,些時(shí)TRST信號(hào)可以忽略,nCONFIG、MSEL0、MSEL應(yīng)根據(jù)FLEX 10K的配置方案進(jìn)行連接。如果僅僅使用JTAG配置模式,則nCONFIG連到VCC,MSEL0和MSEL1連到地
JTAG引腳定義如下。
a.TCK 測(cè)試時(shí)鐘輸入。
b.TDI 測(cè)試數(shù)據(jù)輸入,數(shù)據(jù)通過(guò)TDI輸入JTAG口。
c.TDO 測(cè)試數(shù)據(jù)輸出,數(shù)據(jù)通過(guò)TDO從JTAG口輸出。
d.TMS 測(cè)試模式選擇,TMS用來(lái)設(shè)置JTAG口處于某種特定的測(cè)試模式。
e.可選引腳TRST 輸入引腳,用于測(cè)試復(fù)位,低電平有效。
②JTAG模式下ByteBlaster下載電纜對(duì)CPLD器件的編程 通過(guò)ByteBlaster電纜,將編譯過(guò)程中產(chǎn)生的編程目標(biāo)文件(.pof)直接下載到目標(biāo)器件CPLD中。以MAX 9000器件為例,其連接如圖2-16所示。器件的配置也是經(jīng)過(guò)JTAG引腳完成的,所有其他I/O引腳在編程過(guò)程中均為三態(tài)。

圖2-16 JTAG模式下ByteBlaster下載電纜對(duì)CPLD器件的配置
當(dāng)用戶(hù)電路板上具有多個(gè)支持JTAG接口的FPGA/CPLD器件時(shí),要求一個(gè)具有JTAG接口模式的插座連接到幾個(gè)支持JTAG接口的FPGA/CPLD器件,如ByteBlaster的10針陰插座。JTAG鏈中器件的數(shù)目受限于ByteBlaster電纜的驅(qū)動(dòng)能力,當(dāng)器件數(shù)目超過(guò)5個(gè)時(shí),建議對(duì)JTAG引腳信號(hào)進(jìn)行緩沖。當(dāng)用戶(hù)電路板包含多個(gè)FPGA/CPLD目標(biāo)器件時(shí),或者對(duì)用戶(hù)電路板進(jìn)行JTAG邊界掃描測(cè)試時(shí),采用JTAG鏈進(jìn)行編程是最理想的。
為了在JTAG鏈中對(duì)FPGA/CPLD器件進(jìn)行配置或編程,可通過(guò)編程軟件,將JTAG鏈中的所有其他器件(包括非Altera器件)設(shè)定為旁路(Bypass)模式。在旁路模式下,編程軟件僅對(duì)選定的目標(biāo)器件進(jìn)行編程與校驗(yàn)。Altera公司的FPGA和CPLD能夠放在同一個(gè)JTAG鏈中進(jìn)行編程和配置。
2.4.3 配置方式
FPGA的在線(xiàn)配置方式一般有兩類(lèi):一是通過(guò)下載電纜由計(jì)算機(jī)直接對(duì)其進(jìn)行配置;二是通過(guò)配置芯片對(duì)其進(jìn)行配置。在應(yīng)用現(xiàn)場(chǎng),不可能在FPGA每次上電后通過(guò)PC機(jī)手動(dòng)進(jìn)行配置,這時(shí),應(yīng)采用上電自動(dòng)加載配置。為此,Altera提供了專(zhuān)用配置芯片(詳見(jiàn)2.2.6節(jié)),對(duì)FPGA進(jìn)行上電自動(dòng)加載配置。
在選用配置芯片時(shí),應(yīng)根據(jù)FPGA器件的容量,決定配置芯片及其數(shù)目(可查閱QuartusⅡ開(kāi)發(fā)工具Help中的 Devices and Adapters欄目)。
(1)使用專(zhuān)用配置器件配置FPGA器件
專(zhuān)用配置器件對(duì)FPGA器件的配置電路如圖2-17所示。

圖2-17 專(zhuān)用配置器件對(duì)FPGA器件的配置電路圖
配置器件的控制信號(hào)(如nCS、OE和DCLK等)直接與FPGA器件的控制信號(hào)相連。所有的器件不需要任何外部智能控制器,就可以由專(zhuān)用配置器件進(jìn)行配置。配置器件的OE和nCS引腳,控制著DATA輸出引腳的三態(tài)緩存,并控制地址計(jì)數(shù)器的使能。當(dāng)OE為低電平時(shí),配置器件復(fù)位地址計(jì)數(shù)器,DATA引腳為高阻狀態(tài)。nCS引腳控制著配置器件的輸出:如果在OE復(fù)位脈沖后,nCS始終保持高電平,計(jì)數(shù)器將被禁止,DATA引腳為高阻;當(dāng)nCS變低電平后,地址計(jì)數(shù)器和DATA輸出均使能;OE再次變低電平時(shí),不管nCS處于何種狀態(tài),地址計(jì)數(shù)器都將復(fù)位,DATA引腳置為高阻態(tài)。
對(duì)圖2-17說(shuō)明如下。
①同樣的上拉電阻應(yīng)該連接到配置器件的電源。
②所有的上拉電阻為1kΩ(APEX 20KE、APEX 20KC系列器件例外,它們的上拉電阻為10kΩ)。用戶(hù)對(duì)EPC16、EPC8和EPC2芯片的OE和nCS引腳,可配置內(nèi)部上拉電阻,如果這些引腳使用了內(nèi)部上拉電阻,則不能再使用外部上拉電阻。
③nINIT_CONF引腳僅對(duì)EPC16、EPC8和EPC2芯片有效。如果nINIT_CONF無(wú)效(如在EPC1中)或未使用,則nCONFIG應(yīng)該直接或經(jīng)上拉電阻連到VCC。
④nINIT_CONF引腳的內(nèi)部上拉電阻對(duì)EPC16、EPC8和EPC2芯片總是有效的,故nINIT_CONF引腳不需要外部上拉電阻,nCONFIG必須通過(guò)10kΩ上拉電阻連到VCCINT引腳。
⑤nCEO引腳懸空。
⑥為了保證APEX 20KE和其他配置器件在加電時(shí)成功配置,nCONFIG上拉到VCCINT引腳。
⑦配置APEX 20KE器件時(shí),為了隔離1.8V和3.3V電源,在APEX 20KE器件的nCONFIG引腳與配置芯片的nINIT_CONF引腳之間加一個(gè)二極管。二極管門(mén)限電壓應(yīng)小于等于0.7V,二極管會(huì)使nINIT_CONF引腳成為開(kāi)漏引腳,僅能驅(qū)動(dòng)低電平及三態(tài)。
⑧EPC16、EPC8和EPC2芯片不應(yīng)用于配置FLEX 6000系列器件。
允許多個(gè)配置器件配置單個(gè)和多個(gè)FPGA。對(duì)多個(gè)FPGA器件的配置電路與對(duì)單個(gè)FPGA器件的配置電路類(lèi)同:多個(gè)FPGA器件級(jí)聯(lián)時(shí),第一個(gè)器件的nCEO腳連到第二個(gè)器件的nCE腳,其他引腳與專(zhuān)用配置芯片的連接方式和單個(gè)FPGA器件配置電路圖的連接方式相同。
(2)利用微處理器配置FPGA
在具有微處理器的系統(tǒng)中,可以使用微處理器系統(tǒng)的存儲(chǔ)器來(lái)存儲(chǔ)配置數(shù)據(jù),并通過(guò)微處理器配置FPGA,這種方法幾乎不增加成本,并且具有較好的設(shè)計(jì)保密性和可升級(jí)性。下面介紹微處理器系統(tǒng)中連接方式較簡(jiǎn)單的PS配置模式。圖2-18是其電路連接圖。
微處理器將nCONFIG置低再置高來(lái)初始化配置。當(dāng)檢測(cè)到nSTATUS變高后,微處理器將配置數(shù)據(jù)和移位時(shí)鐘分別送到DATA0和DCLK引腳,送完配置數(shù)據(jù)后,檢測(cè)CONF_DONE是否變高,若未變高,說(shuō)明配置失敗,應(yīng)該重新啟動(dòng)配置過(guò)程。當(dāng)檢測(cè)CONF_DONE變高后,微處理器根據(jù)器件的定時(shí)參數(shù),再送一定數(shù)量的時(shí)鐘到DCLK引腳,待FPGA初始化完畢后進(jìn)入用戶(hù)模式。如果微處理器具有同步串口,DATA0、DCLK使用同步串口的串行數(shù)據(jù)輸出和時(shí)鐘輸出,這時(shí)只需把數(shù)據(jù)鎖存到微處理器的發(fā)送緩沖器。在使用普通I/O口輸出數(shù)據(jù)時(shí),微處理器每輸出1個(gè)比特,就要將DCLK置低再置高產(chǎn)生一個(gè)上升沿。

圖2-18 PS模式下微處理器對(duì)FPGA器件的配置電路圖
思考
(1)早期的可編程邏輯器件有哪幾類(lèi)?
(2)請(qǐng)用自己的語(yǔ)言分別描述FPGA與CPLD的工作原理及結(jié)構(gòu)特征。
(3)請(qǐng)描述配置與編程的特征。
- 廣告策劃
- 財(cái)務(wù)會(huì)計(jì)實(shí)務(wù)
- 酒店服務(wù)英語(yǔ)
- 我的大學(xué)我做主:大學(xué)生入學(xué)人文教程
- 工程測(cè)量(第3版)
- 高職學(xué)生工作探索與創(chuàng)新(2011年卷)
- 電工電子技術(shù)(第4版)
- 中藥調(diào)劑綜合技能訓(xùn)練
- 咖啡館經(jīng)營(yíng)管理
- 汽車(chē)4S店運(yùn)營(yíng)與管理
- 冷沖模設(shè)計(jì)
- 倉(cāng)儲(chǔ)管理
- 移動(dòng)通信技術(shù)與終端
- 商業(yè)銀行會(huì)計(jì)
- 證券投資基金基礎(chǔ)知識(shí)考點(diǎn)歸納與真題詳解