㈠ 高雲fpga ddr3 編譯錯誤
高雲fpga ddr3 編譯錯誤的問題,通常源於多個可能的原因。首先,我們需要明確的是,編譯錯誤指的拍散是在將設計代碼轉換為可在FPGA上運行的配置比特流時出現的問題。
一個常見的原因是設計代碼本身存在語法或邏輯錯誤。這可能包括但不限於信號未定義、埠不匹配、數據類型不一致等。例如,如果在代碼中引用了一個不存在的信號,或者在模塊連前尺接時埠寬度不對應,編譯器就會報錯。解決這類問題通常需要仔細檢查代碼,對照設計文檔和FPGA的庫函數進行排查。
另一個可能的原因是約束文件配置不當。DDR3介面在FPGA設計中通常需要嚴格的時序約束,以確保數據在高速傳輸時的穩定性。如果約束文件中關於DDR3的時序、電壓、溫度等參數設置不合理,就有可能導致編譯失敗。此時,設計師需要根據DDR3晶元的數據手冊和FPGA的推薦設置,重新調整約束文件。
最後,硬體環境或軟體工具的問題也可能導致編譯錯誤。例如,如果使用的FPGA開發板存在硬體故障,或者開發環境(如IDE、編譯器版本等)與設計代碼不兼容,都有可能導致編譯無法通過。這類問題通常需要通過更新軟體版本、更換硬體設備或者尋求技術支持來解決。
總的來說,高雲FPGA DDR3編譯錯誤可能由設計代碼錯誤、約束文件配置不當或軟硬體環境問題引起。解決這些問題需要設計師具備扎實的專業知識,能夠綜合運用代碼審查、文檔查襲悔氏閱和技術支持等手段,逐步定位並解決問題。同時,保持對新技術和新方法的關注,不斷提升自身的靈活性和創造性,也是應對復雜編譯問題的關鍵。
㈡ Quartus II中的完全編譯包括幾個環節每個環節分別完成什麼功能
直接全編譯(Ctrl + L)就知道有哪些環節了
分析和綜合:這里主要是檢查每個源文件的語法錯誤,生成門級代碼,模塊之間的錯誤可能檢查不出來;
布局和布線:針對不同的器件進行優化,布局布線,這是關鍵步驟
匯編:產生編程文件,簡單的fpga工程就完了
完整的步驟還有時序約束,約束完再編譯,查看時序分析是否滿足條件,再修改,這是一個反復的過程,如果要用第三方的工具進行模擬還需要單獨生成對應的時序網表,包括一下模擬模型,延時輸出文件等
㈢ 用於項目開發的可編程晶元。
第1章 概 述
21世紀人類將全面進入信息化社會,對微電子信息技術和微電子VLSI基礎技術將不斷提出更高的發展要求,微電子技術仍將繼續是21世紀若干年代中最為重要的和最有活力的高科技領域之一。而集成電路(IC)技術在微電子領域佔有重要的地位。伴隨著IC技術的發展,電子設計自動化(Electronic Design Automation EDA)己經逐漸成為重要設計手段,其廣泛應用於模擬與數字電路系統等許多領域。
VHDL是廣泛使用的設計輸人硬體語言,可用於數字電路與系統的描述、模擬和自動設計.CPLD/FPGA(復雜可編程邏輯器件/現場可編程門陣列)為數字系統的設計帶靈活性,兼有串!並行工作方式和高集成度!高速!高可靠性等明顯的特點,CPLD/FPGA的時鍾延遲可達納秒級,結合其並行工作方式,在超高速領域和實時測控方面有非常廣泛的應用。
本次設計的目的是使用可編程邏輯器件設計一個專用的A/D轉換器的控制器,取代常用的微控制器,用於數據採集。本文講述對A/D進行數據采樣控制。設計要求用一片CPLD/FPGA,模數轉換控制器ADC和LED顯示器構成一個數據採集系統,用CPLD/FPGA實現數據採集中對A/D 轉換,數據運算,及有關數據的顯示控制。課題除了學習相應的硬體知識外,還要學習如何使用VHDL語言設計可編程邏輯器件。
未來的EDA技術向廣度和深度兩個方向發展.
(1)在廣度上,EDA技術會日益普及.在過去,由於EDA軟體價格昂貴,對硬體環境要求高,其運行環境是工作站和UNIX操作系統.最近幾年,EDA軟體平台化進展迅速,這些PC平台上的EDA軟體具有整套的邏輯設計、模擬和綜合工具.隨著PC機性能的提高,PC平台上的軟體功能將會更加完善.
(2)在深度上,EDA技術發展的下一步是ESDA伍electronic System Design Automation電子系統設計自動化)和CE (Concurrent Engineering並行設計工程).目前的各種EDA工具,如系統模擬,PCB布線、邏輯綜合、DSP設計工具是彼此獨立的.隨著技術的發展,要求所有的系統工具在統一的資料庫及管理框架下工作,由此提出了ESDA和CE概念。
第2章 EDA的發展歷程及其應用
2.1電子設計自動化(EDA)發展概述
2.1.1什麼是電子設計自動化(EDA )
在電子設計技術領域,可編程邏輯器件(如PLD, GAL)的應用,已有了很好的普及。這些器件為數字系統的設計帶來極大的靈活性。由於這類器件可以通過軟體編程而對其硬體的結構和工作方式進行重構,使得硬體的設計可以如同軟體設計那樣方便快捷。這一切極大地改變了傳統的數字系統設計方法、設計過程、乃至設計觀念。
電子設計自動化(EDA)是一種實現電子系統或電子產品自動化設計的技術,它與電子技術、微電子技術的發展密切相關,吸收了計算機科學領域的大多數最新研究成果,以高性能的計算機作為工作平台,是20世紀90年代初從CAD(計算機輔助設計)、CAM(計算機輔助製造)、CAT(計算機輔助測試)和CAE(計算機輔助工程)的概念發展而來的。EDA技術就是以計算機為工具,在EDA軟體平台上,根據硬體描述語言HDL完成的設計文件,自動地完成邏輯編譯、化簡、分割、綜合及優化、布局線、模擬,直至對於特定目標晶元的適配編譯、邏輯映射和編程下載等工作。設計者的工作僅限於利用軟體的方式來完成對系統硬體功能的描述,在EDA工具的幫助下和應用相應的FPGA/CPLD器件,就可以得到最後的設計結果。盡管目標系統是硬體,但整個設計和修改過程如同完成軟體設計一樣方便和高效。當然,這里的所謂EDA主要是指數字系統的自動化設計,因為這一領域的軟硬體方面的技術已比較成熟,應用的普及程度也已比較大。而模擬電子系統的EDA正在進入實用,其初期的EDA工具不一定需要硬體描述語言。此外,從應用的廣度和深度來說,由於電子信息領域的全面數字化,基於EDA的數字系統的設計技術具有更大的應用市場和更緊迫的需求性。
2.1.2 EDA的發展歷史
EDA技術的發展始於70年代,至今經歷了三個階段。電子線路的CAD(計算機輔助設計)是EDA發展的初級階段,是高級EDA系統的重要組成部分。它利用計算機的圖形編輯、分析和存儲等能力,協助工程師設計電子系統的電路圖、印製電路板和集成電路板圖;採用二維圖形編輯與分析,主要解決電子線路設計後期的大量重復性工作,可以減少設計人員的繁瑣重復勞動,但自動化程度低,需要人工干預整個設計過程。這類專用軟體大多以微機為工作平台,易於學用,設計中小規模電子系統可靠有效,現仍有很多這類專用軟體被廣泛應用於工程設計。80年代初期,EDA技術開始技術設計過程的分析,推出了以模擬(邏輯模擬、定時分析和故障模擬)和自動布局與布線為核心的EDA產品,這一階段的EDA已把三維圖形技術、窗口技術、計算機操作系統、網路數據交換、資料庫與進程管理等一系列計算機學科的最新成果引入電子設計,形成了CAE—計算機輔助工程。也就是所謂的EDA技術中級階段。其主要特徵是具備了自動布局布線和電路的計算機模擬、分析和驗證功能。其作用已不僅僅是輔助設計,而且可以代替人進行某種思維。CAE這種以原理圖為基礎的EDA系統,雖然直觀,且易於理解,但對復雜的電子設計很難達到要求,也不宜於設計的優化。
所以,90年代出現了以自動綜合器和硬體描述語言為基礎,全面支持電子設計自動化的ESDA(電子系統設計自動化),即EDA階段、也就是目前常說的EDA.過去傳統的電子系統電子產品的設計方法是採用自底而上(Bottom_ Up)的程式,設計者先對系統結構分塊,直接進行電路級的設計。這種設計方式使設計者不能預測下一階段的問題,而且每一階段是否存在問題,往往在系統整機調試時才確定,也很難通過局部電路的調整使整個系統達到既定的功能和指標,不能保證設計一舉成功。EDA技術高級階段採用一種新的設計概念:自頂而下(Top_ Down)的設計程式和並行工程(Concurrent engineering)的設計方法,設計者的精力主要集中在所要電子產品的准確定義上,EDA系統去完成電子產品的系統級至物理級的設計。此階段EDA技術的主要特徵是支持高級語言對系統進行描述,高層次綜合(High Level Synthesis)理論得到了巨大的發展,可進行系統級的模擬和綜合。圖2-1給出了上述三個階段的示意圖。
圖2-1 EDA發展階段示意圖
2.1.3 EDA的應用
隨著大規模集成電路技術和計算機技術的不斷發展,在涉及通信、國防、航天、醫學、工業自動化、計算機應用、儀器儀表等領域的電子系統設計工作中,EDA技術的含量正以驚人的速度上升;電子類的高新技術項目的開發也依賴於EDA技術的應用。即使是普通的電子產品的開發,EDA技術常常使一些原來的技術瓶頸得以輕松突破,從而使產品的開發周期大為縮短、性能價格比大幅提高。不言而喻,EDA技術將迅速成為電子設計領域中的極其重要的組成部分。
電子設計專家認為,單片機時代已經結束,未來將是EDA的時代,這是極具深刻洞察力之言。隨著微電子技術的飛速進步,電子學進入了一個嶄新的時代。其特徵是電子技術的應用以空前規模和速度滲透到各行各業。各行業對自己專用集成電路(ASIC)的設計要求日趨迫切,現場可編程器件的廣泛應用,為各行業的電子系統設計工程師自行開發本行業專用的ASIC提供了技術和物質條件。與單片機系統開發相比,利用EDA技術對FPGA/CPLD的開發,通常是一種藉助於軟體方式的純硬體開發,可以通過這種途徑進行專用ASIC開發,而最終的ASIC晶元,可以是FPGA/CPLD,也可以是專制的門陣列掩模晶元,FPGA/ CPLD起到了硬體模擬ASIC晶元的作用。
2.2基於EDA的FPGA/ CPLD開發
我國的電子設計技術發展到今天,將面臨一次更大意義的突破,即FPGA/CPLD (Field Programmable Gate Array,現場可編程門陣列/Complex Programmable Logic Device,復雜可編程邏輯器件)在EDA基礎上的廣泛應用。從某種意義上說,新的電子系統運轉的物理機制又將回到原來的純數字電路結構,但卻是一種更高層次的循環,它在更高層次上容納了過去數字技術的優秀部分,對(Micro Chip Unit) MCU系統是一種揚棄,在電子設計的技術操作和系統構成的整體上發生了質的飛躍。如果說MCU在邏輯的實現上是無限的話,那麼FPGA/CPLD不但包括了MCU這一特點,而且可以觸及矽片電路的物理極限,並兼有串、並行工作方式,高速、高可靠性以及寬口徑適用性等諸多方面的特點。不但如此,隨著EDA技術的發展和FPGA/CPLD在深亞微米領域的進軍,它們與MCU, MPU, DSP, A/D, D/A, RAM和ROM等獨立器件間的物理與功能界限已日趨模糊。特別是軟/硬IP晶元(知識產權晶元;intelligence Property Core,一種已注冊產權的電路設計)產業的迅猛發展,嵌入式通用及標准FPGA器件的呼之欲出,片上系統(SOC)已經近在咫尺。FPGA/CPLD以其不可替代的地位及伴隨而來的極具知識經濟特徵的IP晶元產業的崛起,正越來越受到業內人士的密切關注。
2.2.1 FPGA/CPLD簡介
FPGA和CPLD都是高密度現場可編程邏輯晶元,都能夠將大量的邏輯功能集成於一個單片集成電路中,其集成度已發展到現在的幾百萬門。復雜可編程邏輯器件CPLD是由PAL (Programmable Array Logic,可編程陣列邏輯)或GAL (Generic Array Logic,通用陣列邏輯)發展而來的。它採用全局金屬互連導線,因而具有較大的延時可預測性,易於控制時序邏輯;但功耗比較大。現場可編程門陣列(FPGA)是由可編程門陣列(MPGA)和可編程邏輯器件二者演變而來的,並將它們的特性結合在一起,因此FPGA既有門陣列的高邏輯密度和通用性,又有可編程邏輯器件的用戶可編程特性。FPGA通常由布線資源分隔的可編程邏輯單元(或宏單元)構成陣列,又由可編程Ir0單元圍繞陣列構成整個晶元。其內部資源是分段互聯的,因而延時不可預測,只有編程完畢後才能實際測量。
CPLD和FPGA建立內部可編程邏輯連接關系的編程技術有三種:基於反熔絲技術的器件只允許對器件編程一次,編程後不能修改。其優點是集成度、工作頻率和可靠性都很高,適用於電磁輻射干擾較強的惡劣環境。基於EEPROM存儲器技術的可編程邏輯晶元能夠重復編程100次以上,系統掉電後編程信息也不會丟失。編程方法分為在編程器上編程和用下載電纜編程。用下載電纜編程的器件,只要先將器件裝焊在印刷電路板上,通過PC, SUN工作站、ATE(自動測試儀)或嵌入式微處理器系統,就能產生編程所用的標准5V, 3.3V或2.5V邏輯電平信號,也稱為ISP (In System Programmable)方式編程,其調試和維修也很方便。基於SRAM技術的器件編程數據存儲於器件的RAM區中,使之具有用戶設計的功能。在系統不加電時,編程數據存儲在EPROM、硬碟、或軟盤中。系統加電時將這些編程數據即時寫入可編程器件,從而實現板級或系統級的動態配置。
2.2.2基於EDA工具的FPGA/CPLD開發流程
FPGA/CPLD的開發流程:設計開始首先利用EDA工具的文本或圖形編輯器將設計者的設計意圖用文本方式(如VHDL, Verilog-HDL程序)或圖形方式(原理圖、狀態圖等)表達出來。完成設計描述後即可通過編譯器進行排錯編譯,變成特定的文本格式,為下一步的綜合準備。在此,對於多數EDA軟體來說,最初的設計究竟採用哪一種輸入形式是可選的,也可混合使用。一般原理圖輸入方式比較容易掌握,直觀方便,所畫的電路原理圖(請注意,這種原理圖與利用PROTEL畫的原理圖有本質的區別)與傳統的器件連接方式完全一樣,很容易為人接受,而且編輯器中有許多現成的單元器件可資利用,自己也可以根據需要設計元件(元件的功能可用HDL表達,也可仍用原理圖表達)。當然最一般化、最普適性的輸入方法是HDL程序的文本方式。這種方式最為通用。如果編譯後形成的文件是標准VHDL文件,在綜合前即可以對所描述的內容進行模擬,稱為行為模擬。即將設計源程序直接送到VHDL模擬器中模擬。因為此時的模擬只是根據VHDL的語義進行的,與具體電路沒有關系。在模擬中,可以充分發揮VHDL中的適用於模擬控制的語句,對於大型電路系統的設計,這一模擬過程是十分必要的,但一般情況下,可以略去這一步驟.
圖2-2 FPGA / CPLD開發流程
設計的第三步是綜合,將軟體設計與硬體的可實現性掛鉤,這是將軟體轉化為硬體電路的關鍵步驟。綜合器對源文件的綜合是針對某一FPGA/CPLD供應商的產品系列的,因此,綜合後的結果具有硬體可實現性。在綜合後,HDL綜合器一般可生成EDIF, XNF或VHDL等格式的網表文件,從門級來描述了最基本的門電路結構。有的EDA軟體,具有為設計者將網表文件畫成不同層次的電路圖的功能。綜合後,可利用產生的網表文件進行功能模擬,以便了解設計描述與設計意圖的一致性。功能模擬僅對設計描述的邏輯功能進行測試模擬,以了解其實現的功能是否滿足原設計的要求,模擬過程不涉及具體器件的硬體特性,如延遲特性。一般的設計,這一層次的模擬也可略去。綜合通過後必須利用FPGA/CPLD布局/布線適配器將綜合後的網表式文件針對某一具體的目標器件進行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優化、布局布線。適配完成後,EDA軟體將產生針對此項設計的多項結果:1適配報告:內容包括晶元內資源分配與利用、引腳鎖定、設計的布爾方程描述情況等;2時序模擬用網表文件;3下載文件,如JED或POF文件;4適配錯誤報告等。時序模擬是接近真實器件運行的模擬,模擬過程中己將器件硬體特性考慮進去了,因此模擬精度要高得多。時序模擬的網表式文件中包含了較為精確的延遲信息。如果以上的所有過程,包括編譯、綜合、布線/適配和行為模擬、功能模擬、時序模擬都沒有發現問題,即滿足原設計的要求,就可以將適配器產生的配置/下載文件通過FPGA/CPLD編程器或下載電纜載入目標晶元FPGA或CPLD中,然後進入如圖1-2所示的最後一個步驟:硬體模擬或測試,以便在更真實的環境中檢驗設計的運行情況。這里所謂的硬體模擬,是針對ASIC設計而言的。在ASIC設計中,比較常用的方法是利用FPGA對系統的設計進行功能檢測,通過後再將其VHDL設計以ASIC形式實現;而硬體測試則是針對FPGA或CPLD直接用於電路系統的檢測而言的。
2.2.3用FPGA/CPLD進行開發的優缺點
我們認為,基於EDA技術的FPGA/CPLD器件的開發應用可以從根本上解決MCU所遇到的問題。與MCU相比,FPGA/CPLD的優勢是多方面的和根本性的:
1.編程方式簡便、先進。FPGA/CPLD產品越來越多地採用了先進的IEEE 1149.1邊界掃描測試(BST)技術(由聯合測試行動小組,JTAG開發)和ISP(在系統配置編程方式)。在+5V工作電平下可隨時對正在工作的系統上的FPGA/CPLD進行全部或部分地在系統編程,並可進行所謂菊花鏈式多晶元串列編程,對於SRAM結構的FPGA,其下載編程次數幾乎沒有限制(如Altera公司的FLEXI 10K系列)。這種編程方式可輕易地實現紅外編程、超聲編程或無線編程,或通過電話線遠程在線編程。這些功能在工控、智能儀器儀表、通訊和軍事上有特殊用途。
2.高速。FPGA/CPLD的時鍾延遲可達納秒級,結合其並行工作方式,在超高速應用領域和實時測控方面有非常廣闊的應用前景。
3.高可靠性。在高可靠應用領域,MCU的缺憾為FPGA/CPLD的應用留下了很大的用武之地。除了不存在MCU所特有的復位不可靠與PC可能跑飛等固有缺陷外,FPGA/CPLD的高可靠性還表現在幾乎可將整個系統下載於同一晶元中,從而大大縮小了體積,易於管理和屏蔽。
4.開發工具和設計語言標准化,開發周期短。由於FPGA/CPLD的集成規模非常大,集成度可達數百萬門。因此,FPGA/ CPLD的設計開發必須利用功能強大的EDA工具,通過符合國際標準的硬體描述語言(如VHDL或Verilog-HDL)來進行電子系統設計和產品開發。由於開發工具的通用性、設計語言的標准化以及設計過程幾乎與所用的FPGA/ CPLD器件的硬體結構沒有關系.
所以設計成功的各類邏輯功能塊軟體有很好的兼容性和可移植性,它幾乎可用於任何型號的FPGA/ CPLD中,由此還可以知識產權的方式得到確認,並被注冊成為所謂的IP晶元,從而使得片上系統的產品設計效率大幅度提高。由於相應的EDA軟體功能完善而強大,模擬方式便捷而實時,開發過程形象而直觀,兼之硬體因素涉及甚少,因此可以在很短時間內完成十分復雜的系統設計,這正是產品快速進入市場的最寶貴的特徵。美國TI公司認為,一個ASIC 80%的功能可用IP晶元等現成邏輯合成。EDA專家預言,未來的大系統的FPGA/CPLD設計僅僅是各類再應用邏輯與IP晶元的拼裝,其設計周期最少僅數分鍾。
5.功能強大,應用廣闊。目前,FPGA/ CPLD可供選擇范圍很大,可根據不同的應用選用不同容量的晶元。利用它們可實現幾乎任何形式的數字電路或數字系統的設計。隨著這類器件的廣泛應用和成本的大幅度下降,FPGA/CPLD在系統中的直接應用率正直逼ASIC的開發。同時,FPGA/CPLD設計方法也有其局限性。這主要體現在以下幾點:
(1).FPGA/CPLD設計軟體一般需要對電路進行邏輯綜合優化((Logic段Synthesis & Optimization),以得到易於實現的結果,因此,最終設計和原始設計之間在邏輯實現和時延方面具有一定的差異。從而使傳統設計方法中經常採用的一些電路形式(特別是一些非同步時序電路)在FPGA/CPLD設計方法中並不適用。這就要求設計人員更加了解FPGA/CPLD設計軟體的特點,才能得到優化的設計;
(2).FPGA一般採用查找表(LUT)結構(Xilinx), AND-OR結構(Altera)或多路選擇器結構(Actel),這些結構的優點是可編程性,缺點是時延過大,造成原始設計中同步信號之間發生時序偏移。同時,如果電路較大,需要經過劃分才能實現,由於引出端的延遲時間,更加大了延遲時間和時序偏移。時延問題是ASIC設計當中常見的問題。要精確地控制電路的時延是非常困難的,特別是在像FPGA/CPLD這樣的可編程邏輯當中。
(3). FPGA/CPLD的容量和I/O數目都是有限的,因此,一個較大的電路,需經邏輯劃分((Logic Partition)才能用多個FPGA/CPLD晶元實現,劃分演算法的優劣直接影響設計的性能;
(4).由於目標系統的PCB板的修改代價很高,用戶一般希望能夠在固定的引 分配的前提下對電路進行修改。但在晶元利用率提高,或者晶元I/O引出端很多的情況下,微小的修改往往會降低晶元的流通率;
(5).早期的FPGA晶元不能實現存儲器、模擬電路等一些特殊形式的電路。最新的一些FPGA產品集成了通用的RAM結構。但這種結構要麼利用率不高,要麼不完全符合設計者的需要。這種矛盾來自於FPGA本身的結構局限性,短期內很難得到很好的解決。
6.盡管FPGA實現了ASIC設計的硬體模擬,但是由於FPGA和門陣列、標准單元等傳統ASIC形式的延時特性不盡相同,在將FPGA設計轉向其他ASIC設計時,仍然存在由於延時不匹配造成設計失敗的可能性。針對這個問題,國際上出現了用FPGA陣列對ASIC進行硬體模擬的系統(如Quicktum公司的硬體模擬系統)。這種專用的硬體模擬系統利用軟硬體結合的方法,用FPGA陣列實現了ASIC快速原型,接入系統進行測試。該系統可以接受指定的測試點,在FPGA陣列中可以直接觀測(就像軟體模擬中一樣),所以大大提高了模擬的准確性和效率。
2.3硬體描述語言(HDL)
硬體描述語言(HDL)是相對於一般的計算機軟體語言如C, Pascal而言的。HDL是用於設計硬體電子系統的計算機語言,它描述電子系統的邏輯功能、電路結構和連接方式。設計者可以利用HDL程序來描述所希望的電路系統,規定其結構特徵和電路的行為方式;然後利用綜合器和適配器將此程序變成能控制FPGA和CPLD內部結構、並實現相應邏輯功能的門級或更底層的結構網表文件和下載文件。硬體描述語言具有以下幾個優點:a.設計技術齊全,方法靈活,支持廣泛。b.加快了硬體電路的設計周期,降低了硬體電路的設計難度。c.採用系統早期模擬,在系統設計早期就可發現並排除存在的問題。d.語言設計可與工藝技術無關。e.語言標准,規范,易與共享和復用。就FPGA/CPLD開發來說,VHDL語言是最常用和流行的硬體描述語言之一。本次設計選用的就是VHDL語言,下面將主要對VHDL語言進行介紹。
2.3.1 VHDL語言簡介
VHDL是超高速集成電路硬體描述語言的英文字頭縮寫簡稱,其英文全名 是Very-High -Speed Integrated Circuit Hardware Description Language。它是在70- 80年代中由美國國防部資助的VHSIC(超高速集成電路)項目開發的產品,誕生於1982年。1987年底,VHDL被IEEE(The Institute of Electrical and產Electronics Engineers)確認為標准硬體描述語言。自IEEE公布了VHDL的標准版本((IEEE std 1076-1987標准)之後,各EDA公司相繼推出了自己的VHDL設計環境。此後,VHDL在電子設計領域受到了廣泛的接受,並逐步取代了原有的非標准HDL。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統描述能力上擴展VHDL的內容,公布了新版本的VHDL,即ANSI/IEEE std1076,1993版本。1996年IEEE 1076.3成為VHDL綜合標准。
VHDL主要用於描述數字系統的結構、行為、功能和介面,非常適用於可編程邏輯晶元的應用設計。與其它的HDL相比,VHDL具有更強的行為描述能力,從而決定了它成為系統設計領域最佳的硬體描述語言。強大的行為描述能力是避開具體的器件結構,從邏輯行為上描述和設計大規模電子系統的重要保證。就目前流行的EDA工具和VHDL綜合器而言,將基於抽象的行為描述風格的VHDL程序綜合成為具體的FPGA和CPLD等目標器件的網表文件己不成問題。
VHDL語言在硬體設計領域的作用將與C和C++在軟體設計領域的作用一樣,在大規模數字系統的設計中,它將逐步取代如邏輯狀態表和邏輯電路圖等級別較低的繁瑣的硬體描述方法,而成為主要的硬體描述工具,它將成為數字系統設計領域中所有技術人員必須掌握的一種語言。VHDL和可編程邏輯器件的結合作為一種強有力的設計方式,將為設計者的產品上市帶來創紀錄的速度
2.3.2 VHDL語言設計步驟
利用VHDL語言進行設計可分為以下幾個步驟:
1.設計要求的定義。在從事設計進行編寫VHDL代碼之前,必須先對你的設計目的和要求有一個明確的認識。例如,你要設計的功能是什麼?對所需的信號建立時間、時鍾/輸出時間、最大系統工作頻率、關鍵的路徑等這些要求,要有一個明確的定義,這將有助於你的設計,然後再選擇適當的設計方式和相應的器件結構,進行設計的綜合。
2.用VHDL語言進行設計描述。
(1)應決定設計方式,設計方式一般說來有三種:自頂向下設計,自底向上設計,平坦式設計。
前兩種方式包括設計階層的生成,而後一種方式將描述的電路當作單模塊電路來進行的。自頂向下的處理方式要求將你的設計劃分成不同的功能元件,每個元件具有專門定義的輸入和輸出,並執行專門的邏輯功能。首先生成一個由各功能元件相互連接形成的頂層模塊來做成一個網表,然後再設計其中的各個元件。而自底向上的處理方法正好相反。平坦式設計則是指所有功能元件均在同一層和同一圖中詳細進行的。
(2)編寫設計代碼。編寫VHDL語言的代碼與編寫其它計算機程序語言的代碼有很大的不同,你必須清醒地認識到你正在設計硬體,編寫的VHDL代碼必須能夠綜合到採用可編程邏輯器件來實現的數字邏輯之中。懂得EDA工具中模擬軟體和綜合軟體的大致工作過程,將有助於編寫出優秀的代碼。
3.用VHDL模擬器對VHDL原代碼進行功能模擬。對於大型設計,採用VHDL模擬軟體對其進行模擬可以節省時間,可以在設計的早期階段檢測到設計中的錯誤,從而進行修正,以便盡可能地減少對設計日程計劃的影響。因為對於大型設計,其綜合優化、配置往往要花費好幾個小時,在綜合之前對原代碼模擬,就可以大大減少設計重復和修正錯誤的次數和時間。但對於小型設計,則往往不需要先對VHDL原代碼進行模擬,即使做了,意義也不大。因為對於小型設計,其綜合優化、配置花費的時間不多,而且在綜合優化之後,你往往會發現為了實現性能目標,將需要修改你的設計。在這種情況下,用戶事先在原代碼模擬時所花費的時間是毫無意義的,因為一旦改變設計,還必須重新再做模擬。
4.利用VHDL綜合優化軟體對VHDL原代碼進行綜合優化處理。選擇目標器件、輸入約束條件後,VHDL綜合優化軟體工具將對VHDL原代碼進行處理,產生一個優化了的網路表,並可以進行粗略的時序模擬。綜合優化軟體工具大致的處理過程如下:首先檢測語法和語意錯誤;然後進行綜合處理,對CPLD器件而言,將得到一組工藝專用邏輯方程,對FPGA器件而言,將得到一個工藝專用網表;最後進行優化處理,對CPLD的優化通常包括將邏輯化簡為乘積項的最小和式,降低任何給定的表達式所需的邏輯塊輸入數,這些方程進一步通過器件專用優化來實現資源配置。對FPGA的優化通常也需要用乘積項的和式來表達邏輯,方程系統可基於器件專用資源和驅動優化目標指引來實現因式分解,分解的因子可用來對實現的有效性進行評估,其准則可用來決定是對方程序系統進行不同的因式分解還是保持現有的因子。准則通常是指分享共同因子的能力,即可以被暫存,以便於和任何新生成的因子相比較。
5.配置。將綜合優化處理後得到的優化了的網路表,安放到前面選定的CPLD或FPGA目標器件之中,這一過程稱為配置。在優化
㈣ 用quartus ii檢驗一個verilog程序是否正確應該怎麼做看軟體的哪些部分
(1)把程序輸到quatus當中,
(2)先進行編譯(compile),看有沒有語法錯誤;
(3)然後進行模擬,看知漏有沒有邏輯錯誤;
(3)下載到fpga當中,最後看硬體能不能實現;
給你推薦兩本好書:
一是夏宇聞那本書,理論講的很好;備猛弊
二是周潤景那本書,比較側重於quartus2軟仿族件的使用;
㈤ FPGA用,modelsim 模擬時總是出現錯誤,下面是錯誤原因,請各位大牛指教
檢查三個方面吧。坦運
第一:Modelsim是不是真的破解好了,我用睜橋的版本每次都得該電腦的時間到2008
第二:確定是個.v文件,因為modelsim只能處理.v不能處理圖形
第三:setting---simulation那裡要選擇modelsim altera 什麼的有沒有設置好。還有tools---option 那裡選擇讓早梁modelsim.exe的路徑。
如果不是這些問題的話就是代碼本身存在問題了