用VerilogHDL設計一個與門邏輯,並進行前仿和后仿


執行菜單命令【File】-【New Project Wizard…】,創建工程向導。

 

What is the working directory for this project?下選擇項目存儲地址工作目錄,What is the name of this project?下填寫工程名,最后一欄填寫頂層文件名。

 

 

加已存在文件(可選),在【File name】下選擇已經存在的工程項目,利用【Add】或【Add all】命令添加文件到新工程,點擊【Next】

 

3、選擇器件,【Device family】-【Family】下選擇你要使用的FPGA芯片系列,這里我選擇ALtera公司的CycloneV系列(因為個人用的是友晶的DE1-SOC,芯片型號依個人不同而不同),並在【devices】下選擇具體芯片型號,點擊【Next】

 

設定第三方工具,Design Entry/Synthesis】選擇邏輯綜合工具,這里可以不填,直接使用Quartus默認工具,【Simulation】下選擇仿真工具,這里一般需要quartus都配套安裝了Modelsim,點擊【Next】

顯示設置信息,顯示了項目路徑,項目名,頂層文件,芯片系列型號等設置信息,在檢察符合需要后點擊【Finish】,完成向導新建工作。

 

至此,就完成了一個工程的建立,后面的就是為了工程添加文件。

 

 

 

用框圖原理圖作為文件頂層(此文件可以直接用代碼編程完成,此處是借此講解如何將硬件原理圖轉化為程序文件)

1、選擇文件類型

 

立刻另存為,給頂層文件起名字(這里的名字要和工程名一樣)並為它定位

 

選擇BLOCK TOOL,繪制一個block

 

右鍵繪制出來的block,選擇屬性

block命名

 

 

添加定義端口

 

用自帶的EDA工具生成一段代碼的模板

 

刪掉一些注釋,頂層文件就生成了

 

在生成文件的基礎上,添加自己的模塊代碼

將文件轉變為符號

 完成后可以在symbol tool看到我們的工程符號

 

 

點擊生成管腳可以將建立的模型擴展出來

通過對文件進行編譯。

至此一個工程項目就建立完成了。下面就需要編寫它的仿真文件,對輸出信號進行分析。

 

編寫testbench

新建verlog文件

保存,用_tb表示testbench

 

 

編寫一個時標,時標是有一個分數組成的,分子是當前文件所用的時間單位,分母是分辨率。(最開始的符號是  `,就是esc鍵下面那個符號)

將待測試的模型裝載到testbench,將模型的例化頭貼到testbench,並為他起一個實例的名稱,用.操作符做接口的裝配,

申明要用到的信號,並與電路模型連接

 

編寫測試信號

整體代碼如下

 

`timescale 1ns/1ns
module apt_get_tb;

reg a,b;
wire c;
apt_get u1(
.a(a),
.b(b),
.c(c)

);

initial
begin
a=0;b=0;
#20 a=0;b=1;
#20 a=1;b=0;
#20 a=1;b=1;
end
endmodule

至此,測試平台就完成了。

 

testbenchmodelsim仿真

assignmentsetting中對設置進行更改

設置中的simulation進行如下設置后點擊testbench

 

 

添加testbench及仿真結束時間,(filename里添加的是.v文件不是.bak文件)

 

 

 

 

最后在quartus中設置modelsim的路徑,quartus->tools->option->EDA tool options ,在右邊選擇modelsim_altera的安裝路徑

 

這里要確保自己的quartus和modelsim都是已經取得了lincense的,否則是調用不了modelsim的

前仿

 

 

軟件自動跳轉modelsim生成仿真圖形,通過按鍵盤上的F鍵可以看他的全局圖

修改過的testbench文件保存后,可以按方向鍵上鍵,調用用過的.do 文件,即可重新仿真。

至此,前仿的驗證完成。

 

 

后仿

由於框圖原理圖不能作為一個國際標志在平台中互相傳遞,所以需要用系統工具將圖形改為代碼

 

完成后,將生成的文件加入到file

為頂層的代碼編寫一個testbench

 

 

之后的步驟與前仿相同,但應理解的是此時做的是頂層的仿真,是后仿

 

 綜合編譯后,就可以做頂層的前仿和后仿了,前仿按照之前的來,這里演示后仿

 

可以看到后仿與前仿存在着時序上的延遲,這是器件的延遲,這便是一個更真實的仿真結果。

(需要注意的是cyclone V系列的芯片已經不再支持時序仿真了,只能跑功能仿真,如果芯片類型選的是Cyclone V系列的話,它就會一致彈出

Rerun the EDA Netlist Writer的對話框,這點需要注意,網上搜索說這里需要改setting或者說start EDA Netlist Writer都是坑爹的,博主就被這
些坑貨誤導了一天來找問題,希望能夠給大家個借鑒,修改芯片型號進行后仿,雖然也沒意義了,但還是把圖給貼一下,讓大家了解下前仿與
后仿的區別

 

 

前仿看到的是邏輯功能間的關系,后仿不僅可以看到邏輯功能間的關系,還能看到他們時序間的關系。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM