Z
Z80
Guest
Qui a lavoro mi è stato insegnato a usare questo tipo di codifica in Verilog ...
Ogni qualvolta ciò sia possibile, esclusivamente definire combinational logica combinational sempre in blocchi e usare soltanto uno sequenziale sempre blocco che solo cosa che fa è passare le uscite dal combinational logica della produzione flip-flops.
Faccio un esempio per chiarire quello che sto cercando di dire.
Piuttosto che scrivere a:
sempre @ (posedge clk)
... if (x == 1'b1)
... cominciare
...... OUT1 = a & b;
...... OUT2 = c | d;
fine ...
altro ...
... cominciare
...... OUT1 = a b;
...... OUT2 = c - d;
fine ...
scrivere come questo
/ / Questo sempre e soltanto i controlli out1_input e
nient'altrosempre @ (uno o b)
... if (x == 1'b1)
...... out1_input = a & b;
altro ...
...... out1_input = a b;
/ / Controlli out2_input sempre solo e
nient'altrosempre @ (C o D)
... if (x == 1'b1)
...... out2_input = c | d;
altro ...
...... out2_input = c - d;
/ / Non combinational logica qui, solo il carico uscite
/ / Da combinational logica della produzione flip-flops
sempre @ (posedge clk)
iniziare
... OUT1 = out1_input;
OUT2 = out2_input ...;
fine
Ora la mia domanda: è questo lo stile efficiente?Non ho visto codice Verilog che rispetti questo e mi chiedo se non è troppo restrittiva dal punto di vista di sintesi.
Modifica: Ho sostituito punti con spazi per una migliore leggibilità, perché il forum strisce spazi
Ultimo a cura di Z80 il 22 Set 2004 17:20, edited 1 volta in totale
Ogni qualvolta ciò sia possibile, esclusivamente definire combinational logica combinational sempre in blocchi e usare soltanto uno sequenziale sempre blocco che solo cosa che fa è passare le uscite dal combinational logica della produzione flip-flops.
Faccio un esempio per chiarire quello che sto cercando di dire.
Piuttosto che scrivere a:
sempre @ (posedge clk)
... if (x == 1'b1)
... cominciare
...... OUT1 = a & b;
...... OUT2 = c | d;
fine ...
altro ...
... cominciare
...... OUT1 = a b;
...... OUT2 = c - d;
fine ...
scrivere come questo
/ / Questo sempre e soltanto i controlli out1_input e
nient'altrosempre @ (uno o b)
... if (x == 1'b1)
...... out1_input = a & b;
altro ...
...... out1_input = a b;
/ / Controlli out2_input sempre solo e
nient'altrosempre @ (C o D)
... if (x == 1'b1)
...... out2_input = c | d;
altro ...
...... out2_input = c - d;
/ / Non combinational logica qui, solo il carico uscite
/ / Da combinational logica della produzione flip-flops
sempre @ (posedge clk)
iniziare
... OUT1 = out1_input;
OUT2 = out2_input ...;
fine
Ora la mia domanda: è questo lo stile efficiente?Non ho visto codice Verilog che rispetti questo e mi chiedo se non è troppo restrittiva dal punto di vista di sintesi.
Modifica: Ho sostituito punti con spazi per una migliore leggibilità, perché il forum strisce spazi
Ultimo a cura di Z80 il 22 Set 2004 17:20, edited 1 volta in totale