Article ID: 000077157 Content Type: Error Messages Last Reviewed: 09/11/2012

Error: Verilog HDL Conditional Statement error at <location>: If-Else Statement does not match any sensitivity list edge

Environment

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Description This error may occur if you are trying to model a DFF with multiple control signals. The Quartus® II software will only infer a secondary signal from a single secondary signal in an IF condition. For example, you may have written the following sample structure to model a DFF primitive that can be reset by two signals, rst1 or rst2:

always @ (posedge clk or posedge rst1 or posedge rst2)  

begin    

  if (rst1 == 1'b1 || rst2 == 1'b1)  

    q <= 1'b0;  

  else      

    q <= d; 

  end

To correct this, edit the design to specify only one edge per if condition. For example, if you were to edit the previous example to specify only one edge per if condition, the Quartus II software would then succesfully recognize the DFF primitive. The sample code would then appear as follows:

always @ (posedge clk or posedge rst1 or posedge rst2) 

begin    

  if (rst1 == 1'b1)

    q <= 1'b0;    

  else if (rst2 == 1'b1)

    q <= 1'b0;

  else

    q <= d;  

end

Alternatively, you could generate the OR of rst1 and rst2 outside the Always construct.

This limitation will be addressed in a future version of the Quartus II software.

Related Products

This article applies to 1 products

Intel® Programmable Devices