目录
1. 示例说明
本例是一个保存位向量的寄存器。它受一个时钟控制,只有在时钟的上升沿才进行操作。
选择器器有 1个输入端口:pin
1个时钟信号:clk
1个控制端口cnt1
1个输出端口pout
其中输入端口和输出端口in1、in2、pout的类型为位向量;
控制端口cnt1则是位。
此寄存器的功能是在时钟上升沿,如果控制位cnt1='1',将输入信号pin送到寄存器中,由pout输出。
如果pin发生变化,而输出条件不满足的时候,则寄存器仍然保存上次的结果,pout输出的也是上一次pin的值。
2. VHDL源码
源码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
-- 保存位向量的寄存器
entity EG6 is
port(
pin: IN STD_LOGIC_VECTOR(15 DOWNTO 0);
cnt1: IN bit;
pout: out STD_LOGIC_VECTOR(15 DOWNTO 0);
clk: bit
);
end EG6;
architecture func of EG6 is
begin
process
begin
wait until clk'event and clk = '1';
if(cnt1 = '1') then pout <= pin;
end if;
end process;
end func;
3. 运行结果
4. 功能仿真结果