简易桶形移位寄存器VHDL

标题简易桶形移位寄存器

图给出了一个简单桶形移位寄存器的电路图。在这个例子中,输出值或者是输人矢量左移一位得到的结果,或者就等于输人矢量(不进行移位)。当输入矢量左移一位(sit=1)时,oup(0)=‘0’,outp(i)=inp(i-1),1≤i≤7。移位后空出的最低位将充’0’(如电路图的左下角所示)。当输人矢量不移位时,输出与输入相同。下面给出了完整的VHDL代码,其中展示了FOR/LOOP语句的使用方法。
在这里插入图片描述

---------------------------------------
library ieee;
use ieee.std_logic_1164.all;
---------------------------------------
entity barrel is
   generic (n: integer :=8);
   port(inp: in std_logic_vector(n-1 downto 0);
        shift: in integer range 0 to 1;
		outp: out std_logic_vector(n-1 downto 0)
		);
end barrel;
----------------------------------------
architecture rtl of barrel is
begin
    process (inp,shift)
	begin
	   if(shift=0)then
	      outp <= inp;
		else 
		  outp(0) <= '0';
		  for i in 1 to inp'high loop
		     outp(i) <= inp(i-1);
		    end loop;
		end if;
    end process;
end rtl;
-----------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值