2016-07-04 20 views
0

Ich möchte ein FF mit einem positiven Flankentakt und einem aktiven niedrigen Reset synthetisieren. Ich schrieb den folgenden Verilog-Code:synthetisierbares FF in Verilog mit aktivem niedrigen Reset

module dff_rstL (q,qn,clk,d, clearL); 
input clk,d, clearL ; 
output q,qn; 
reg q; 
always @(posedge clk or negedge clearL)   //asynchronous reset 
begin 
    if (clearL) begin 
     q <= d;    
    end 
else begin  
    q <= 1'b0;     
    end   
end 
assign qn=~q; 
endmodule 

Aber ich bekomme die folgende Fehlermeldung während der Synthese:

Kann nicht testen Variable ‚clearL‘, weil es nicht im Fall Ausdruck oder mit falscher Polarität war. (ELAB-300) * Die Presto-Kompilierung wurde mit 1 Fehlern beendet. *

Wissen Sie, dass ich es synthetisieren kann? Danke vielmals!!!

Antwort

2

Die Testlogik sollte ~ clearL und die erste Zeile/Bedingung des Reset-Blocks sein.

module dff_rstL (q,qn,clk,d, clearL); 
input clk,d, clearL ; 
output q,qn; 
reg q; 
always @(posedge clk or negedge clearL)   //asynchronous reset 
begin 
    if (~clearL) begin 
    q <= 1'b0; 
    end 
else begin 
     q <= d; 
    end 
end 
assign qn=~q; 
endmodule