異步復位端(rst)並采用時鍾(clk)上升沿觸發的D觸發器(DFF)。當rst='1'時,無論時鍾是什么狀態,D觸發器的輸出
(q)都將被置為低電平。否則,只要時鍾信號出現上升沿,輸入的值就傳遞給輸出(也就是說,D觸發器是靠時鍾的上升沿
觸發的)。其原理圖
程序:
library ieee;
use ieee.std_logic_1164.all;--庫聲明。其中std和work庫是默認的,不必進行聲明。
entity dff is
port(
d,clk,rst:in std_logic;--輸入端口列表(輸入端口的信號模式只能是in),輸入信號類型std_logic。
q:out std_logic
);
end;
architecture bhv of dff is
begin
process(rst,clk)--每當敏感信號列表中的信號發生變化時,process就執行一次。
begin
if(rst='1') then
q<='0';--無論clk是什么狀態,只要rst=‘1’,輸出都將復位(異步復位)
elsif (clk'event and clk='1') then--如果rst是低電平;且clk出現上升沿(clk='1'),則輸入信號將存儲在D觸發器中(q<=d)。
q<=d;
end if;
end process;
end bhv;
"<="操作符用來給信號(signal)賦值
":="用來給變量(variable)賦值。
默認情況下,entity中所有的端口都是信號。