我是靠谱客的博主 傻傻火,最近开发中收集的这篇文章主要介绍设计一个8位双向循环移位寄存器vhdl,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

设计一个8位双向循环移位寄存器vhdl

状态表如下:

CLKRESETLOADM工作状态

×

0

×

×

复位

11

×

置数

101左移

100右移

(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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部