我最近开始研究 HDL ,同时通过右/左移位运算符,我在学校学习的是它们是连续的 D FlipFlop,可以逐位移动数据以产生输出。
我假设在 hdl 中合成它们时也会完成相同的操作,但我在 verilog 合成中看不到相同的硬件,它看起来就像 RTL_LSHIFT 中的简单串联操作。
有人可以解释一下这个 RTL_LSHIFT 内部的硬件实际上是如何的吗?如果是FF,那么为什么没有时钟输入到BLock。
我知道算术和逻辑移位的所有功能,我需要用 HDL 合成的硬件。
代码:
module doubt(
input[5:0] a,
input [5:0] b,
input clk,
output reg [9:0] c,
output reg [9:0] d
);
reg s1,s2;
always @ ( posedge clk)
begin
c <= (a<<1);
d<= (b<<4);
end
endmodule