第5章CPLD基礎(chǔ)_第1頁(yè)
第5章CPLD基礎(chǔ)_第2頁(yè)
第5章CPLD基礎(chǔ)_第3頁(yè)
第5章CPLD基礎(chǔ)_第4頁(yè)
第5章CPLD基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第5章CPLD基礎(chǔ) 不論是簡(jiǎn)單還是復(fù)雜的數(shù)字電路系統(tǒng),一般都由基本門構(gòu)成,如與門、或門、非門、傳輸門等。基本門構(gòu)成的電路有兩類:組合電路和時(shí)序電路。組合電路都可以采用與或門二級(jí)電路來實(shí)現(xiàn),而時(shí)序電路則可以在組合電路基礎(chǔ)上加上存儲(chǔ)元件(如鎖存器、觸發(fā)器、RAM等)。基于這一基本的原理形成了可編程邏輯器件(PLD),PLD是目前集成電路中發(fā)展最快的器件之一,其應(yīng)用設(shè)計(jì)不需要半導(dǎo)體廠家的參與,一般設(shè)計(jì)者可自行設(shè)計(jì)并應(yīng)用。新買的PLD器件就猶如一張空光盤,不能直接使用,供設(shè)計(jì)者設(shè)計(jì)形成復(fù)雜的數(shù)字邏輯關(guān)系。PLD器件一般也分為兩類:一類是組合邏輯功能強(qiáng)大的CPLD,另一類是寄存器功能較強(qiáng)并包含RAM的F

2、PGA。 本章主要研究CPLD,從結(jié)構(gòu)、原理到開發(fā)軟件分類分別作闡述,針對(duì)CPLD5.1 CPLD 概念 CPLD (Complex Programmable Logic Device)直譯的話稱為復(fù)雜可編程邏輯芯片。它也屬于大規(guī)模集成電路LSI (Large Scale Integrated Circuit)里的專用集成電路ASIC (Application Specific Integrated Circuit)。適合控制密集型數(shù)字型數(shù)字系統(tǒng)設(shè)計(jì),其時(shí)延控制方便。 FPGA (Field Progarmmable Gate Array)稱為現(xiàn)場(chǎng)可編程門陣列,其典型產(chǎn)品有Xilinx公司的X

3、C系列器件,其邏輯功能塊較小,適合數(shù)據(jù)密集型系統(tǒng)的設(shè)計(jì),時(shí)延設(shè)計(jì)相對(duì)復(fù)雜。 二者從嚴(yán)格的定義上沒有太大區(qū)分,只不過是組成分類的基準(zhǔn)不同。 二者比較詳細(xì)的區(qū)別見表表表5.1 CPLD和和FPGA比較比較項(xiàng) 目CPLDFPGA基本塊結(jié)構(gòu)與或(ANDOR)陣列的多PLD組合體單純門陣列的邏輯組合體設(shè)計(jì)自由度低高門的使用率電路決定配置配線決定程序存儲(chǔ)器Flash 存儲(chǔ)器EEPROMSRAM(電源關(guān)閉,數(shù)據(jù)丟失)延遲時(shí)間一定 (可預(yù)測(cè))隨配置配線不同而不同動(dòng)作速度高速化簡(jiǎn)單不易高速化(隨配置配線不同而不同)定時(shí),模擬不需要需要(隨配置配線不同性能不同)適用電路小,中規(guī)模邏輯設(shè)計(jì)大規(guī)模邏輯設(shè)計(jì) CPLD和

4、FPGA兩者使用很相似。在很多一般的應(yīng)用CPLD已足以滿足要求,在此以CPLD為主介紹它的功能及設(shè)計(jì)法。對(duì)于CPLD和FPGA的生產(chǎn)廠家主要有兩家。它是Xilinx公司和 Altera公司。本章主要以Xilinx 公司的CPLD XC9500系列和Altera公司的MAX7000系列為例說明它們的特征和使用,同時(shí)對(duì)開發(fā)語言VHDL作說明。無論哪家公司的CPLD,均可用VHDL來設(shè)計(jì)。5.1.1 CPLD基本結(jié)構(gòu) 復(fù)雜的可編程邏輯器件CPLD規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。 CPLD有五個(gè)主要部分:邏輯陣列塊、宏單元、擴(kuò)展乘積項(xiàng)、可編程連線陣列和I/O控制塊。 1邏輯陣列塊(邏輯陣列塊

5、(LAB) 一個(gè)邏輯陣列塊由16個(gè)宏單元的陣列組成,多個(gè)LAB通過可編程陣列(PIA)和全局總線連接在一起。如圖全局總線從所有的專用輸入、I/O引腳和宏單元饋入信號(hào)。對(duì)于每個(gè)LAB有下列輸入信號(hào)。來自作為通用邏輯輸入的PIA的36個(gè)信號(hào)全局控制信號(hào),用于寄存器輔助功能從I/O引腳到寄存器的直接輸入通道 圖圖5.1 邏輯塊陣列邏輯塊陣列2宏單元宏單元 MAX7000系列中的宏單元由3個(gè)功能塊組成:邏輯陣列、乘積項(xiàng)選擇矩陣和可編程寄存器。各部分可以被獨(dú)自配置為時(shí)序邏輯和組合邏輯工作方式。其中邏輯陣列實(shí)現(xiàn)組合邏輯,可以為每個(gè)宏單元提供5個(gè)乘積項(xiàng)。乘積項(xiàng)選擇矩陣分配這些乘積項(xiàng)作為到“或門”和“異或門”

6、的主要邏輯輸入,以實(shí)現(xiàn)組合邏輯函數(shù),或者把這些乘積項(xiàng)作為宏單元中寄存器的輔助輸入:如清零、置位、時(shí)鐘和時(shí)鐘使能控制。 每個(gè)宏單元中的觸發(fā)器可以單獨(dú)地編程為具有可編程時(shí)鐘控制的D、T、JK或RS觸發(fā)器的工作方式。觸發(fā)器的時(shí)鐘、清零輸入可以通過編程選擇使用專用的全局清零和全局時(shí)鐘,或使用內(nèi)部邏輯(乘積項(xiàng)邏輯陣列)產(chǎn)生的時(shí)鐘和清零。觸發(fā)器也支持異步清零和異步置位功能,乘積項(xiàng)選擇矩陣分配乘積項(xiàng)來控制這些操作。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號(hào)直接輸給PIA或輸出到I/O引腳,以實(shí)現(xiàn)組合邏輯工作方式。 3擴(kuò)展乘積項(xiàng)擴(kuò)展乘積項(xiàng) 每個(gè)宏單元的一個(gè)乘積項(xiàng)可以反相回送到邏輯陣列。這個(gè)“可共享”的乘積項(xiàng)

7、能夠連到同一個(gè)LAB中的任何其它乘積項(xiàng)上。盡管大多數(shù)邏輯函數(shù)能夠用每個(gè)宏單元中的5個(gè)乘積項(xiàng)實(shí)現(xiàn),但在某些復(fù)雜的邏輯函數(shù)中需要附加乘積項(xiàng)。為提供所需的邏輯資源,可以利用另一個(gè)宏單元,MAX70000結(jié)構(gòu)也允許利用共享和并聯(lián)擴(kuò)展乘積項(xiàng),這兩種擴(kuò)展項(xiàng)可作為附加的乘積項(xiàng)直接送到本LAB的任意宏單元中。利用擴(kuò)展項(xiàng)可保證在實(shí)現(xiàn)邏輯綜合時(shí),用盡可能少的邏輯資源實(shí)現(xiàn)盡可能快的工作速度。1)共享擴(kuò)展項(xiàng)每個(gè)LAB有多達(dá)16個(gè)共享擴(kuò)展項(xiàng)。共享擴(kuò)展項(xiàng)就是由每個(gè)宏單元提供一個(gè)未投入使用的乘積項(xiàng),并將它們反相后反饋到邏輯陣列,便于集中使用。每個(gè)共享擴(kuò)展項(xiàng)可被LAB內(nèi)任何(或全部)宏單元使用和共享,以實(shí)現(xiàn)復(fù)雜的邏輯函數(shù)。圖

8、給出了共享擴(kuò)展項(xiàng)是如何饋送到多個(gè)宏單元的。圖圖5.2 MAX7000系列的宏單元結(jié)構(gòu)系列的宏單元結(jié)構(gòu)圖圖5.3 共享擴(kuò)展乘積項(xiàng)結(jié)構(gòu)共享擴(kuò)展乘積項(xiàng)結(jié)構(gòu)2)并聯(lián)擴(kuò)展項(xiàng) 并聯(lián)擴(kuò)展項(xiàng)是一些宏觀單元中沒有使用的乘積項(xiàng),并且這些乘積項(xiàng)可分配到鄰近的宏單元去實(shí)現(xiàn)快速?gòu)?fù)雜的邏輯函數(shù)。并聯(lián)擴(kuò)展項(xiàng)允許多達(dá)20個(gè)乘積項(xiàng)直接饋送到宏單元的“或”邏輯,其中5個(gè)乘積項(xiàng)是由宏單元本身提供的,15個(gè)并聯(lián)擴(kuò)展項(xiàng)是由LAB中鄰近宏單元提供的。 每個(gè)LAB有兩組宏單元,每組含有8個(gè)宏單元(例如,一組為18,另一組為916)。在LAB中形成2個(gè)出借或借用并聯(lián)擴(kuò)展項(xiàng)的鏈。一個(gè)宏單元可以從較小編號(hào)的宏單元中借用并聯(lián)擴(kuò)展項(xiàng)。例如,宏單元8

9、能夠從宏單元7,或從宏單元7和6,或從宏單元7、6和5中借用并聯(lián)擴(kuò)展項(xiàng)。在有8個(gè)宏單元的每個(gè)組中,最小編號(hào)的宏單元僅能出借并聯(lián)擴(kuò)展項(xiàng);而最大編號(hào)的宏單元僅能借用并聯(lián)擴(kuò)展項(xiàng)。如圖給出了并聯(lián)擴(kuò)展項(xiàng)是如何從鄰近的宏單元中借用的。宏單元中不用的乘積項(xiàng)可分配給鄰近的宏單元。 圖圖5.4 并聯(lián)擴(kuò)展項(xiàng)饋送方式并聯(lián)擴(kuò)展項(xiàng)饋送方式4可編程連線陣列可編程連線陣列PIA 通過可編程連線陣列可將各LAB相互連接構(gòu)成所需的邏輯。這個(gè)全局總線是可編程的通道,它能把器件中任何信號(hào)源連到其目的地。所有MAX7000系列器件的專用輸入、I/O引腳和宏單元輸出均饋送到PIA,PIA可把這些信號(hào)送到整個(gè)器件內(nèi)的各個(gè)地方。只有每個(gè)L

10、AB所需的信號(hào)才真正給它布置從PIA到該LAB的連線,如圖是PIA信號(hào)布線到LAB的方式。 圖圖5.5 PIA信號(hào)布線到信號(hào)布線到LAB的方式的方式5I/O控制塊控制塊 I/O控制塊允許每個(gè)I/O引腳單獨(dú)地配置成輸入/輸出和雙向工作方式。所有I/O引腳都有一個(gè)三態(tài)緩沖器,它能由全局輸出使能信號(hào)中的一個(gè)控制,或者把使能端直接連接到地(GND)或電源(VCC)上。MAX7000系列器件的I/O控制框圖如圖所示。MAX7000器件有6個(gè)全局輸出使能信號(hào),它們可以由以下信號(hào)驅(qū)動(dòng):兩個(gè)輸出使能信號(hào)、一個(gè)I/O引腳的集合、一個(gè)I/O宏單元的集合,或者是它“反相”后的信號(hào)。 當(dāng)三態(tài)緩沖器的控制端接地(GND

11、)時(shí),其輸出為高阻態(tài),而且I/O引腳可作為專用輸入引腳。當(dāng)三態(tài)緩沖器的控制端接電源(VCC)時(shí),輸出使能有效。 MAX7000結(jié)構(gòu)提供了雙I/O反饋,且宏單元和引腳的反饋是相互獨(dú)立的。當(dāng)I/O引腳配置成輸入時(shí),有關(guān)的宏單元可以用于隱含邏輯。 圖圖5.6 I/O控制塊控制塊5.1.2 XC9500系列芯片內(nèi)部構(gòu)成 如圖所示XC9500系列芯片的外觀圖。它的設(shè)計(jì)應(yīng)用等可等效成如圖所示的電路。在圖中用二片小規(guī)模集成電路,分別是7404和7400,通過外部走線完成邏輯組合。 同樣的邏輯組合可用CPLD內(nèi)部邏輯塊和內(nèi)部連線實(shí)現(xiàn)同樣邏輯功能。圖圖5.7 Xilinx 公司的公司的CPLD外觀圖外觀圖 (X

12、C9572)圖圖5.8 小規(guī)模小規(guī)模IC和和CPLD實(shí)現(xiàn)同樣邏輯組合實(shí)現(xiàn)同樣邏輯組合 XC9500系列包括多種,如XC9536,XC9572和XC95288等。它們內(nèi)部有Flash存儲(chǔ)器用于存儲(chǔ)數(shù)據(jù),對(duì)Flash存儲(chǔ)器可反復(fù)改寫,改寫次數(shù)可達(dá)萬次左右。由于CPLD的改寫數(shù)據(jù)端口是專用的,所以即使在實(shí)際回路中也可對(duì)它進(jìn)行改寫。XC9500系列它們的區(qū)別見表。 對(duì)于XC9500系列的選用可根據(jù)所需設(shè)計(jì)的邏輯電路規(guī)模來選用。根據(jù)經(jīng)驗(yàn),可以根據(jù)傳統(tǒng)設(shè)計(jì)中使用4000系列或74系列IC數(shù)的多少,來決定選用的XC種類。具體如下: 4000,74系列 510 個(gè) XC9536 簡(jiǎn)單邏輯組合 4000,74系

13、列 1525 個(gè) XC9572 較復(fù)雜邏輯組合 4000,74系列 3050 個(gè) XC95108 復(fù)雜邏輯組 表表5.2 Xilinx XC9500系列系列XC9500系列XC9536XC9572XC95108XC95144XC95216XC95288微單元數(shù)3672108144216288可使用門數(shù)80016002400320048006400延遲速度 (ns)5.07.57.57.510.010.0最大動(dòng)作 (MHz)10083.383.383.366.766.7寄存器 數(shù)3672108144216288封裝形式(輸入輸出引腳數(shù))PC44(34)PC44(34)VQ44(34)CS48(3

14、4)PC84(69)PC84(69)TQ100(72)TQ100(81)TQ100(81)PQ100(72)PQ100(81)PQ100(81)PQ160(108)PQ160(133)PQ160(133)HQ208(166)HQ208(168)BG352(166)BG352(192) 在使用XC9500前也許會(huì)問,其內(nèi)部結(jié)構(gòu)是什么?它的控制程序又是如何寫入、如何控制的?首先見圖所示XC9500的內(nèi)部功能框圖,根據(jù)此框圖可看到CPLD由輸入輸出塊、JTAG控制塊、內(nèi)部系統(tǒng)程序控制塊、高速接續(xù)交換陣列、功能塊等部分組成。圖圖5.9 CPLD XC9500內(nèi)部功能框圖內(nèi)部功能框圖 輸入輸出塊是處于外

15、部端口,緩沖器與內(nèi)部高速接續(xù)交換陣列中間的功能塊。它根據(jù)控制程序?qū)ν獠慷丝谂c內(nèi)部功能塊接續(xù),遵守程序的控制由高速接續(xù)陣列對(duì)各功能塊進(jìn)行接續(xù),完成所需邏輯功能。功能塊是真正的邏輯電路,XC9500內(nèi)部有4個(gè)功能塊,每塊中又有18個(gè)微邏輯單元。所需邏輯電路均由這些微邏輯單元在控制程序控制下接續(xù)完成。 下面分別介紹各功能塊的功能及內(nèi)部框圖。1輸入輸出塊 ( I/O Blocks ) 輸入輸出塊由輸入緩沖器、輸出緩沖器、輸出選擇器 (OE MUX) 和接地控制單元等構(gòu)成。如圖所示輸入輸出塊由微邏輯單元輸出信號(hào)和全局三態(tài)控制門GTS (Global Three State Control) 端口信號(hào)對(duì)輸

16、出選擇器OE MUX進(jìn)行控制使其處于輸出可能或停止?fàn)顟B(tài)。其狀態(tài)可保持1或0。 XC95216和XC95288具有4個(gè)GTS端口,其它XC95系列芯片具有2個(gè)GTS端口。上升沿有效還是下降沿有效由Throulet控制,其常用于抑制噪聲。在輸入輸出端口需要接地時(shí)由接地控制單元控制完成。通??捎媒拥乜刂苼頊p輕噪聲,但在噪聲要求高的電路中,僅靠接地控制是不夠的。實(shí)際電路中還在輸入輸出端口使用上拉電阻提升電位。在寫入CPLD控制程序時(shí),輸入輸出端口強(qiáng)制置1使其狀態(tài)對(duì)程序?qū)懭氩划a(chǎn)生不良影響。另外,各輸入輸出端口流入流出電流最大24 mA。2高速接續(xù)交換陣 (Fast Connect Switch Matr

17、ix) 高速接續(xù)交換陣功能就是對(duì)功能塊的輸入信號(hào)實(shí)施控制。該接續(xù)陣連接所有的I/O端口信號(hào)和功能塊的輸出信號(hào),由控制程序指定輸入功能塊的信號(hào),功能塊的輸出信號(hào)也可由AND邏輯緩沖器接入功能塊的輸入端。該設(shè)計(jì)使得功能塊的輸入信號(hào)選擇更靈活。另外是否使用緩沖器可由開發(fā)軟件自動(dòng)選擇,據(jù)圖見圖所示。圖圖5.11 高速接續(xù)交換陣高速接續(xù)交換陣3功能塊 (Function Block) 功能塊由可編程與(AND)門陣列 (Programmable AND array),積項(xiàng)分配器 (Product Term Allocator) 和微單元 (Macro Cell) 三大部分構(gòu)成。如圖5.12所示輸入功能塊

18、的36個(gè)輸入由可編程與門陣列進(jìn)行真?zhèn)畏蛛x變成72種輸入。積項(xiàng)分配器對(duì)此72種輸入進(jìn)行各種組合形成必要的論理信號(hào)輸入到微單元。圖圖5.12 邏輯功能塊邏輯功能塊 微單元的內(nèi)部框圖如圖所示。微單元由一個(gè)獨(dú)立的D/T type flip-flop觸發(fā)器構(gòu)成。該D/T觸發(fā)器的設(shè)置,復(fù)位(Reset)條件以及時(shí)鐘條件等信號(hào)均由積項(xiàng)分配器提供。在不需要使用D/T觸發(fā)器時(shí),邏輯信號(hào)可直接接入輸出端口。 一個(gè)功能塊內(nèi)包含有獨(dú)立的18個(gè)微單元,所以有18個(gè)輸出。18輸出接續(xù)到輸入輸出端口和高速接續(xù)陣。 接入功能塊的信號(hào)還有設(shè)置/復(fù)位信號(hào)及時(shí)鐘信號(hào) (GCKGlobal Clocks)。另外在積項(xiàng)分配器還輸出控制

19、信號(hào) (PTOEProduct Term Output Enable) 輸出至輸入輸出塊。 功能塊數(shù)因不同型號(hào)芯片具有不同的數(shù)量。XC9536具有2個(gè)功能塊,XC9572有4個(gè)功能塊,XC95108有6個(gè)功能塊。通過控制不同端口,就可使用不同的功能塊,且功能塊也并非全部使用,可使用其中的一部分。具體請(qǐng)參照具體CPLD芯片的端口配置情況。圖圖5.13微單元微單元 (Macro Cell)4在系統(tǒng)編程控制 (In System Programming) 如圖5.14所示為在系統(tǒng)編程控制單元。XC9500系列的CPLD滿足IEEE1149.1規(guī)定。根據(jù)其中JTAG (Joint Test Actio

20、n Group)協(xié)議,對(duì)CPLD進(jìn)行控制編程。由于CPLD的JTAG所用的端口為獨(dú)立端口,在實(shí)際完成的電路板上也可重編CPLD程序。在重編CPLD程序時(shí),所有輸入輸出端口均置H高電平。供JTAG使用的信號(hào)線有如下4條:TMS (Test Mode Select):使CPLD設(shè)置為輸入編程模式使用。TCK (Test Clock):提供使CPLD動(dòng)作的測(cè)試時(shí)鐘時(shí)使用。TDI (Test Data In):編程寫入命令或數(shù)據(jù)時(shí)使用。TDO (Read Data):對(duì)CPLD調(diào)式Debug時(shí)讀出數(shù)據(jù)時(shí)使用。圖系統(tǒng)內(nèi)編程控制圖系統(tǒng)內(nèi)編程控制5.1.3 CPLD器件的選擇方法 由于CPLD器件廠商眾多,

21、CPLD器件的選擇同其它通用邏輯器件不同,除考慮器件本身的性能外,配套軟件的支持也是器件選擇的重要依據(jù)。目前市場(chǎng)上已有的CPLD/FPGA器件生產(chǎn)廠家有20多個(gè),而設(shè)計(jì)軟件除生產(chǎn)廠家自行研制的軟件外還有幾十多種獨(dú)立軟件。加上高性能器件的價(jià)格已經(jīng)不菲,更不用說設(shè)計(jì)軟件的價(jià)格,所以如何選用合適的CPLD器件,不只是一件一次性的工作,還涉及到設(shè)計(jì)軟件的選用以及今后進(jìn)一步工作的開展。 首先,用戶應(yīng)該根據(jù)自身的技術(shù)環(huán)境、技術(shù)條件、使用習(xí)慣等選擇一種合適的軟件工具,同時(shí)要兼顧EDA技術(shù)的發(fā)展。與占據(jù)優(yōu)勢(shì)的軟件供應(yīng)商同時(shí)也與多數(shù)芯片制造商建立了良好的合作伙伴關(guān)系,所以,擁有一種設(shè)計(jì)軟件,再進(jìn)一步選擇不同的工

22、具庫(kù),或增加部分配置,即可對(duì)不同廠家的不同種類的FPGA產(chǎn)品進(jìn)行設(shè)計(jì)。 其次,用戶可根據(jù)設(shè)計(jì)的需要確定選擇哪一類可編程器件。如果用于航天、軍事領(lǐng)域等性能要求高的領(lǐng)域,反熔絲技術(shù)的一次編程型可編程芯片是首選;如果要完成多種算術(shù)運(yùn)算,或是要求在較高速度下,CPLD /FPGA是較好的選擇;而對(duì)于功能復(fù)雜的時(shí)序邏輯電路而言,標(biāo)準(zhǔn)門陣列單元型的FPGA具有集成度高、保持靈活和功耗低的優(yōu)點(diǎn)。 當(dāng)然,這只是通用準(zhǔn)則,關(guān)鍵是所選擇的器件能滿足設(shè)計(jì)要求的所有功能,在此基礎(chǔ)上,再利用上述準(zhǔn)則確定具體的一種器件。 最后,選定某一廠家的產(chǎn)品,生產(chǎn)同類器件的廠家很多,一般依據(jù)以下準(zhǔn)則進(jìn)行選擇。選擇有設(shè)計(jì)軟件支持的廠家

23、的芯片,這樣可減少資本投入,降低成本。選擇產(chǎn)品設(shè)計(jì)性能改進(jìn)有余量的。如果所選擇的芯片是某一廠家產(chǎn)品中容量最大,或是速度最高的,那么,一但設(shè)計(jì)需要改進(jìn),則有可能在該廠家的芯片中再選不出合適的來了。設(shè)計(jì)應(yīng)用的延續(xù)性和可擴(kuò)展性。如果所選廠家的產(chǎn)品具有很大的局限性,則有可能僅僅適用于很少一部分設(shè)計(jì),從而造成設(shè)計(jì)軟件投入上的浪費(fèi)。選擇性能價(jià)格比最優(yōu)的。盡管象Xilinx、Altera這樣的器件生產(chǎn)廠家都在通過降價(jià)來作市場(chǎng)宣傳,大多數(shù)芯片的價(jià)格還是比較高的,所有在滿足上述準(zhǔn)則的情況下適當(dāng)考慮價(jià)格也是有必要的。CPLD以及FPGA等相關(guān)可編程器件的發(fā)展非常快,上面的選擇依據(jù)是從市場(chǎng)的角度出發(fā)對(duì)市場(chǎng)份額較大、

24、行業(yè)內(nèi)目前處于領(lǐng)先地位的部分廠家進(jìn)行的,具有一定的代表性,但不是十分全面。只有不斷跟蹤這一領(lǐng)域的技術(shù)發(fā)展和市場(chǎng)動(dòng)態(tài)才能對(duì)可編程芯片有更加全面、不斷更新的認(rèn)識(shí),在應(yīng)用系統(tǒng)的設(shè)計(jì)中更好地利用CPLD,以提高產(chǎn)品的設(shè)計(jì)水平。5.2 CPLD的發(fā)展及設(shè)計(jì)必要軟件 人們很早就曾設(shè)想設(shè)計(jì)一種邏輯可編程的器件,不過由于受當(dāng)時(shí)集成電路工藝技術(shù)的限制,一直未能如愿。直到20世紀(jì)70年代,集成電路技術(shù)有了飛速的發(fā)展,可編程邏輯器件才得以實(shí)現(xiàn)??删幊踢壿嬈骷LD是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,是一種半定制的集成電路。 可編程邏輯器件大致的發(fā)展演變過程如圖所示。圖圖5.15 可編程邏輯器件發(fā)展歷史可編程邏輯器件發(fā)展

25、歷史 PROM(Programmable Read Only Memory)可編程只讀存儲(chǔ)器 PLA(Programmable Logic Array)可編程邏輯陣列 PAL(Pragrammable Array Logic)可編程陣列邏輯 GAL(Generic Array Logic)通用陣列邏輯器件 EPLD(Erasable PLD)可擦除編程邏輯器件 FPGA(Field Programmable Gate Array)現(xiàn)場(chǎng)可編程門陣列 CPLD(Complex Programmable Logic Device)復(fù)雜的可編程邏輯器件 SOPC(System On Programma

26、ble Chip) 可編程邏輯器件的種類很多,幾乎每個(gè)大的可編程邏輯器件供應(yīng)商都能提供具有自身結(jié)構(gòu)特點(diǎn)的PLD器件。由于歷史原因,無法統(tǒng)一命名。而較常見的分類是按集成度來區(qū)分不同的PLD器件。 按集成度分類:如圖,簡(jiǎn)單PLD的可用邏輯門數(shù)大約在500門以下。復(fù)雜PLD的門數(shù)較高,不同的芯片門數(shù)不同。 按結(jié)構(gòu)分類:乘積項(xiàng)結(jié)構(gòu)器件和查找表結(jié)構(gòu)器件。 按編程工藝分:熔絲型器件、反熔絲型器件、EPROM型、EEPROM型和SRAM型。圖圖5.16 可編程器件分類可編程器件分類5.2.1 CPLD基礎(chǔ)及開發(fā)軟件 目前市場(chǎng)上CPLD的軟件種類繁多,軟件可以分為廠家集成開發(fā)軟件、編輯軟件,邏輯綜合軟件、仿真

27、軟件及其他測(cè)試工具軟件等。其中集成開發(fā)軟件一般是由廠家直接提供,集成了編輯、綜合、仿真、布線等功能。其他專門軟件屬于單項(xiàng)功能的專用軟件。 1集成開發(fā)軟件集成開發(fā)軟件 目前CPLD集成開發(fā)軟件主要有三家公司的軟件,分別是Altera公司、Xilinx公司、Lattice公司。 Altera公司提供的開發(fā)軟件是用戶最常用的。此類軟件是集成的CPLD開發(fā)環(huán)境。有多個(gè)版本,早期的Max+plusII,MaxplusII Baseline Altera,MaxplusII E+MAX等,基本都可以完成所有的設(shè)計(jì)輸入(原理圖或HDL),仿真,綜合,布線,下載等工作。而且是免費(fèi)PLD開發(fā)軟件,目前Alter

28、a公司轉(zhuǎn)向QuartusII軟件平臺(tái),QuartusII屬于新一代PLD開發(fā)軟件,適合大規(guī)模FPGA的開發(fā)。 Xilinx公司提供的CPLD軟件也有多個(gè)版本,早期Foundation軟件目前已基本不使用,軟件是目前Xilinx公司的主流版本軟件。Xilinx公司也提供免費(fèi)的開發(fā)軟件,分別是WebPACK ISE 和WebFITTER。 Lattice公司提供的開發(fā)軟件是ispDesignEXPERT的PLD,目前最新軟件改名為ispLEVER。ispLEVER Starter是Lattice公司的免費(fèi)PLD開發(fā)軟件,支持600個(gè)宏單元以下的Lattice芯片的設(shè)計(jì)。 為了提高設(shè)計(jì)效率,優(yōu)化設(shè)計(jì)

29、結(jié)果,很多廠家提供了各種專業(yè)軟件,用以配合PLD/FPGA芯片廠家提供工具進(jìn)行更高效率的設(shè)計(jì),最常見的組合同時(shí)使用專業(yè)HDL邏輯綜合軟件和PLD/FPGA芯片廠家提供的軟件。2HDL前端輸入與系統(tǒng)管理軟件 這類軟件主要是幫助用戶完成HDL文本的編輯和輸入工作,提高輸入效率,并不是必須的,更多人更習(xí)慣使用集成開發(fā)軟件或者綜合/仿真工具中自帶的文本編輯器,甚至可以直接使用普通文本編輯器。UltraEdit是其中使用最為廣泛的編輯器。3HDL邏輯綜合軟件 這類軟件將把HDL語言翻譯成最基本的與或非門的連接關(guān)系(網(wǎng)表),輸出edf文件,導(dǎo)給PLD/FPGA廠家的軟件進(jìn)行試配和布線。為了優(yōu)化結(jié)果,在進(jìn)行

30、復(fù)雜HDL設(shè)計(jì)時(shí),基本上都會(huì)使用這些專業(yè)的邏輯綜合軟件,而不使用PLD/FPGA廠家的集成開發(fā)軟件中自帶的邏輯綜合功能。如Synplicity公司出品提供的Synplify / Synplify Pro軟件,使用相當(dāng)不錯(cuò)。4HDL仿真軟件 此類軟件主要對(duì)設(shè)計(jì)進(jìn)行校驗(yàn)仿真,包括布線以前的功能仿真(前仿真)和布線以后包含延時(shí)的時(shí)序仿真(后仿真),對(duì)于一些復(fù)雜的HDL設(shè)計(jì)可能需要這些軟件專業(yè)的仿真功能。 如Model Tech公司提供的VHDL/VerilogHDL仿真軟件,功能強(qiáng)大。5.2.2 MAX+plus 軟件使用 Altera公司的MAX+plus 是一個(gè)高度集成的可編程邏輯器件開發(fā)系統(tǒng),

31、是目前較為流行的EDA軟件之一。利用MAX+plus 來分析設(shè)計(jì)組合邏輯電路及時(shí)序邏輯電路,從而實(shí)現(xiàn)數(shù)字系統(tǒng)的設(shè)計(jì)。1MAX+plus 的安裝 Altera公司的網(wǎng)址為:??上螺dMAX+plus 的最新學(xué)生版及注冊(cè)文件。文件名為,運(yùn)行安裝包,正確安裝后啟動(dòng)MAX+plus ,參考界面如圖。 第一次使用MAX+plus 時(shí)需要注冊(cè)。方法如下:選擇option菜單的license setup子菜單,將彈出license setup對(duì)話框,單擊“Browser”按鈕,選擇你下載的注冊(cè)文件(文件名為)并單擊“OK”按鈕確認(rèn)。選擇“OK”按鈕返回主界面。 圖圖5.17 MAX+plus II 啟動(dòng)界面啟

32、動(dòng)界面2MAX+plus 仿真的實(shí)現(xiàn) MAX+plus 環(huán)境中實(shí)現(xiàn)仿真應(yīng)經(jīng)過如下幾個(gè)步驟: 建立仿真項(xiàng)目的工程文件 建立仿真項(xiàng)目的工程文件是實(shí)現(xiàn)對(duì)數(shù)字系統(tǒng)仿真分析與設(shè)計(jì)的前提??赏ㄟ^建立仿真設(shè)計(jì)與分析的圖形文件(*.GDF)并將仿真項(xiàng)目的工程文件指向該圖形文件來完成. 方法如下: 啟動(dòng)MAX+plus (如果首次啟動(dòng),應(yīng)注冊(cè)),選擇File菜單的new子菜單,在彈出的對(duì)話框中選擇文件類型為Graphic Editor file,單擊OK進(jìn)入圖形文件編輯狀態(tài)。 選擇File菜單的Save As子菜單,將新創(chuàng)建的未命名的圖形文件取個(gè)名字(因MAX+plus 仿真時(shí)要產(chǎn)生文件,最好為仿真項(xiàng)目新建一個(gè)

33、子目錄),單擊OK保存。 選擇File菜單Project子菜單下的Set Project To Current File將工程文件指向當(dāng)前圖形文件。設(shè)計(jì)圖形文件 1)在編輯區(qū)任意位置雙擊,將彈出電路符號(hào)放置對(duì)話框如圖。圖中的中間文本框?yàn)镸AX+plus 提供的元件庫(kù)。各庫(kù)簡(jiǎn)要說明如下: prim庫(kù):基本庫(kù),包括基本的邏輯單元電路及電路符號(hào)。如門電路、觸發(fā)器等。如and2表示2輸入與門,nand2表示2輸入與非門,or2表示2輸入或門,not表示反相器。dff、jkff、srff分別表示D觸發(fā)器、JK觸發(fā)器和RS觸發(fā)器。 mf庫(kù):宏單元庫(kù),主要提供常用中、小規(guī)模器件所對(duì)應(yīng)的宏模塊。 Mega-l

34、pm庫(kù):參數(shù)化的模塊庫(kù),主要提供了門單元、算術(shù)運(yùn)算單元、存儲(chǔ)器單元等模塊。 一般主要使用prim庫(kù)和mf庫(kù)。 圖圖5.18 電路符號(hào)放置對(duì)話框電路符號(hào)放置對(duì)話框2)聯(lián)接電路 可參考技術(shù)手冊(cè)進(jìn)一步熟悉電路聯(lián)接的技巧,在此僅對(duì)繪圖各工具的含義予以簡(jiǎn)要說明編譯圖形文件 全部連線完成后保存文件,選擇MAX+plus 菜單的Compile子菜單,將出現(xiàn)圖示的界面單擊START按鈕,如果沒有錯(cuò)誤,系統(tǒng)將彈出編譯成功消息框。創(chuàng)建波形文件 要實(shí)現(xiàn)對(duì)設(shè)計(jì)的圖形文件的邏輯功能仿真,尚需定義對(duì)應(yīng)的波形文件,具體方法如下: 1)選擇File菜單的new子菜單,在彈出的對(duì)話框中選擇文件類型為Waveform Edito

35、r file,單擊OK進(jìn)入波形文件編輯狀態(tài)。 2)選擇File菜單的Save As子菜單,將新創(chuàng)建的未命名的波形文件取個(gè)名字(必須與圖形文件同名),單擊OK保存。圖圖5.19 Compile 界面界面設(shè)計(jì)波形文件 波形文件是MAX+plus 仿真的必須文件,其主要作用是定義各輸入信號(hào)及要觀察的輸出信號(hào)。圖對(duì)波形編輯各工具做了詳細(xì)說明。 圖圖5.20 波形編輯各工具的含義波形編輯各工具的含義 仿真 保存文件,選擇MAX+plus 菜單的Simulator子菜單,將出現(xiàn)圖附錄示的界面。單擊START按鈕,如果沒有錯(cuò)誤,系統(tǒng)將彈出仿真成功消息框。確定消息框內(nèi)容后,單擊Open_SCF按鈕,可觀察仿真

36、波形。 圖圖 5.21 Simulator界面界面 開發(fā)工具軟件除了Altera廠家軟家以外Xilinx公司也提供了功能強(qiáng)大的開發(fā)軟件。將在第6章第3節(jié)將做詳細(xì)介紹。 Xilinx廠商開發(fā)工具 WebPACK ISE,其標(biāo)志如下。 Download下載地址.xilinx.co.jp/products/software/webpowered.htm5.3 CPLD編程器制作5.3.1 CPLD芯片編程器簡(jiǎn)述芯片編程器簡(jiǎn)述圖圖5.22 CPLD芯片編程器實(shí)物芯片編程器實(shí)物除了以上介紹的CPLD開發(fā)軟件外,對(duì)它的開發(fā)就必須還有CPLD編程器硬件 ( 稱 JTAG Programmer )。實(shí)物圖請(qǐng)見

37、圖所示。在第8章中將介紹它的工作原理和具體電路圖等。圖圖5.23 Xilinx公司的公司的CPLD編程寫入器聯(lián)接圖編程寫入器聯(lián)接圖Xilinx公司提供基于,JTAG協(xié)議 (JTAG Boundary Scan) 的CPLD編程寫入器。它由如圖中DSUB-25接口和下載電纜組成。被開發(fā)的CPLD必須在開發(fā)的基板上進(jìn)行編程?;迳暇捅仨毩粲蠮TAG使用的接口 (TMS,TCK,TDI和TDO信號(hào)線等)。這樣的好處是能實(shí)機(jī)調(diào)試。 Xilinx的實(shí)機(jī)編程器外,還可設(shè)計(jì)脫機(jī)CPLD編程寫入器,如圖所示。它能對(duì)CPLD進(jìn)行編程寫入,而不需要開發(fā)實(shí)物基板。在實(shí)物基板設(shè)計(jì)時(shí)就不需留有JTAG接口。這樣能節(jié)約基

38、板,減少產(chǎn)品體積。 在應(yīng)用Xilinx等芯片進(jìn)行編程時(shí),除可以應(yīng)用實(shí)機(jī)編程器外,也還可設(shè)計(jì)脫機(jī)CPLD編程寫入器,CPLD編程器硬件電路連圖接如圖所示。它能對(duì)CPLD進(jìn)行編程寫入,而不需要開發(fā)實(shí)物基板,在實(shí)物基板設(shè)計(jì)時(shí)就不需留有JTAG接口。這樣能節(jié)約基板,減少產(chǎn)品體積。5.3.2 并行接口 在設(shè)計(jì)CPLD編程器時(shí),它與計(jì)算機(jī)的接續(xù)可采用多種接口,如并行(Parallel)接口,Multilinx/Serial串行接口,以及Multilinx/USB接口等。 設(shè)計(jì)電路采用并行接口連接,該端口也是經(jīng)常用于連接本地打印機(jī)的接口。該端口是具有25 引腳的接口,它的各引腳端口的信號(hào)請(qǐng)見圖所示。 本設(shè)計(jì)所使用的引腳與信號(hào)對(duì)應(yīng)表,具體各引腳端口信號(hào)的說明見表所示。圖圖5.25 并行接口圖并行接口圖圖圖5.26 CPLD 編程寫入器總電原理圖編程寫入器總電原理圖表5.3 CPLD編程器設(shè)計(jì)引腳說明表引腳號(hào)引腳號(hào)通常名稱通常名稱本設(shè)計(jì)名稱本設(shè)計(jì)名稱說明說明2PD0(I/O)DIN(OUT)數(shù)據(jù)信號(hào)輸出(TDI)3PD1(I/O)CLK(OUT)時(shí)鐘信號(hào)輸出(TCK)4PD2(I/O)TMS_IN(OUT)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論