我正在尝试制作一个可合成的Verilog代码,它可以检测'x'或无效输入。基本上,x
不能合成,所以我避免使用x
。我试图在每个时钟周期读取输入,如果它是0
或1
,那么我将加载到新的寄存器中。这是代码;
always@(posedge clk)
begin
if(in & gate_check == 0 | in & gate_check == 1)
begin
load_input_8 <= {in,load_input_8[8:1]};
end
end
因此,在检查输入数据的有效性后,我将新输入加载到load_input_8
寄存器中。顺便说一句,gate_check
的值为1,即`gate_check = 1。
但这只是将1
存储到load_input_8
中。 0
中未存储load_input_8
。电路在加载输入时也有奇怪的行为。这是模拟的图片;
谢谢。
答案 0 :(得分:0)
感谢@Laleh帮助解决了这个问题。存在()
的问题。这是正确的代码;
always@(posedge clk)
begin
if((in & gate_check) == 0 | (in & gate_check) == 1)
begin
load_input_8 <= {in,load_input_8[8:1]};
end
end