㈠ 我用VHDL語言編寫了一些模塊,怎麼把它們編成頂層文件,原理圖是不是編寫頂層文件的一種方法
原理圖是生成頂層文件的一種方法,但不是唯一的。也可以用硬體描述語言來描述頂層實體。
你用VHDL描述了一些模塊,那它們之間一定存在連接關系,用元件例化語句描述各個模塊的連接關系,就完成頂層描述了。
㈡ vcs生成覆蓋率時,條件編譯的頂層會被當做不同的項目,合並覆蓋率時會出錯,怎麼解決
要生成覆蓋率報告,要在編譯和模擬的時候,加入一個選項。 -cm line | fsm | tgl | cond , 指定生成針對什麼條件的覆蓋率報告。如下的makefile,就生成上述四個的覆蓋率報告。注意,編譯和模擬,都要加上-cm這個選項。執行 make vcs , make sim後,會生成simv.vdb文件夾,該文件夾下包含了覆蓋率的內容,但是我們需要將內容生成報告,這樣,才方便我們查看。生成報告,使用的是 urg命令,該命令也是屬於vcs工具裡面的-dir: 指定 .vdb文件夾的位置report: 指定生成報告的格式,報告格式有兩種,一種網頁格式,一種text格式。這里,both代表生成兩種。執行 make urg後,就會生成both文件夾。 這文件夾下的文件,就是覆蓋率報告了。打開dashboard.html。可以看到整體的一些信息。但是我們關心的是設計的,而不是testbench的。點擊hierarchy,得到層次。點擊u1,也就是設計的頂層。可以看到關於該頂層的信息。因為在頂層,都是調用各個子模塊(這里是調用 band_generaterx_tx, uart_txd模塊),所以沒有line的覆蓋率統計,但是有TOGGLE的覆蓋率統計,也就是信號的翻轉。從上面可以看出,對於rst_n信號,沒有從1->0的翻轉,而這個信號是testbench中傳遞的,因此看出,在testbench設計,對於rst_n信號產生,有bug。點擊左下角的uart_txd_1,查看該模塊的信息。 對於該設計,因為有具體的實現,所以可以看到有line的覆蓋率,toggle的覆蓋率,FSM的覆蓋率。對於line覆蓋率,從報告看出,總共有42行,覆蓋到了41行。通過查看代碼,可以知道是哪一行沒有被執行到。對於toggle覆蓋率。從報告看出,只有rst_n有問題,而這問題是testbench的的bug造成的。對於FSM的檢查。從報告看出,每個狀態都有被覆蓋到。但是從有些狀態跳轉到另外的狀態,沒有被覆蓋到。因此造成FSM的覆蓋率不高。通過查看覆蓋率報告,可以查找到設計的缺陷,從而進行修正。
㈢ 今天在Quartus II 11.0編譯時出現的問題 ,哪位大神給指教下,我的問題出在哪謝謝
頂層設計實體HILL未定義。可能是你頂層實體與體層文件沒有關聯好。
㈣ EDA中什麼情況下可以直接對頂層文件進行編譯
QuartusII 是Altera公司開發的功能最強大的PLD編譯工具,全面取代MAX+PLUS
使用步驟:
一、建立工程.
1、「File」→「New Project Wizard」開始新工程的建立設置。『NEXT』
2、指定project的路徑,和project的名稱,頂層文件的名稱(一般與工程名相同)。
3、指定project中要include 的文件。
4、選擇project中要使用的一些EDA TOOLS。
5、選擇所使用的器件的家族「family」 和具體型號。
6、『finish』 完成工程的設置。
二、輸入文件. 在工程中新建設計文件:圖形文件「Block Diagram/Schematic File」,Verilog語言文 件「VerilogHDL File」
1、完成工程文件的輸入,若為頂層文件,則文件名應該保存為與工程名相同。
2、編譯設置:「Assignment」→「Compiler Settings Wizard」→「Next」
3、根據編譯窗口的提示修改錯誤。
4、編譯後會生成編譯報告「Compilation Report」會分成如下幾項:
(1) Analysis&Synthesis語法檢查,把大電路轉成較小的元件
(2) Fitter 器件資源利用情況,引腳分配情況等
(3) Assembler 連線各元件
(4) Timing Analyzer 時間分析
三、模擬. 完成工程文件的編譯、綜合、時間、分析後就可以建立波形模擬文件進行功能模擬
1、建立模擬文件
「File」→「New」→「Other Files」→「Vector Waveform File」→「OK」
2、選擇輸入輸出引腳
Edit→「Insert Node or Bus」→「Node Finder」,在「Filter」處選擇「Pins:all」,再按下「 >>」將所有選中的引腳添加到「Seleted Nodes」框,點「OK」→「OK」完成引腳添加。可通過右鍵 修改引腳的顯示方式、屬性、初始值等參數。
3、模擬時間、柵格的設置
Edit→『End Time』 設置模擬結束的時間, 『Grid Size』設置每個柵格表示的時間。模擬時間是 以建立模擬文件時給出的結束時間為准,模擬設置「Wizards」中設定的End Time沒用。
4、模擬編譯設置
『Assignments』→『Wizards』→『Simulator Settings Wizard』→選擇當前要模擬得文件
模擬文件做好後還要將其設置為當前模擬文件,才可以開始模擬。因為有時一個工程需要建立多個 模擬文件,這就需要通過設置確定仿哪個文件了。在選擇模擬類型「Type of simulation」時,「 timing」代表考慮延時,「functional」表示功能型的模擬。
5、先編譯後模擬
『Processing』→『Start Compilation&Simulation』
6、模擬結束後會生成模擬報告「Simulation Report」
模擬結果並不是出現 在所建立得模擬文件中,在模擬報告中有獨立的模擬結果。
模擬的結果總是與當前的工程文件相對應,工程文件改變後要重新模擬後才有意義。
四、將工程模塊化,利用圖形設計文件建立更大的工程
模塊工程文件(「Block Diagram/Schematic File」或「Verilog HDL File」)編譯模擬成功後就可以 將其模塊化,然後在更高層次將各個模塊級聯起來,構成更大得工程。
1、模塊化
『File』→『Creat/Updata』→『Creat Symbol Files for Current File』 然後編譯器會自動將當前工程完整得編譯一遍,然後生產圖形模塊,放在存放當前工程的文件夾里。
2、更大的工程
(1)建立工程文件
「File」→「New」→「Device Design Files」→「Block Diagram/Schematic File」→「OK」
(2)輸入元件
右鍵→『Insert』→『Symbol』→可以在庫文件中選,也可以通過「瀏覽」將已經建立圖新模塊的 工程載入進來。
(3)連線
㈤ 頂層VHDL沒有定義是什麼錯誤啊
如果有許多VHDL源文件一起編譯,那麼需要設定其中一個作為頂層實體。
比如在QuartusII中,可以在Files視圖中的某個VHDL文件上點右鍵->Set as Top-Level Entity,前提是VHDL文件名與Entity名一致。
這里有個問題要注意:
比如在QuartusII中,你的Top-Level的VHDL文件名與Entity名不一樣,就要在Assignment->Settings->General下面手動輸入頂層Entity名,否則會報錯說頂層實體未定義之類。
其它編譯器未試過會不會出現這類問題。
㈥ Quartusii中的頂層設計實體是什麼意思
也就是把你要進行操作的那個工程放在最頂端。
因為quartus 軟體只能對頂層工程文件仍進行編譯。
如果你不把你講要進行操作的工程置於最頂層,軟體只能對你前一次的過程進行編譯。
取個例子,quartus軟體就像是Altera公司的里一棟辦公樓里的某一個部門,這個部門位於Altera公司這棟辦公樓的頂樓,quartus這個部門要處理文件時,要求其他部門親自把文件送到頂樓來,不然就不予處理,因為Altera給他的職務就是只能在你的辦公區(頂樓的那片區域)上班,而不管任何部門,不把文件親自拿到頂層來quartus你這個部門就不給他做任何事。不然quartus軟體就會一直編譯之前拿到頂層來的文件。
所以,在編譯工程時,注意置頂,不然有時候提示的錯誤都讓你丈二的和尚-----------摸不著頭腦。(*^__^*) 嘻嘻……
㈦ VHDL語言 編譯時頂層實體無法識別
你沒有給出原始描述,只給出一個錯誤提示,是無法判斷問題出在何處的。
㈧ Quartus II的編譯是不是都是從頂層模塊開始的
你說的「編譯」應該是叫「綜合」吧,別把fpga當單片機學哦
㈨ Quartus II寫的VHDL程序編譯時為什麼總說實體無定義
別聽樓上亂說,你保存程序文件的時候要把文件名用counter保存的。還有開始的時候要先創建工程project才可以的。