(萌新的数电学习)用VHDL语言设计移位逻辑

实验背景:
移位指令:
RSR R1
RSL R1
这类指令的执行过程为:
由R1的编码通过RWBA1、RWBA0从通用寄存器组D口读出R1的内容,在S3~S0和M的控制下通过ALU,经移位逻辑循环右移或循环左移后送入总线BUS;再由/WE控制和R1的编码选择RWBA1、RWBA0,将BUS上的数据写入通用寄存器R1。
指令具体功能如下:
在这里插入图片描述
RSR 循环移位操作具体如下:
在这里插入图片描述
移位逻辑需要实现RSR、RSL操作,还需提供MOVA、MOVB、ADD、SUB、OR、NOT、OUT指令执行时,将数据传输至BUS总线的通路。
移位逻辑的输入输出引脚如下图所示:
在这里插入图片描述
VHDL语言

library ieee;
use ieee.std_logic_1164.all;

entity yiweiluoji is
port(fbus,flbus,frbus:in std_logic;
     A:in std_logic_vector(7 downto 0);
     W:out std_logic_vector(7 downto 0);
     cf:out std_logic:='0');
end yiweiluoji;

architecture aaa of yiweiluoji is
begin
  process (fbus,flbus,frbus)
  begin
    if(fbus='1' and flbus='0' and frbus='0') then--through shift
        W<=A;
        cf<='0';
    elsif(fbus='1' and flbus='1' and frbus='0') then--left shift
      W<=A(6 downto 0)&A(7) ;
      cf<=A(7);
    elsif(fbus='1' and frbus='1' and flbus='0') then--right shift
      W<=A(0)&A(7 downto 1);
      cf<=A(0);
    else 
      W<="ZZZZZZZZ";
      cf<='Z';
    end if;
  end process;
end aaa;

RTL视图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值