当前位置:   article > 正文

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

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/432407
推荐阅读
相关标签
  

闽ICP备14008679号