概述
设计一个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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复