Coding Verilog per questione di stile

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

 
Non è necessario definire blocco separato combinational sequenziale e il blocco di generazione di un segnale.vale a dire, si può descrivere la generazione di out_1 in un blocco di sempre e descrivere out_1 sempre sequenziale in un altro blocco, eliminando combinational due blocchi.Questo stile è anche un buon stile.

 
È possibile definire la logica combinational in un blocco,
o due.Non fa alcuna differenza in simulazione punto di
vista, ma l'ex può causare uno squilibrio tra pre e post-sintesi.

dal modo in cui è meglio non utilizzare il blocco sequenziale incarichi in blocco.

 
Grazie per le risposte, ma la mia domanda si riferiva al più sequenziale-sempre solo blocco.Voglio dire, non mescolare combinational logica sequenziale sempre in un blocco.
Forse ho bisogno di chiarire ancora di più.
Quando possibile,
i moduli sono viste come
il FSM.Questa è la logica combinational che prende il inpus dal mondo esterno e dalle uscite della sequenziale parte, e uno che è parte sequenziale solo flip-flops carico che le uscite del combinational logica, a farli le uscite, e di nuovo al feed il combinational parte.La codifica in regola l'azienda per cui lavoro è il seguente: il combinational parte è definito in uno o più blocchi di sempre (preferibilmente un blocco indipendente per ogni uscita combinational), e la parte sequenziale (l'uscita
del FF) è definito nel suo che ha sempre zero combinational logica, che è
sempre @ (posedge clk)
iniziare
... OUT1 = out_in1;
OUT2 = out_in2 ...;
.
.
.
... outn = out_inn;
fine
Zero combinational logica qui, nada, niente, solo un registro è synthethised apparentemente.

Questo stile è rigurous e delle forze di scrivere codice ben organizzata, ma mi chiedo se non è troppo restrittivo a volte, se non impedisce la sintesi strumenti da ottimizzare in modo efficiente.Voglio dire, è troppo rigurous credo, e il rigore che a volte si trasforma in rigidità.

 
una regola empirica è che ogni volta che si usa sempre sequenziale, l'assegnazione di blocco non è preferito e quando si utilizza sempre combinational dichiarazione,
il blocco è stato preferito.

 
può essere quella di chiarire meglio, la sua consiglia di non utilizzare bloking quando vi è un mix di combinational logica sequenziale e sempre in un solo blocco di logica sequenziale o in un blocco di sempre, altrimenti andare avanti con il blocco stili.

 
Spiacente ragazzi, ma non si dispone di un blocco che con fissazione / non-bloccanti cosa?
So che è completamente
un'altra cosa che mi chiedono.

 
Z80 ha scritto:Questo stile è rigurous e delle forze di scrivere codice ben organizzata, ma mi chiedo se non è troppo restrittivo a volte, se non impedisce la sintesi strumenti da ottimizzare in modo efficiente.
Voglio dire, è troppo rigurous credo, e il rigore che a volte si trasforma in rigidità.
 

Welcome to EDABoard.com

Sponsor

Back
Top