具有任意移位量的移位寄存器实现



我想在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;

我认为你的方法是正确的。由于在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

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

最新更新