Ich versuche einen synthetisierbaren Verilog-Code zu erstellen, der 'x' oder ungültige Eingaben erkennen kann. Grundsätzlich ist x
nicht synthesefähig, daher vermeide ich x
. Ich versuche, Eingänge bei jedem Taktzyklus zu lesen, und wenn es 0
oder 1
ist, dann lade ich in ein neues Register. Hier ist der Code; SoSynthesis-fähiges 'X' oder ungültiges Eingangsdetektionssystem in Verilog
[email protected](posedge clk)
begin
if(in & gate_check == 0 | in & gate_check == 1)
begin
load_input_8 <= {in,load_input_8[8:1]};
end
end
, ich lade neue Eingänge in load_input_8
Register, nachdem der Eingangsdaten Prüfung der Gültigkeit. Übrigens hat gate_check
den Wert 1, d.h. `gate_check = 1.
Aber dies speichert nur den Wert 1
in load_input_8
. No 0
wird in load_input_8
gespeichert. Und die Schaltung hat auch seltsames Verhalten beim Laden von Eingängen. Hier ist das Bild der Simulation; Danke.
Nur 'in = 1' kann Ihre if-Bedingung erfüllen. –
@Laleh, Danke. Das Problem ist gelöst. –