设计一个8位双向循环移位寄存器vhdl
状态表如下:
| CLK | RESET | LOAD | M | 工作状态 |
| × | 0 | × | × | 复位 |
| ↑ | 1 | 1 | × | 置数 |
| ↑ | 1 | 0 | 1 | 左移 |
| ↑ | 1 | 0 | 0 | 右移 |
(4)不考虑串行输出,移动不能用移位操作符。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY H2 IS
PORT(CLK,LOAD,M,RESET:IN STD_LOGIC;
DATA:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY H2;
ARCHITECTURE hbv OF H2 IS
BEGIN
PROCESS(CLK,RESET,M,LOAD)
VARIABLE Q1 : STD_lOGIC_VECTOR(7 DOWNTO 0);
BEGIN
IF RESET = '0' THEN --RESET低电平有效
Q1 := (OTHERS=>'0');
ELSIF CLK'EVENT AND CLK='1' THEN
IF LOAD = '1' THEN --预置
Q1 := DATA;
ELSE
IF M ='0' THEN --右移
Q1 := Q1(0)&Q1(7 DOWNTO 1);
ELSIF M ='1' THEN --左移
Q1 := Q1(6 DOWNTO 0)&Q1(7);
END IF;
END IF;
END IF;
Q<=Q1;
END PROCESS;
END ARCHITECTURE hbv;
最后
以上就是傻傻火最近收集整理的关于设计一个8位双向循环移位寄存器vhdl的全部内容,更多相关设计一个8位双向循环移位寄存器vhdl内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复