具有任意移位量

时间:2017-07-01 20:26:31

标签: vhdl

我想在VHDL中为处理器开发一个移位寄存器。在处理器的指令寄存器(IR)中,有一个部分确定移位量。现在我想检查它以实现此操作。

例如,位数5到10表示移位量。如果有" 000001"在该部分中,当定时信号t1出现时,移位寄存器应该起作用并且t2定时信号到达。

但是为什么以下代码在使用modelsim运行时不会对移位寄存器产生任何影响?

IF sc=t1 AND R2 (10 DOWNTO 5)= "000001" THEN
R2<=R2(62 DOWNTO 0) & R2(63);
END IF;

1 个答案:

答案 0 :(得分:0)

我认为你的方法是正确的。因为在VHDL中总是更好地使用尽可能多的常量值,所以合成可以更容易我会为你的案例编写代码

process(clk, reset)
begin 
  if reset then
   --reset everything 
  elsif posedge(clk) then 
  if sc = t1 then 
    case R2(10 DOWNTO 5) 
      when "00001" => 
        R2 <= R2(62 DOWNTO 0) & R2(63)
      when "00010" =>
  end if
end process

上面的代码只是想知道需要做些什么。我们需要显示您正在使用的更多实际代码。