本文主要講解演示下如何設計 底層VHDL語言設計,頂層原理圖設計的混合輸入方式
基於設計平臺:Quartus II 13.1
基於設計課題:0-9999加法計數器的設計,採用混合輸入方式
底層VHDL語言完成十進制計數器
1.創建工程文件,在工程文件下新建文件等編譯環境的搭建在這裏就不過多累贅講述
2.底層VHDL語言設計十進制計數器代碼如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
--聲明程序包
entity cnt10 is
port (clk,clr,ena: in std_logic;
cq: out std_logic_vector(3 downto 0);
co: out std_logic);
end cnt10;
--聲明實體
architecture bhv of cnt10 is
signal cq1: std_logic_vector(3 downto 0);
--定義保存計數值的信號cq1
begin
process(clk,clr,ena) is
--計數控制進程
begin
if clr = '1' then cq1<="0000";
--計數器異步復位
elsif clk'event and clk = '1' then
--檢測時鐘上升沿
if ena = '1' then
--檢測是否允許計數(同步使能)
if cq1 = "1001" then
cq1<="0000";
--等於9,計數值清零
else
cq1<=cq1+'1';
--允許計數
end if;
end if;
end if;
end process;
process(clk,cq1) is
--進位控制進程
begin
if clk'event and clk = '1' then
if cq1 < "1001" then
co<='0';
else
co<='1';
--計數大於9,輸出進位信號
end if;
end if;
end process;
cq<=cq1;
--將計數的中間結果cq1,傳送到計數器cnt10的輸出端口cq
end bhv;
3.編譯程序,檢查是否報錯;無誤後,如果工程下面存在多個文件,將其針對使用的文件進行置頂操作,如下圖所示:
4.接下來進行將底層VHDL語言設計的器件導出符號文件,如下圖:
運行無誤即成功
頂層原理圖設計
5.在工程下面新建原理圖文件,如下圖所示:
6.放置底層語言設計導出的符號文件,如下圖所示:
7.然後,利用四個十進制計數器搭建成範圍是0~9999的加法計數器,如下圖所示:
可以用導線將端口對應連接,如果圖方便,簡潔,也可以隔空連接,如圖所示,在端口處連出一端導線,不連接另外一端,即形成叉號,然後將對應端口也連出一端導線,不連接另外一端,形成叉號,將對應兩端的導線命成相同的名字,即爲默認連接。
需要注意的是,輸出端口要有總線接出,在命名總線時,格式爲a[0…3],寫成[0…3]是錯誤的
8.設計好原理圖後,運行檢查是否報錯,如下圖:
注意這裏運行,需要將原理圖文件同樣進行置頂操作,操作如之前步驟一樣。
9.經過以上操作,頂層原理圖,底層語言文本設計就完成了,現在進行仿真操作,檢查是否實現功能,如圖下:
新建仿真文件
依次搭建仿真環境,鼠標右擊空白處
隨後依次點擊ok,ok即可
10.配置仿真條件,驗證仿真結果
可以進行0~9999十進制計數,功能實現