📄 shift_register.vhd
字号:
-- 库声明
library IEEE;
use IEEE.STD_LOGIC_1164.all;
-- 实体声明
entity shift_register is
-- 类属参数
generic (
TOTAL_BIT : integer := 10 );
-- 端口
port (
clk : in std_logic;
reset_n : in std_logic;
din : in std_logic;
regs : out std_logic_vector(TOTAL_BIT-1 downto 0);
dout : out std_logic );
end shift_register;
--}} End of automatically maintained section
-- 结构体
architecture shift_register of shift_register is
-- 内部寄存器序列
signal shift_regs : std_logic_vector(TOTAL_BIT-1 downto 0) := (others => '1');
begin
-- 寄存器输出
regs <= shift_regs;
-- 主过程
main : process(reset_n, clk)
begin
-- 检查复位信号
if reset_n = '0' then
dout <= '1';
-- 在时钟上升沿动作
elsif rising_edge(clk) then
-- 将最高位输出到dout
dout <= shift_regs(TOTAL_BIT-1);
-- 次高位到最低位都向高位移一位
shift_regs(TOTAL_BIT-1 downto 1) <= shift_regs(TOTAL_BIT-2 downto 0);
-- 读取输入端口信号并且保存到寄存器序列的最低位
shift_regs(0) <= din;
end if;
end process;
end shift_register;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -