- 基于Quartus II的FPGA/CPLD設計實例精解
- 李大社 王彬 劉淑娥等編著
- 2375字
- 2019-01-09 14:38:38
1.2 可編程器件開發
PLD是可編程邏輯器件(Programable Logic Device)的簡稱,FPGA是現場可編程門陣列(Field Programable Gate Array)的簡稱,兩者的功能基本相同,只是實現原理略有不同,所以我們有時可以忽略這兩者的區別,統稱為可編程邏輯器件或PLD/FPGA。
PLD是電子設計領域中最具活力和發展前途的一項技術,它的影響絲毫不亞于20 世紀70年代單片機的出現和使用。可以毫不夸張地說,PLD能完成任何數字器件的功能,上至高性能CPU,下至簡單的74系列電路,都可以用PLD來實現。PLD如同一張白紙,工程師可以通過傳統的原理圖輸入法,或是硬件描述語言,自由地設計一個數字系統。通過軟件仿真,我們可以事先驗證設計的正確性。在PCB完成以后,還可以利用PLD的在線修改能力,隨時修改設計而不必改動硬件電路。使用PLD來開發數字電路,可以大大縮短設計時間,減少PCB面積,提高系統的可靠性。PLD的這些優點使得PLD技術在20世紀90年代以后得到飛速的發展,同時也大大推動了EDA軟件和硬件描述語言(HDL)的進步。
如何使用PLD呢?其實PLD的使用很簡單,學習PLD比學習單片機要簡單得多,有數字電路基礎,會使用計算機,就可以進行PLD的開發。不熟悉PLD的朋友,可以先看一看可編程邏輯器件的發展歷程。開發PLD需要PLD開發軟件和PLD芯片。
1.PLD開發軟件
由于PLD軟件已經發展得相當完善,用戶甚至可以不用詳細了解PLD的內部結構,就能用自己熟悉的方法,如原理圖輸入或HDL語言來完成相當優秀的PLD設計。所以對初學者來說,首先應了解PLD開發軟件和開發流程。了解PLD的內部結構,將有助于提高我們設計的效率和可靠性。
獲得PLD開發軟件的途徑非常多。許多PLD公司都提供免費試用版或演示版(當然商業版大都是收費的),例如可以免費從http://www.altera.com/ 上下載Altera公司的Maxplus II(Baseline版或E+MAX版),或向其代理商索取這套軟件。Xilinx公司也提供免費軟件:WebPack可以從Xilinx網站下載。Lattice、Actel等公司也都有類似的免費軟件提供。以上免費軟件都需要在網上注冊申請License文件。通常這些免費軟件已經能夠滿足一般設計的需要,要想軟件功能更強大一些,只能購買商業版軟件。
如果打算使用VHDL或Verilog HDL硬件描述語言來開發PLD/FPGA,通常還需要使用一些專業的HDL開發軟件,這是因為FPGA廠商提供的軟件的HDL綜合能力一般都不是很強,需要其他軟件來配合使用。
對于PLD產品,一般分為兩類:
(1)基于乘積項(Product-Term)技術,一般用于EEPROM(或Flash)工藝的中小規模PLD。
(2)基于查找表(Look-Up Table)技術,一般用于SRAM工藝的大規模PLD/FPGA。
EEPROM工藝的PLD密度小,多用于5000門以下的小規模設計,適合做復雜的組合邏輯,如譯碼。SRAM工藝的PLD(FPGA),密度高,觸發器多,多用于10000門以上的大規模設計,適合做復雜的時序邏輯,如數字信號處理和各種算法。
2.PLD開發
在PLD/FPGA開發軟件中完成設計以后,軟件會產生一個最終的編程文件(如.pof)。應如何將編程文件燒到PLD芯片中去呢?
對于基于乘積項(Product-Term)技術,EEPROM(或Flash)工藝的PLD(如Altera的MAX系列,Xilinx的XC9500系列),廠家提供編程電纜,如Altera公司的叫做Byteblaster。電纜一端裝在計算機的并行打印口上,另一端接在PCB板上的一個十芯插頭上,PLD芯片有4個引腳(編程腳)與插頭相連,如圖1-1所示。

圖1-1 PLD芯片與插頭相連
下載電纜向系統板上的器件提供配置或編程數據,這就是所謂的在線可編程(ISP)。下載電纜使用戶能夠獨立地配置PLD器件,而不需要編程器或任何其他編程硬件。編程電纜可以向代理商購買,也可以根據廠家提供的編程電纜的原理圖自己制作。早期的PLD是不支持ISP的,它們需要用編程器燒寫。目前的PLD都可以用ISP在線編程,也可用編程器編程。這種PLD可以加密,并且很難解密。具體應用步驟如圖1-2所示。

圖1-2 應用步驟
對于基于查找表技術(Look-Up Table)的SRAM工藝的FPGA(如Altera的所有FLEX、ACEX、APEX系列,Xilinx的Spartan、Virtex),由于SRAM工藝的特點,斷電后數據會消失,因此調試期間可以用下載電纜配置PLD器件,調試完成后,需要將數據固化在一個專用的EEPROM中(用通用編程器燒寫),上電時,由這片配置EEPROM先對PLD加載數據,十幾毫秒后,PLD即可正常工作(也可由CPU配置PLD)。但SRAM工藝的PLD一般不可以加密。
對于另一種反熔絲(Anti-fuse)技術的FPGA,如Actel、Quicklogic的部分產品就采用這種工藝,其用法與EEPOM的PLD一樣,但這種PLD不能重復擦寫,所以初期開發過程比較麻煩,費用也比較高昂。但反熔絲技術也有許多優點,例如,布線能力更強,系統速度更快,功耗更低,同時抗輻射能力強,耐高低溫,可以加密,所以在一些有特殊要求的領域中運用較多,如軍事及航空航天。
3.ISP技術與開發流程
20世紀90年代初,在系統可編程(In-System Programmability,ISP)技術首先應用于可編程邏輯器件,它改變了數字電子系統的設計和實現方法,為人們提供了更為方便的EDA手段。所謂“在系統可編程”,是指可編程器件在不脫離所在應用系統的情況下,能夠通過計算機對其進行編程,而不需要專用的編程器。
進行ASIC與FPGA/CPLD電路設計,通常可將設計流程歸納為以下7個步驟。
第1步:設計輸入。在傳統設計中,設計人員是應用傳統的原理圖輸入方法來開始設計的。自20世紀90年代初以后,Verilog、VHDL、AHDL等硬件描述語言的輸入方法得到了廣大工程設計人員的認可。
第2步:布線前仿真。所設計的電路必須在布局布線前進行驗證,主要目的是在仿真時,驗證電路功能是否有效。在ASIC設計中,這一步驟稱為第一次Sign-off。
第3步:設計輸入編譯。設計輸入之后就有一個從高層次系統行為設計向低層次門級邏輯電路的轉化翻譯過程,即把設計輸入的某種或某幾種數據格式(網表)轉化為底層軟件能夠識別的某種數據格式(網表),以求達到與其工藝無關。
第4步:設計輸入的優化。對于上述綜合生成的網表,根據布爾方程功能等效的原則,用更小更快的綜合結果替代一些復雜的單元,并與指定的庫映射生成新的網表。
第5 步:布局布線。當初步的仿真被驗證后,就開始布局布線。這一步可規劃出ASIC和FPGA/CPLD設計。
第6步:后仿真。設計人員需要利用在布局布線中獲得的更精確的RC參數再次驗證電路的功能和時序。在ASIC設計中,這一步驟稱為第二次Sign-off。
第7步:流片。在布局布線和后仿真完成之后,當需要大批量生產該芯片時,就可以開始ASIC芯片的投產了。
- 單片機基礎及應用項目式教程
- 用Proteus可視化設計玩轉Arduino
- TinyML:基于TensorFlow Lite在Arduino和超低功耗微控制器上部署機器學習
- 嵌入式虛擬化技術與應用:ACRN開源項目實踐
- AVR單片機實用程序設計
- 基于STM32的嵌入式系統設計與實踐
- 零基礎學51單片機(C語言版)
- STM32W無線射頻Zigbee單片機原理與應用
- 嵌入式Linux軟硬件開發詳解:基于S5PV210處理器
- C51單片機項目設計實踐教程(第2版)
- 我和PIC單片機:基于PIC18
- Protel DXP 2004應用100例
- 單片機開發從入門到精通(第2版)
- 基于Quartus II的FPGA/CPLD設計實例精解
- 零基礎學西門子S7- 200 SMART PLC編程及應用