Quartus ii 軟件仿真基本流程(使用VHDL)

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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章