- Verilog HDL與CPLD/FPGA項目開發(fā)教程(第3版)
- 聶章龍 周凌翱主編
- 2083字
- 2023-10-27 18:42:39
1.1.3 CPLD/FPGA的結(jié)構(gòu)與原理

微課1-2
CPLD FPGA的結(jié)構(gòu)與原理
1.基于乘積項(Product-Term)的PLD結(jié)構(gòu)
采用基于乘積項結(jié)構(gòu)的PLD芯片有:Altera公司的MAX7000、MAX3000系列(E2PROM工藝),Xilinx公司的XC9500系列(Flash工藝)和Lattice、Cypress公司的大部分產(chǎn)品(E2PROM工藝)。
基于乘積項的PLD總體內(nèi)部結(jié)構(gòu)如圖1-3所示(以MAX7000為例,其他型號的結(jié)構(gòu)與此非常相似)。

圖1-3 基于乘積項的PLD總體內(nèi)部結(jié)構(gòu)
這種PLD可分為3塊結(jié)構(gòu),即宏單元(Macrocell)、可編程連線(Programmable Interface Adapter,PIA)和I/O腳控制塊。宏單元是PLD的基本結(jié)構(gòu),由它來實現(xiàn)基本的邏輯功能。圖中只給出了4個宏單元的集合(因為宏單元較多,故沒有一一畫出)。可編程連線負(fù)責(zé)信號傳遞,連接所有的宏單元。I/O腳控制塊負(fù)責(zé)輸入/輸出的電氣特性控制,比如可以設(shè)定集電極開路輸出、擺率控制及三態(tài)輸出等。圖中左上的INPUT/GCLK1(全局時鐘信號),INPUT/GCLRn(清零信號),INPUT/OE1和INPUT/OE2(輸出使能信號)有專用連線與PLD中每個宏單元相連,信號到每個宏單元的延時相同并且延時最短。宏單元的具體結(jié)構(gòu)如圖1-4所示。

圖1-4 宏單元的具體結(jié)構(gòu)
左側(cè)是乘積項陣列,實際就是一個與或陣列,每一個交叉點都是一個可編程熔絲,如果導(dǎo)通,就實現(xiàn)“與”邏輯。后面的乘積項選擇矩陣是一個“或”陣列。兩者一起完成組合邏輯。右側(cè)是一個可編程D觸發(fā)器,它的時鐘信號、清零信號輸入都可以編程選擇,可以使用專用的全局清零和全局時鐘,也可以使用內(nèi)部邏輯(乘積項陣列)產(chǎn)生的時鐘和清零。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號就直接輸出給PIA或I/O腳。
下面以一個簡單的電路為例,具體說明PLD是如何利用以上結(jié)構(gòu)實現(xiàn)邏輯的,組合邏輯如圖1-5所示。

圖1-5 組合邏輯
【例1-1】假設(shè)組合邏輯的輸出(AND3的輸出)為f,則f=(A+B)*C*(!D)=A*C*!D+B*C*!D。請用PLD實現(xiàn)此功能。
解:PLD實現(xiàn)組合邏輯f的方式如圖1-6所示。

圖1-6 實現(xiàn)組合邏輯f
A、B、C、D由PLD芯片的引腳輸入后進入可編程連線陣列(PIA),在內(nèi)部會產(chǎn)生A、、B、
、C、
、D、
共8個輸出。圖中每一個叉表示相連(可編程熔絲導(dǎo)通),所以得到:f=f1+f2=A*C*!D+B*C*!D。這樣組合邏輯就實現(xiàn)了。在AND3的輸出電路中,D觸發(fā)器的實現(xiàn)比較簡單,直接利用宏單元中的可編程D觸發(fā)器即可。時鐘信號CLK由I/O腳輸入后進入芯片內(nèi)部的全局時鐘專用通道,直接連接到可編程觸發(fā)器的時鐘端。可編程觸發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片引腳。這樣,PLD就完成了以上電路的功能(這些步驟都是由軟件自動完成的,不需要人為干預(yù))。
圖1-6中的電路是一個很簡單的例子,只需要一個宏單元就可以完成。但對于一個復(fù)雜的電路,一個宏單元是不能實現(xiàn)的,這時就需要通過并聯(lián)擴展項和共享擴展項將多個宏單元相連,宏單元的輸出也可以連接到可編程連線陣列,再作為另一個宏單元的輸入。這樣,PLD就可以實現(xiàn)更復(fù)雜的邏輯功能。這種基于乘積項的PLD基本都是由E2PROM和Flash工藝制造的,一上電就可以工作,無須其他芯片配合。
2.查找表(Look-Up-Table,LUT)的原理與結(jié)構(gòu)
也可以將采用基于乘積項結(jié)構(gòu)的PLD芯片稱為FPGA,如Altera公司的ACEX、APEX系列,Xilinx公司的Spartan、Virtex系列等。
查找表本質(zhì)上就是一個RAM。目前FPGA中多使用4輸入的LUT,因此可以把每一個LUT看成一個有4位地址線的16×1的RAM。在用戶通過原理圖或HDL語言描述了一個邏輯電路后,PLD/FPGA會自動計算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入RAM,這樣,每輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找出地址對應(yīng)的內(nèi)容,然后輸出即可。表1-2為一個4輸入與門的例子。
表1-2 一個4輸入與門的例子

(1)基于查找表的FPGA結(jié)構(gòu)
Xilinx Spartan-Ⅱ的內(nèi)部結(jié)構(gòu)如圖1-7所示。

圖1-7 Xilinx Spartan-Ⅱ的內(nèi)部結(jié)構(gòu)
Spartan-Ⅱ主要包括CLBs、I/O塊、RAM塊和可編程連線(未表示出)。在Spartan-Ⅱ中,一個CLB包括兩個Slice(Slice是XilinX元器件的基本邏輯單元),每個Slice包括兩個LUT、兩個觸發(fā)器和相關(guān)邏輯。Slice可以看成是Spartan-Ⅱ?qū)崿F(xiàn)邏輯的最基本結(jié)構(gòu)。
Altera公司的FLEX/ACEX等芯片的結(jié)構(gòu)如圖1-8所示。Altera FLEX/ACEX芯片的內(nèi)部結(jié)構(gòu)如圖1-9所示。

圖1-8 FLEX/ACEX等芯片的結(jié)構(gòu)

圖1-9 Altera FLEX/ACEX芯片的內(nèi)部結(jié)構(gòu)
FLEX/ACEX主要包括LAB、I/O塊、RAM塊(未表示出)和可編程行/列連線。在FLEX/ACEX中,一個LAB包括8個邏輯單元(LE),每個LE包括一個LUT、一個觸發(fā)器和相關(guān)的邏輯關(guān)系。LE是FLEX/ACEX芯片實現(xiàn)邏輯的最基本結(jié)構(gòu)。
(2)查找表結(jié)構(gòu)的FPGA邏輯實現(xiàn)原理
此處還是以圖1-5這個電路為例來解釋查找表結(jié)構(gòu)的FPGA邏輯實現(xiàn)原理。
圖1-5中,A、B、C、D由FPGA芯片的引腳輸入后進入可編程連線,然后作為地址線連到LUT,LUT中已經(jīng)事先寫入了所有可能的邏輯結(jié)果,通過地址查找到相應(yīng)的數(shù)據(jù)然后輸出,這樣組合邏輯就實現(xiàn)了。該電路中D觸發(fā)器功能是直接利用LUT后面的D觸發(fā)器來實現(xiàn)的。時鐘信號CLK由I/O腳輸入后進入芯片內(nèi)部的時鐘專用通道,直接連接到觸發(fā)器的時鐘端。觸發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片引腳。這樣,PLD就完成了圖中的電路功能。
這個電路是一個很簡單的例子,只需要一個LUT加上一個觸發(fā)器就可以完成。對于一個LUT無法完成的電路,在通過進位邏輯將多個單元相連后,F(xiàn)PGA就可以實現(xiàn)復(fù)雜的邏輯功能。
LUT主要適合SRAM工藝生產(chǎn),目前大部分FPGA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會丟失,因此,一定需要外加一片專用配置芯片。在上電的時候,由這個專用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作了。由于配置時間很短,不會影響系統(tǒng)正常工作。也有少數(shù)FPGA采用反熔絲或Flash工藝,對這種FPGA來講,就不需要外加專用的配置芯片。
- 移動購物行為及其執(zhí)行意向機制研究
- 薄松年《中國美術(shù)史教程》筆記和課后習(xí)題詳解
- 高等學(xué)校化學(xué)實驗室安全基礎(chǔ)
- 教師身體健康手冊(教師職業(yè)發(fā)展與健康指導(dǎo))
- 陳剛《網(wǎng)絡(luò)廣告》筆記和課后習(xí)題詳解
- 大學(xué)生創(chuàng)業(yè)基礎(chǔ)教程
- Excel在會計和財務(wù)管理中的應(yīng)用(第4版)
- 2020年河北省選聘大學(xué)生村官考試《行政職業(yè)能力測驗》題庫【真題精選+章節(jié)題庫+模擬試題】
- 食品生物技術(shù)
- 旅游生態(tài)與環(huán)境管理
- 通信用戶線路終端安裝與維護
- 張征《新聞采訪教程》筆記和典型題詳解
- 數(shù)字邏輯電路基礎(chǔ)
- 大學(xué)生職業(yè)規(guī)劃與就業(yè)創(chuàng)業(yè)“5G”體驗式教程
- Android移動應(yīng)用開發(fā)教程(微課版)