- EDA技術與實踐教程
- 宋烈武編著
- 4677字
- 2020-05-07 12:46:30
2.2 大規模可編程邏輯器件
2.2.1 FPGA的結構與工作原理
美國的Xilinx公司于1984年成立,次年推出了世界上第一塊FPGA芯片——XC2064,從最初的1200個可用門,發展到目前幾百萬門的單片FPGA芯片。FPGA是基于查找表(Look-Up Table,LUT)結構技術、SRAM生產工藝的PLD。基于SRAM工藝的,在掉電后信息就會丟失,一定需要外加一片專用配置芯片,在上電的時候,由這個專用配置芯片把數據加載到FPGA中,然后FPGA就可以正常工作。由于配置時間很短,不會影響系統正常工作。
(1)FPGA的邏輯實現原理
FPGA是基于LUT結構技術的原理來實現邏輯的,其本質是一個RAM。目前FPGA中多使用4輸入的LUT,所以每一個LUT可以看成一個有4位地址線的16×1的RAM。當用戶描述了一個邏輯電路后,開發軟件會自動計算其所有可能的結果,并先行寫入RAM,這樣,每輸入一個信號進行邏輯運算,就等于輸入一個地址進行查表,找出地址對應的內容,然后輸出即可。
表2-2是一個4輸入與門的例子,A、B、C、D由FPGA芯片的引腳輸入后進入可編程連線,然后作為地址線連到LUT,LUT中已經事先寫入了所有可能的邏輯結果,通過地址查找到相應的數據后輸出,這樣就實現了組合邏輯,PLD完成了電路的功能。
表2-2 4輸入與門

對于一個LUT無法完成的電路,需要通過進位邏輯將多個單元相連。
(2)特點
基于LUT技術和SRAM工藝的FPGA器件,下載數據將存入SRAM,而SRAM掉電后所存數據將丟失,有如下5個特點。
①掉電易失性。掉電后信息就會丟失。在FPGA調試期間,由于編程數據改動頻繁,沒有必要每次改動都將編程數據下載到E2PROM,此時可用下載電纜將編程數據直接下載到FPGA內部查看運行結果,這個過程稱為在線重配置(In Circuit Reconfigurable,ICR)。調試完成后,需要將數據固化在一個專用芯片中(稱為配置芯片,詳見2.2.6節),上電時,先由配置芯片對FPGA加載數據,十幾毫秒到幾百毫秒后FPGA即可正常工作。
②無限次、快速、動態配置。
③相對容量大,單位LE(邏輯單元)性價比高。
④一般不可以直接加密。
⑤使用方法相對復雜。
(讀者可以聯想計算機的內存以幫助記憶)
(3)典型器件——FLEX 10K系列
靈活邏輯單元矩陣(Flexible Logic Element Matrix,FLEX)系列是Altera公司推出的基于SRAM編程的現場可編程邏輯器件,具有高密度、在線配置、高速度與連續式布線結構等特點,其集成度達到了10萬門級,25萬個典型門,5392個寄存器;采用0.22μm CMOS SRAM工藝制造;具有ICR特性;在所有I/O端口中有輸入/輸出寄存器;采用3.3V或5.0V工作模式,是業界首次集成了嵌入式陣列塊EAB的芯片。所謂EAB,實際是一種大規模的SRAM資源,它可以被方便地設置為RAM、ROM、FIFO,以及雙口RAM等存儲器。FLEX 10K在結構上包括:
①嵌入陣列塊(EAB);
②邏輯陣列塊(LAB);
③邏輯單元(LE);
④快速通道互連(Fast Track);
⑤I/O單元(IOE)。
由一組LE組成一個LAB。LAB按行和列排成一個矩陣,并且在每一行中放置了一個EAB。在器件內部,信號的互連及信號與器件引腳的連接由Fast Track提供,在每行(或每列)Fast Track互連線的兩端連接著若干個IOE。圖2-6給出了FLEX 10K的結構。

圖2-6 FLEX 10K結構圖
FLEX 10K系列的特點包括以下幾點:
①高密度,典型門數達10000~250000,邏輯單元數為576~12160;
②功能更強大的I/O引腳,每一個引腳都是獨立的三態門結構,具有可編程的速率控制;
③嵌入式陣列塊,每個EAB提供2K比特位,可用來作存儲器使用或者用來實現邏輯功能;
④邏輯單元采用查找表結構;
⑤采用連續式的快速通道互連,可精確預測信號在器件內部的延時;
⑥實現快速加法器和計數器的專用進位鏈;
⑦實現高速、多輸入邏輯函數的專用級聯鏈。
表2-3列出了FLEX 10K系列器件的基本特性。

2.2.2 CPLD的結構與工作原理
Altera公司于1983年成立并推出第一個演示盒T-bird Tail Lights,次年推出世界上第一個CPLD芯片——EP300。CPLD是基于乘積項(Product-Term)技術,以及E2PROM(或Flash)工藝的PLD。
早期的CPLD主要用來替代PAL器件,所以其結構與PAL、GAL基本相同,采用了可編程的與陣列和固定的或陣列結構,再加上一個全局共享的可編程與陣列,把多個宏單元連接起來,并增加了I/O控制模塊的數量和功能。
20世紀90年代CPLD發展更為迅速,不僅具有電擦除特性,而且出現了邊緣掃描及在線可編程等高級特性。基于乘積項的CPLD基本都是由E2PROM或Flash工藝制造的,一上電就可以工作,無需其他芯片配合。
(1)CPLD的邏輯實現原理
CPLD是基于乘積項結構原理來實現邏輯運算的,CPLD采用了可編程的與陣列和固定的或陣列結構。下面以圖2-7所示電路為例,具體說明CPLD是如何利用乘積項結構實現邏輯運算的。

圖2-7 示例電路
假設組合邏輯的輸出為F,則
CPLD將以圖2-8的方式來實現組合邏輯F。

圖2-8 CPLD工作方式
A、B、C、D由PLD芯片的引腳輸入后進入可編程連線陣列(PIA),在內部會產生A、、B、
、C、
、D、
八個輸出。圖中每一個叉表示相連(可編程熔絲導通),所以得到:
這樣組合邏輯就實現了。
對于一個復雜的電路,一個宏單元是不能實現的,需要通過并聯擴展項和共享擴展項將多個宏單元相連。宏單元的輸出也可以連接到可編程連線陣列,再作為另一個宏單元的輸入。這樣CPLD就可以實現更復雜的邏輯。
(2)特點
基于乘積項結構和E2PROM(或Flash)工藝的CPLD器件,有如下5個特點。
①掉電非易失性。在下載編程時既可以使用專用下載電纜,也可以用編程器編程。通過專用電纜把數據下載到CPLD器件中,這個過程稱為在系統編程(In System Programable,ISP)。
②有限次編程,速度較慢。
③相對容量小,單位宏單元性價比低。
④直接加密,保密性好。
⑤無須外部存儲器芯片,使用簡單方便。
(讀者可以聯想常用的U盤以幫助記憶)
(3)典型器件——MAX 7000系列
MAX 7000系列是基于Altera公司第二代陣列矩陣MAX乘積項結構,采用了先進的CMOS E2PROM技術制造的CPLD,密度范圍為600~10000個可用邏輯門(32~512個宏單元),速度達3.5ns的引腳到引腳延遲,支持ISP,提供5.0V、3.3V、2.5V和1.8V核電壓。基于其可預見的性能,即用性能力和大量可選封裝形式,MAX 7000是相應密度層次使用最廣泛的可編程邏輯解決方案。MAX 7000在結構上包括:
①邏輯陣列塊(Logic Array Block,LAB);
②宏單元(Macrocells);
③擴展乘積項(Expender Product Term);
④可編程連線陣列(Programmable Interconnect Array,PIA);
⑤I/O控制塊(I/O Control Block)。
MAX 7000的結構如圖2-9所示。

圖2-9 MAX 7000的結構圖
該系列器件主要有以下特點:
①采用第二代多陣列矩陣(MAX)結構;
②MAX 7000系列通過標準的JTAG接口,支持ISP;
③集成密度為600~10000個可用門;
④引腳到引腳之間的延時為6ns,工作頻率最高可達151.5MHz;
⑤2.5V、3.3V或者5V電源供電;
⑥在可編程功率節省模式下工作,每個宏單元的功耗可降到原來的50%或更低;
⑦高性能的可編程連線陣列提供一個高速的、延時可預測的互連網絡資源;
⑧每個宏單元中可編程擴展乘積項可達32個;
⑨具有可編程保密位,可全面保護用戶的設計思想。
表2-4列出了MAX 7000系列器件基本特性。
表2-4 MAX 7000系列器件基本特性

2.2.3 其他類型的FPGA和CPLD
隨著技術的發展,2004年以后一些廠家推出了新型的FPGA/CPLD,這些產品模糊了FPGA和CPLD的區別。例如Altera的MAXⅡ系列CPLD,是一種基于FPGA(LUT)結構,集成了配置芯片(CPLD),在本質上是一種在內部集成了配置芯片的FPGA,但配置時間極短,上電就可以工作,對用戶來說,感覺不到配置過程,可以與傳統的CPLD一樣使用,容量和傳統FPGA類似,Altera把它歸為CPLD。還有像Lattice的XP系列FPGA,也是使用了同樣的原理,將外部配置芯片集成到內部,其容量大,也是LUT架構,Lattice仍把它歸為FPGA。
2.2.4 Altera成熟器件及命名規則
(1)成熟器件
表2-5總結了Altera成熟器件。
表2-5 Altera成熟器件

(2)命名規則
Altera使用邏輯單元(LE)來衡量器件擁有的可配置資源(一個小尺寸的NiosⅡ軟核占用大約600個LE);Xilinx使用Logic Cell,同時也使用系統門數(system gates)來標志器件的型號。Altera用EP做前綴,Xilinx用XC。后面2S表示SpartanⅡ,2C表示CycloneⅡ,以此類推,VirtexⅡ就是2V,StratixⅡ就是2S。之后跟的數字,Xilinx使用系統門數表示的可用資源,以K作為單位;而Altera使用LE來標志的可用資源,單位是個,不是K。Altera從推出的APEXⅡ系列器件起,采用基于邏輯單元的器件命名方法定義可編程邏輯產品。按照新的器件命名方法,每一器件的型號中都有一個以千為單位的數字代表邏輯單元的近似數目。
PQ208、TQ144等都是封裝了。I/C表示工業/經濟型。要注意的是Speed Grade,Xilinx的Speed Grade對于CPLD和FPGA是不同的,CPLD的Speed Grade就是延時時間,所以越小越好,而FPGA則相反,越大越好。Altera的Speed Grade是越小越快。
對于內部RAM,Altera將它們分成M512、M4K、M-RAM。Cyclone中的是M4K,而Stratix中同時擁有三種內部RAM塊,這樣的結構被稱之為TriMatrix。Xilinx使用Block RAM。
例如開發板DE2上的芯片是EP2C35F672C6,EP表示是Altera的芯片,2C表示CycloneⅡ,35表示大約有35000個LE,F為FineLine BGA(FBGA)封裝,672個I/O腳,C為民用型,速度等級為6。我們可以從器件名稱獲知器件的基本信息!
圖2-10和圖2-11分別是Altera和Xilinx器件命名示例。

圖2-10 Altera器件命名示例

圖2-11 Xilinx器件命名示例
2.2.5 FPGA和CPLD器件選擇
在設計電子系統前,應做好包括系統設計、方案論證和器件選擇準備等工作。根據所設計項目的功能,初步定義I/O端口;根據器件本身的資源、系統延遲時間、系統速度要求、連線的可布性及成本等方面進行權衡,以選擇合適的FPGA/CPLD器件,使器件在資源和速度上能夠滿足所設計電子系統的需求。
(1)選擇FPGA還是CPLD
根據FPGA/CPLD的內部結構和生產工藝,可以知道其不同的特征,表2-6羅列了CPLD與FPGA的主要區別。簡而言之,CPLD適合于設計組合邏輯,而FPGA適合于設計時序邏輯。
表2-6 CPLD與FPGA的區別

(2)選型原則
數字系統邏輯功能設計之前的一個重要問題,就是FPGA/CPLD器件的選型,包括廠商的選擇,以及器件系列和型號的選擇。
每個FPGA/CPLD廠商,都有自己特有的核心技術和相應的產品。對于繼承性產品的開發,盡量使用熟悉并一直使用的FPGA/CPLD廠商的產品;對于新產品的開發,則可以根據待設計系統的特點和要求,以及各種FPGA/CPLD器件的特性,初步選擇FPGA/CPLD廠商和產品系列。
另外,還可以根據FPGA/CPLD芯片成本,來選擇FPGA/CPLD器件廠商和產品系列。比如Altera的Stratix系列和Xilinx的Virtex系列,屬于高性能產品;而Altera的Cyclone和Xilinx的Spartan系列,則屬于低成本FPGA器件。
(3)型號的選擇
選擇具體型號的FPGA/CPLD時,需要考慮的因素較多,包括引腳數量、邏輯資源、片內存儲器、功耗、封裝形式等。另外,為了保證系統具有較好的可擴展性和可升級性,一般應留出一定的資源余量。
(4)外圍器件的選擇
FPGA/CPLD選定之后,還要根據它的特性,為其選擇合適的電源芯片、片外存儲器芯片、配置信息存儲器等多種器件。在系統設計和開發階段,應該盡量選擇升級空間大、引腳兼容的器件。在產品開發后期,再考慮將這些外圍器件替換為其他的兼容器件,以降低成本。
2.2.6 Altera配置芯片簡介
基于SRAM工藝的FPGA,具有掉電易失性。需要外加專用芯片,在上電的時候,由這個專用芯片把數據加載到FPGA中,然后FPGA就可以正常工作。稱這種芯片為配置芯片。
(1)標準型配置器件
標準型配置器件所提供的功能特性,主要包括ISP、在很廣的密度范圍內進行MultiVolt I/O操作、小外形封裝和高速編程等,為低密度的FPGA提供了低廉的解決方案。標準型配置器件包括EPC2、EPC1、EPC1441、EPC1213、EPC1064和EPC1064V,其中EPC2屬于閃存(Flash Memory)器件,具有可擦寫功能,而EPC1、EPC1441、EPC1213、EPC1064和EPC1064V基于EPROM結構,是OTP器件。
(2)增強型配置器件
Altera推出的包括EPC4、EPC8和EPC16器件在內的增強型配置器件,擁有高達30Mbit(帶壓縮)的配置存儲器,屬于閃存器件,并為大容量FPGA提供單器件一站式的解決方案。擁有豐富功能的增強型配置器件,允許進行遠程的系統升級,支持ISP,將未使用的存儲器用作通用存儲器,可以大幅度降低配置所需時間。增強型配置器件的特性主要包括數據壓縮、動態配置、8bit的并行配置、外部閃存接口、ISP、時鐘可編程和堆疊式芯片技術。
(3)串行配置器件
Altera公司的串行配置器件容量大,尺寸小,價格低。
Altera公司的串行配置器件是業界低價格的配置器件。串行配置器件的價格傳統上總是和低價位FPGA相比較,一般是在FPGA的30%~50%之間,而Altera公司的新型串行配置器件的價格只有對應FPGA的10%左右,其價格甚至比一次性編程的解決方案更便宜。
串行配置器件系列包括EPCS1、EPCS4、EPCS16、EPCS64和EPCS128五個產品,分別提供1Mbit、4Mbit、16Mbit、64Mbit和128Mbit的存儲容量。串行配置器件具有包括ISP和Flash存儲器訪問接口等先進特性,8、16引腳小外形封裝,增加了在低價格、小面積應用領域的使用機會。