【问题标题】:Synthesis-able 'X' or invalid input detection system in VerilogVerilog 中可合成的“X”或无效输入检测系统
【发布时间】:2017-02-21 14:27:02
【问题描述】:

我正在尝试制作可合成的 Verilog 代码,它可以检测“x”或无效输入。基本上,x 不能合成,所以我避免使用x。我试图在每个时钟周期读取输入,如果它是01,那么我正在加载到一个新寄存器中。这是代码;

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 中。并且电路在加载输入时也有奇怪的行为。这是模拟的图片; 谢谢。

【问题讨论】:

  • 只有in = 1可以满足你的if条件。
  • @Laleh,谢谢。问题解决了。

标签: verilog synthesis


【解决方案1】:

感谢@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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    相关资源
    最近更新 更多