Quartus ii 軟件仿真基本流程(使用VHDL)
文章首發於我的個人博客
這是VHDL系列教程的第一個教程。所謂教程,其實也就是記錄我本人在學習過程中遇到的問題和學習內容的筆記,分享在這裏供其他初學者參考,如果博客中出現任何錯誤或不嚴謹的地方,您可以在下方評論區指出來,您的反饋是對我最大的幫助,萬分感謝。
這篇博客主要介紹使用Quartus ii軟件進行仿真的步驟,由於是第一篇所以過程詳細但有些冗餘(問題不大),之後的教程應該專注於VHDL語言本身以及Quartus ii的一些使用技巧。
本教程將用VHDL實現D觸發器來走一遍Quartus ii仿真的流程。
首先,打開Quartus ii仿真軟件,新建一個工程。
點擊Next;
這三個名稱都應該相同;
與上一步的文件名也相同;
這裏需要選擇要編譯對應的硬件設備。但是如果不用FPGA硬件仿真可以直接默認,對方真影響不是很大,但如果學校有FPGA板子則儘量選擇板子對應的型號;
工程新建完成之後,再創建一個VHDL文件;
如果剛剛新建的VHDL沒有保存,可以再File裏選擇另存爲;
VHDL文件名和工程名相同;
在剛剛新建的VHDL文件中寫入D觸發器的實現代碼(這裏不做代碼的講解),然後點擊小三角選擇編譯;
-- D trigger achievement
library ieee;
use ieee.std_logic_1164.all;
ENTITY Dtrigger IS PORT(
D, clk : IN STD_LOGIC;
Q : OUT STD_LOGIC
);
END ENTITY Dtrigger;
ARCHITECTURE one of Dtrigger is
SIGNAL sig_save : STD_LOGIC;
BEGIN
PROCESS(clk)
BEGIN
if clk'event and clk='1' then
-- == rising_edge(clk) then
sig_save <= D;
end if;
END PROCESS;
Q <= sig_save;
END ARCHITECTURE one;
新建一個波形仿真文件;
新建波形仿真文件之後,在Edit
中選擇End Time
設置仿真終止時間,默認爲1us,時間有點短,改大一點;
在這裏我設置爲51us;
可以使用Ctrl+滾輪放縮
。之後雙擊Name
區域導入變量;
點擊list按鈕就會顯示出Entity(實體)定義的所有變量,之後全部導入即可;
之後在波形文件中畫出clk時序波形和輸入變量D的波形,在畫的時候我的經驗是選擇左下角的Grid
,這樣跟容易畫;
在Processing
下拉菜單的Simulator Tool
裏選擇仿真方式;
選擇Timing,即時序仿真;選擇Functional,即功能仿真;這裏選擇Timing;
點擊波形仿真按鈕;仿真結束可以在仿真圖裏看到,當clk時鐘信號爲上升沿
的時候,輸出信號Q會隨輸入信號D的變化而變化,clk時鐘信號爲0
的時候,保持原狀態;
選擇Tools
下拉菜單裏的Netlist Viewers
–>RTL Viewer
可以查看VHDL描述的硬件電路。(其實在VHDL編譯之後就可以查看)
硬件電路如下圖所示。
好的,以上就是本篇教程的全部內容了,以後的教程跟多的內容會是VHDL語言本身以及Quartus ii的使用技巧了。
End.