VHDL從一個例子開始-----鎖存器

VHDL的學習從一個例子開始學起-----鎖存器的設計。鎖存器是一個簡單的數字電路,下圖是1位鎖存器的原理圖。

                                                                                  

圖1 1位鎖存器的原理圖

其中,引腳D是鎖存器的輸入,ENV是鎖存器的使能引腳,Q是鎖存器的輸出引腳。當ENV=1時,Q=D;當ENV=0時,Q爲上次D的輸入。下面是VHDL的程序:

--IEEE庫引用說明
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
--實體聲明
ENTITY Latch is
Port(D,ENV:IN STD_LOG;
        Q:OUT STD_LOGIC;);
END ENTITY Latch ;
--結構體聲明
ARCHITECTURE one OF Latch is
--信號的聲明
    signal  sig:STD_LOGIC;
    begin
	--進程的聲明
        PROCESS(D,ENV)
            begin
            if(env='1') then
                sig<=D;
             end if;
              Q<=sig;
             end process;
end architecture on;
現在對上面的程序說明下:

(1)IEEE庫:
它包含了描述器件的輸入、輸出端口數據類型,即端口信號的取值類型或範圍中將要用到的IEEE 的標準庫中的STD_LOGIC_1164 程序包。使用LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL來引用。如果學過C語言,可以很好理解,它類似與C語言中的#include<*******>語句。

(2)實體:

          實體相當於電路中的元器件 , 它是一個獨立的完整的模塊,它描述的 “元器件”的接口信息。通過PORT來定義元器件的 引腳。IN 引腳定義爲輸入,OUT定義爲輸出,INOUT 定義爲輸入輸出。

(3)結構體

結構體是VHDL 程序中不可或缺的三個部分之一,另外兩個是IEEE庫和實體。結構體描述了程序的邏輯功能,其相當於是元器件的內部電路。結構體中定義了一個signal和Process。signal的功能是存儲 外部信號D的數據位。Process後面會詳述。在PROCESS中有一個IF判斷語句,器邏輯功能與C語言中的if語句相同。當D或ENV其中有一個輸入變化時,程序便會執行一次PROCESS中的語句。當ENV=‘1’時sig就被賦值爲D。“sig<=D“表示將D賦值給sig。當ENV不等於‘1’時便會退出IF語句,然後執行Q<=sig這樣Q就會輸出D之前輸入的數據位。

 總結:

本文從一個比較簡單的例子--鎖存器開始介紹了VHD程序的結構。後面會詳細介紹VHDL的數據結構以及執行語句,狀態機的設計。

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