可編程邏輯器件基礎(chǔ)
1、數(shù)字邏輯設(shè)計(jì)歷史-------了解歷史進(jìn)展
開始時(shí):有復(fù)雜的邏輯關(guān)系,是我們初學(xué)者剛剛接觸的數(shù)電方面的基礎(chǔ)應(yīng)用,設(shè)計(jì)一個(gè)基礎(chǔ)的TTL邏輯,根據(jù)真值表-----卡諾圖-----簡(jiǎn)歷函數(shù)式邏輯表達(dá)式,舉個(gè)例子:X=AB+CD+BD+BC+AD+AC,需要很多的基礎(chǔ)邏輯單元,但是如果利用異或關(guān)系,可轉(zhuǎn)換成:
利用這樣的組合邏輯,這樣可以將數(shù)量眾多的基本邏輯單元簡(jiǎn)化,硬件相對(duì)變簡(jiǎn)單了。
如果邏輯功能和寄存器組合到一個(gè)部件,通過布線(布線相當(dāng)于一種控制)就可以得到一個(gè)簡(jiǎn)單的PAL---可編程陣列邏輯,一種簡(jiǎn)單的可編程控制單元,器件中的數(shù)量變少,占用更少的電路板,設(shè)計(jì)靈活,可防止逆向剖析,容易更新設(shè)計(jì)。
針對(duì)PAL的編程技術(shù)實(shí)質(zhì)(當(dāng)前閃存技術(shù)的關(guān)鍵):陣列交叉(跨線)上的浮柵型晶體管(含有第二個(gè)柵極,浮動(dòng)?xùn)艠O)在加上編程電壓后,不會(huì)導(dǎo)通。以下兩種晶體管不做任何設(shè)置,都可用作N型晶體管,柵極接地時(shí),源級(jí)和漏極導(dǎo)通。當(dāng)柵極設(shè)置電壓后,電子被限制在浮動(dòng)?xùn)艠O,縱使浮動(dòng)?xùn)艠O設(shè)置電壓值,晶體管依舊不導(dǎo)通,這樣總是關(guān)斷,相當(dāng)于一個(gè)開關(guān)。
2、可編程邏輯基本技術(shù)
了解器件本身:
從PAL到可編程邏輯器件PLD,在單個(gè)器件中排列多個(gè)PAL陣列,存在可變的可乘積項(xiàng)分配和全面可編程宏單元。
可變的可乘積項(xiàng)分配:簡(jiǎn)單的想法,改變或門、與門的數(shù)量,不會(huì)浪費(fèi)邏輯門,不需要復(fù)雜的延時(shí)網(wǎng)絡(luò)。
靈活的可編程宏單元(主要進(jìn)步):提供多種可編程選擇,實(shí)現(xiàn)乘積和輸出。
PLD進(jìn)一步發(fā)展形成復(fù)雜的PLD(CPLD)-----在一個(gè)器件中,采用可編程互聯(lián)和I/O,連接多個(gè)PLD:
CPLD的特性:
CPLD邏輯模塊通常被稱為邏輯陣列模塊(LAB),每個(gè)LAB相當(dāng)于一個(gè)PLD,含有4-20個(gè)宏單元,該宏單元還存在擴(kuò)展項(xiàng),提供可操控的乘積項(xiàng)分配和擴(kuò)展,代價(jià)是額外的延時(shí)。即,建立一次乘積項(xiàng)就可以使用,大大減少了邏輯浪費(fèi)。
LAB之間的互聯(lián)稱為可編程互聯(lián)陣列(PI或PIA),和PAL可編程陣列相同的編程技術(shù)(兩種晶體管,EPROM、EEPROM或者閃存技術(shù)編程),配置更高級(jí),實(shí)現(xiàn)靈活的可編程關(guān)鍵,全局布線連接器件中的任何信號(hào)和任何目的位置。
單獨(dú)的I/O控制模塊,由PI將I/O引腳與LAB分開,I/O都有專用邏輯提供控制以及更多的功能,三態(tài)緩沖控制實(shí)現(xiàn)任意引腳的輸入、輸出和雙向功能。
采用JTAG進(jìn)行在系統(tǒng)編程(ISP)
由于可編程邏輯越來越大、越來越復(fù)雜,必須放在特定的條件下編譯,器件放在特殊的單元,或者器件上加一些特殊裝置,不能在線編譯,故設(shè)計(jì)了一種和I/O分開的編程接口,幾乎所有的FPGA都使用JTAG接口,簡(jiǎn)單的4、5線串行接口,構(gòu)成單個(gè)器件長(zhǎng)1位寄存器或者多個(gè)器件的JTAG鏈,可用于器件自檢測(cè)或者系統(tǒng)編程(ISP),當(dāng)PLD硬件生成EPROM編程電壓,由JTAG接口進(jìn)行控制,簡(jiǎn)化了實(shí)驗(yàn)室自編程。
從CPLD到FPGA:理論上我們可以一直增加LAB,但是這樣大大增加了額外的全局布線,但是如果LAB本身重新排列一個(gè)陣列中呢?這就是FPGA的由來。
現(xiàn)場(chǎng)可編程門陣列(FPGA):LAB排列在大型陣列中,器件可以現(xiàn)場(chǎng)編程或重新編程,行列可編程互聯(lián),通過這中互聯(lián)方式(在行列之間設(shè)置互聯(lián)布線)可以跨越所有或者部分的陣列。
FPGA的LAB設(shè)計(jì)和CPLD不同,沒有乘積項(xiàng)和宏單元,F(xiàn)PGA-LAB由邏輯單元(LE)構(gòu)成,LE級(jí)聯(lián)更容易建立復(fù)雜的功能,LE實(shí)質(zhì)是一個(gè)4位查找表(LUT)、進(jìn)位邏輯、輸出寄存器邏輯構(gòu)成。
4位查找表 LUT替代了CPLD中的乘積項(xiàng)陣列,LUT是由一系列級(jí)聯(lián)復(fù)用的器件構(gòu)成,LUT輸入作為選擇線,復(fù)用輸入作為高或者低邏輯電平,之所以邏輯被稱作查找表,通過差找正確的編程級(jí),來選擇輸出,根據(jù)輸入的值通過復(fù)用輸入,將輸出送到正確的位置,編程級(jí)的選擇基于函數(shù)真值表,故可以靈活的建立一個(gè)組合函數(shù)(級(jí)聯(lián)復(fù)用器),減少邏輯資源浪費(fèi)。
LE同步部分來自可編程寄存器,該寄存器和CPLD宏單元相似,但配置靈活,配置為D\T\JK或者SR觸發(fā)器工作,一般由全局的時(shí)鐘來驅(qū)動(dòng)時(shí)鐘,任何時(shí)鐘可驅(qū)動(dòng)任何LE,可通過其他邏輯或者IO進(jìn)行寄存器的異步控制,器件還可以反饋回LUT,產(chǎn)生嚴(yán)格的組合邏輯功能,這種寄存器只使用存貯、同步功能,這種靈活的LE輸出級(jí)適合所有類型的邏輯操作。
LE和宏單元不同之處在于進(jìn)位邏輯和LAB寄存器鏈邏輯,LE之間存在進(jìn)位bit鏈,這種進(jìn)位可以輸出到別的LE,也可以輸出到互聯(lián)中,寄存器輸出可以鏈接至LAB中的其他LE寄存器,形成和LUT無關(guān)的移位寄存器(適合DSP峰作),增強(qiáng)資源管理。
更高級(jí)的FPGA使用自適應(yīng)邏輯模塊(ALM)代替LE,提高性能和資源利用率,使用自適應(yīng)的LUT(ALUT)可以任意劃分,智能資源管理。
FPGA布線
所有器件資源都可以和器件中的任何布線連接,分為本地互聯(lián)(LE之間互聯(lián)、相鄰LAB直接連接)、行列互聯(lián)(固定長(zhǎng)度布線、跨過多個(gè)LAB)。
FPGA IO單元
高級(jí)可編程模塊可直接連接至行或者列互聯(lián),具有多種優(yōu)良特性,同時(shí)存在特殊的邏輯。
其他典型FPGA特性
采用專用功能硬件模塊代替某些LAB,存儲(chǔ)器模塊、嵌入式乘法器、高速收發(fā)器。(多查一下手冊(cè),看是否滿足要求)
FPGA編程
大部分FPGA使用SRAM單元技術(shù)(基本是個(gè)鎖存器)對(duì)互聯(lián)和LUT功能進(jìn)行編程,必須在上電時(shí)進(jìn)行編程,數(shù)據(jù)易丟失。FPGA編程信息必須存儲(chǔ)在某一位置,以便在上電時(shí)對(duì)器件進(jìn)行編程。主動(dòng)編程方式:上電時(shí)FPGA自動(dòng)控制編程順序;被動(dòng)編程:智能主機(jī)(CPU)控制編程;JTAG編程:實(shí)驗(yàn)室PC端編程。
3、對(duì)比CPLD和FPGA
-
可編程邏輯
+關(guān)注
關(guān)注
7文章
514瀏覽量
44059 -
可編程邏輯器件
+關(guān)注
關(guān)注
5文章
139瀏覽量
30285
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論