A. VHDL與Verilog在FPGA開發中的比較
硬體描述語言HDL(Hardware Describe Language)
HDL概述
隨著EDA技術的發展,使用硬體語言設計PLD/FPGA成為一種趨勢。目前最主要的硬體描述語言是VHDL和Verilog HDL。 VHDL發展的較早,語法嚴格,而Verilog HDL是在C語言的基礎上發展起來的一種硬體描述語言,語法較自由。 VHDL和Verilog HDL兩者相比,VHDL的書寫規則比Verilog煩瑣一些,但verilog自由的語法也容易讓少數初學者出錯。 國外電子專業很多會在本科階段教授VHDL,在研究生階段教授verilog。從國內來看,VHDL的參考書很多,便於查找資料,而Verilog HDL的參考書相對較少,這給學習Verilog HDL帶來一些困難。 從EDA技術的發展上看,已出現用於CPLD/FPGA設計的硬體C語言編譯軟體,雖然還不成熟,應用極少,但它有可能會成為繼VHDL和Verilog之後,設計大規模CPLD/FPGA的又一種手段。
選擇VHDL還是verilog HDL?
這是一個初學者最常見的問題。其實兩種語言的差別並不大,他們的描述能力也是類似的。掌握其中一種語言以後,可以通過短期的學習,較快的學會另一種語言。 選擇何種語言主要還是看周圍人群的使用習慣,這樣可以方便日後的學習交流。 當然,如果您是集成電路(ASIC)設計人員,則必須首先掌握verilog,因為在IC設計領域,90%以上的公司都是採用verilog進行IC設計。對於PLD/FPGA設計者而言,兩種語言可以自由選擇。
學習HDL的幾點重要提示
1.了解HDL的可綜合性問題:
HDL有兩種用途:系統模擬和硬體實現。 如果程序只用於模擬,那麼幾乎所有的語法和編程方法都可以使用。 但如果我們的程序是用於硬體實現(例如:用於FPGA設計),那麼我們就必須保證程序「可綜合」(程序的功能可以用硬體電路實現)。 不可綜合的HDL語句在軟體綜合時將被忽略或者報錯。 我們應當牢記一點:「所有的HDL描述都可以用於模擬,但不是所有的HDL描述都能用硬體實現。」
2. 用硬體電路設計思想來編寫HDL:
學好HDL的關鍵是充分理解HDL語句和硬體電路的關系。 編寫HDL,就是在描述一個電路,我們寫完一段程序以後,應當對生成的電路有一些大體上的了解, 而不能用純軟體的設計思路來編寫硬體描述語言。 要做到這一點,需要我們多實踐,多思考,多總結。
3.語法掌握貴在精,不在多
30%的基本HDL語句就可以完成95%以上的電路設計,很多生僻的語句並不能被所有的綜合軟體所支持,在程序移植或者更換軟體平台時,容易產生兼容性問題,也不利於其他人閱讀和修改。建議多用心鑽研常用語句,理解這些語句的硬體含義,這比多掌握幾個新語法要有用的多。
HDL與原理圖輸入法的關系
HDL和傳統的原理圖輸入方法的關系就好比是高級語言和匯編語言的關系。HDL的可移植性好,使用方便,但效率不如原理圖;原理圖輸入的可控性好,效率高,比較直觀,但設計大規模CPLD/FPGA時顯得很煩瑣,移植性差。在真正的PLD/FPGA設計中,通常建議採用原理圖和HDL結合的方法來設計,適合用原理圖的地方就用原理圖,適合用HDL的地方就用HDL,並沒有強制的規定。在最短的時間內,用自己最熟悉的工具設計出高效,穩定,符合設計要求的電路才是我們的最終目的。
HDL開發流程
用VHDL/VerilogHD語言開發PLD/FPGA的完整流程為:
1.文本編輯:用任何文本編輯器都可以進行,也可以用專用的HDL編輯環境。通常VHDL文件保存為.vhd文件,Verilog文件保存為.v文件
2.功能模擬:將文件調入HDL模擬軟體進行功能模擬,檢查邏輯功能是否正確(也叫前模擬,對簡單的設計可以跳過這一步,只在布線完成以後,進行時序模擬)
3.邏輯綜合:將源文件調入邏輯綜合軟體進行綜合,即把語言綜合成最簡的布爾表達式和信號的連接關系。邏輯綜合軟體會生成.edf(edif)的EDA工業標准文件。
4.布局布線:將.edf文件調入PLD廠家提供的軟體中進行布線,即把設計好的邏輯安放到PLD/FPGA內
5.時序模擬:需要利用在布局布線中獲得的精確參數,用模擬軟體驗證電路的時序。(也叫後模擬)
6.編程下載:確認模擬無誤後,將文件下載到晶元中
通常以上過程可以都在PLD/FPGA廠家提供的開發工具(如MAXPLUSII,Foundation,ISE)中完成,但許多集成的PLD開發軟體只支持VHDL/Verilog的子集,可能造成少數語法不能編譯,如果採用專用HDL工具分開執行,效果會更好,否則這么多出售專用HDL開發工具的公司就沒有存在的理由了。
B. 可編程邏輯器件的具體概念是什麼
可編程邏輯器件
簡介
可編程邏輯器件 英文全稱為:programmable logic device 即 PLD。 PLD是做為一種通用集成電路產生的,他的邏輯功能按照用戶對器件編程來確定。一般的PLD的集成度很高,足以滿足設計一般的數字系統的需要。這樣就可以由設計人員自行編程而把一個數字系統「集成」在一片PLD上,而不必去請晶元製造廠商設計和製作專用的集成電路晶元了。
特點
PLD與一般數字晶元不同的是:PLD內部的數字電路可以在出廠後才規劃決定,有些類型的PLD也允許在規劃決定後再次進行變更、改變,而一般數字晶元在出廠前就已經決定其內部電路,無法在出廠後再次改變,事實上一般的模擬晶元、混訊晶元也都一樣,都是在出廠後就無法再對其內部電路進行調修。
編輯本段固定邏輯與可編程邏輯
邏輯器件可分類兩大類 - 固定邏輯器件和可編程邏輯器件。 一如其名,固定邏輯器件中的電路是永久性的,它們完成一種或一組功能 - 一旦製造完成,就無法改變。 另一方面,可編程邏輯器件(PLD)是能夠為客戶提供范圍廣泛的多種邏輯能力、特性、速度和電壓特性的標准成品部件 - 而且此類器件可在任何時間改變,從而完成許多種不同的功能。 對於固定邏輯器件,根據器件復雜性的不同,從設計、原型到最終生產所需要的時間可從數月至一年多不等。 而且,如果器件工作不合適,或者如果應用要求發生了變化,那麼就必須開發全新的設計。 設計和驗證固定邏輯的前期工作需要大量的「非重發性工程成本」,或NRE。 NRE表示在固定邏輯器件最終從晶元製造廠製造出來以前客戶需要投入的所有成本,這些成本包括工程資源、昂貴的軟體設計工具、用來製造晶元不同金屬層的昂貴光刻掩模組,以及初始原型器件的生產成本。 這些NRE成本可能從數十萬美元至數百萬美元。 對於可編程邏輯器件,設計人員可利用價格低廉的軟體工具快速開發、模擬和測試其設計。 然後,可快速將設計編程到器件中,並立即在實際運行的電路中對設計進行測試。 原型中使用的PLD器件與正式生產最終設備(如網路路由器、DSL數據機、DVD播放器、或汽車導航系統)時所使用的PLD完全相同。 這樣就沒有了NRE成本,最終的設計也比採用定製固定邏輯器件時完成得更快。 採用PLD的另一個關鍵優點是在設計階段中客戶可根據需要修改電路,直到對設計工作感到滿意為止。 這是因為PLD基於可重寫的存儲器技術--要改變設計,只需要簡單地對器件進行重新編程。 一旦設計完成,客戶可立即投入生產,只需要利用最終軟體設計文件簡單地編程所需要數量的PLD就可以了。
編輯本段可編程邏輯器件的兩種類型:CPLD和FPGA
可編程邏輯器件的兩種主要類型是現場可編程門陣列(FPGA)和復雜可編程邏輯器件(CPLD)。 在這兩類可編程邏輯器件中,FPGA提供了最高的邏輯密度、最豐富的特性和最高的性能。 現在最新的FPGA器件,如Xilinx Virtex™系列中的部分器件,可提供八百萬"系統門"(相對邏輯密度)。 這些先進的器件還提供諸如內建的硬連線處理器(如IBM Power PC)、大容量存儲器、時鍾管理系統等特性,並支持多種最新的超快速器件至器件(device-to-device)信號技術。 FPGA被應用於范圍廣泛的應用中,從數據處理和存儲,以及到儀器儀表、電信和數字信號處理等。 與此相比,CPLD提供的邏輯資源少得多 - 最高約1萬門。 但是,CPLD提供了非常好的可預測性,因此對於關鍵的控制應用非常理想。 而且如Xilinx CoolRunner™系列CPLD器件需要的功耗極低,
編輯本段PLD的優點
固定邏輯器件和PLD各有自己的優點。 例如,固定邏輯設計經常更適合大批量應用,因為它們可更為經濟地大批量生產。 對有些需要極高性能的應用,固定邏輯也可能是最佳的選擇。 然而,可編程邏輯器件提供了一些優於固定邏輯器件的重要優點,包括:PLD在設計過程中為客戶提供了更大的靈活性,因為對於PLD來說,設計反復只需要簡單地改變編程文件就可以了,而且設計改變的結果可立即在工作器件中看到。 PLD不需要漫長的前置時間來製造原型或正式產品 - PLD器件已經放在分銷商的貨架上並可隨時付運。 PLD不需要客戶支付高昂的NRE成本和購買昂貴的掩模組- PLD供應商在設計其可編程器件時已經支付了這些成本,並且可通過PLD產品線延續多年的生命期來分攤這些成本。 PLD允許客戶在需要時僅訂購所需要的數量,從而使客戶可控制庫存。 採用固定邏輯器件的客戶經常會面臨需要廢棄的過量庫存,而當對其產品的需求高漲時,他們又可能為器件供貨不足所苦,並且不得不面對生產延遲的現實。 PLD甚至在設備付運到客戶那兒以後還可以重新編程。 事實上,由於有了可編程邏輯器件,一些設備製造商現在正在嘗試為已經安裝在現場的產品增加新功能或者進行升級。 要實現這一點,只需要通過網際網路將新的編程文件上載到PLD就可以在系統中創建出新的硬體邏輯。 過去幾年時間里,可編程邏輯供應商取得了巨大的技術進步,以致現在PLD被眾多設計人員視為是邏輯解決方案的當然之選。 能夠實現這一點的重要原因之一是象Xilinx這樣的PLD供應商是"無晶圓製造廠"企業,並不直接擁有晶元製造工廠,Xilinx將晶元製造工作外包給IBM Microelectronics 和 UMC這樣的主要業務就是製造晶元的合作夥伴。 這一策略使Xilinx可以集中精力設計新產品結構、軟體工具和IP核心,同時還可以利用最先進的半導體製造工藝技術。 先進的工藝技術在一系列關鍵領域為PLD提供了幫助:更快的性能、集成更多功能、降低功耗和成本等。 目前Xilinx採用先進的0.13um 低K銅金屬工藝生產可編程邏輯器件,這也是業界最好的工藝之一。 例如,僅僅數年前,最大規模的FPGA器件也僅僅為數萬系統門,工作在40 MHz。 過去的FPGA也相對較貴,當時最先進的FPGA器件大約要150美元。 然而,今天具有最先進特性的FPGA可提供百萬門的邏輯容量、工作在300 MHz,成本低至不到10美元,並且還提供了更高水平的集成特性,如處理器和存儲器。 同樣重要的是,PLD現在有越來越多的知識產權(IP)核心庫的支持 - 用戶可利用這些預定義和預測試的軟體模塊在PLD內迅速實現系統功能。 IP核心包括從復雜數字信號處理演算法和存儲器控制器直到匯流排介面和成熟的軟體微處理器在內的一切。 此類IP核心為客戶節約了大量時間和費用 - 否則,用戶可能需要數月的時間才能實現這些功能,而且還會進一步延遲產品推向市場的時間。
編輯本段PLD的編程語言
有關之前所談到的「PAL」,若要以手工的方式來產生JEDEC檔實是過於復雜,所以多半改用電腦程序(也稱:計算機程序)來產生,這種程序(程序)稱為「邏輯編譯器,logic compiler」,它與程序開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始代碼(也稱:源代碼)也得用特定的編程語言(也稱:程序語言、編程語言)來撰寫,此稱之為hardware description language(硬體描述語言),簡稱:HDL。 而且,HDL並非僅有一種,而是有許多種,如ABEL、AHDL、Confluence、CUPL、HDCal、JHDL、Lava、Lola、MyHDL、PALASM、RHDL等都是,但目前最具知名也最普遍使用的是VHDL與Verilog。
C. FPGA是干什麼用的
FPGA作為專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。
FPGA設計不是簡單的晶元研究,主要是利用 FPGA 的模式進行其他行業產品的設計。 與 ASIC 不同,FPGA在通信行業的應用比較廣泛。
通過對全球FPGA產品市場以及相關供應商的分析,結合當前我國的實際情況以及國內領先的FPGA產品可以發現相關技術在未來的發展方向,對我國科技水平的全面提高具有非常重要的推動作用。
(3)HDpLD可編程用在什麼地方擴展閱讀:
工作原理
FPGA採用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。
現場可編程門陣列(FPGA)是可編程器件,與傳統邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的結構。
FPGA利用小型查找表(16×1RAM)來實現組合邏輯,每個查找表連接到一個D觸發器的輸入端,觸發器再來驅動其他邏輯電路或驅動I/O,由此構成了既可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。