明德揚至簡設計法--verilog綜合器和仿真器
阿新 • • 發佈:2018-10-10
解決 nag 如果 仿真器 aca 試用 核心 電腦 部分
Verilg是硬件描述語言,顧名思義,就是用代碼的形式描述硬件的功能。而我們最終是要在電路上實現該功能的。當Verilog描述出硬件功能後,我們需要綜合器對Verilog代碼進行解釋,將代碼轉化成實際的電路來表示,最終實際的電路,我們稱之為網表。這種將Verilog代碼轉成網表的工具,就是綜合器。上圖左上角是一份verilog代碼,該代碼描述了一個加法器功能。該代碼經過綜合器解釋後,轉化成一個加法器電路。QUARTUS、ISE和VIVADO都是綜合器,集成電路常用的綜合器是DC。
Verilg是硬件描述語言,顧名思義,就是用代碼的形式描述硬件的功能。而我們最終是要在電路上實現該功能的。當Verilog描述出硬件功能後,我們需要綜合器對Verilog代碼進行解釋,將代碼轉化成實際的電路來表示,最終實際的電路,我們稱之為網表。這種將Verilog代碼轉成網表的工具,就是綜合器。上圖左上角是一份verilog代碼,該代碼描述了一個加法器功能。該代碼經過綜合器解釋後,轉化成一個加法器電路。QUARTUS、ISE和VIVADO都是綜合器,集成電路常用的綜合器是DC。
我們在FPGA設計的過程中,不可避免會出現各種BUG。如果我們編寫好代碼,綜合成電路,燒寫到FPGA後,才看到問題,此時去定位問題就會非常地困難了。在綜合前,我們可以在電腦裏對代碼進行仿真測試一下,把BUG找出來解決,最後才燒寫進FPGA。我們可以認為,沒有經過仿真驗證的代碼,一定是存在BUG的。
為了模擬真實的情況,我們需要編寫測試文件。該文件也是用verilog編寫的,描述了仿真對象的輸入激勵情況。該激勵力求模仿最真實的情況,產生最將近的激勵信號,將該信號的波形輸入給仿真對象,查看仿真對象的輸出是否與預期一致。
為了做仿真驗證,我們編寫了測試文件。將測試文件和被測試對象加入到仿真器中。仿真器對測試文件和被測試對象的代碼進行解釋。根據測試文件,產生測試激勵,輸入給被測試對象;根據補測試對象的代碼,產生被測試對象的輸出。需要註意的是,在仿真過程中,沒有將代碼轉成電路,仿真器只是對代碼進行仿真驗證。至於該電路是否可轉成電路,仿真器是不關心的。
常用的仿真器是MODELSIM和VCS等。
由此可見,verilog的代碼不僅可以描述電路,還可以用於測試。事實上,Verilog定義的語法非常之多,但絕大部分都是為了仿真測試來使用的。只有少部分才是用於電路設計,詳細可以參考本書的“可綜合邏輯設計”一節。
Verilog中用於設計的語法,才是學習的重點。掌握好設計的語法,熟練應用於各種復雜的項目,這是技能的核心。其他測試用的語法,需要時查找和參考就已經足夠了。
本書著重點,是用於本科、研究生的教學用途,因此將重點講解設計用的語法。
在本章講解Verilg時,將從綜合器和仿真器角度,解釋語法的用途,讀者可以明白要學習的關鍵內容。
明德揚至簡設計法--verilog綜合器和仿真器