Verilog Sintaxa de sinteza Întrebarea

Până acum, DC, se poate deduce numai a nu putea suporta asyn sau asyn set

 
Q1.IS nici o menţiune de proiectare digitală carte despre RLT CODUL după sinteza DC?
de exemplu:
always @ (posedge CLK sau A sau B sau c)
if (! o resetare) ...// Asyn
else if (b) ...// de încărcare Asyn
else if (c)
în cazul în care (d) ....
else if (e)
....

cândva Vreau circuitul de mai sus (RST asyn, ASY stabilit, ....) syn de sarcină
, dar după DC, netlist pare că nu ceea ce vreau, eu, de asemenea, de referinţă vândute, dar
nu este de ajuns pentru a-mi (poate eu sunt un tip nou digital)

Sugestia mea este după cum urmează:
always @ (posedge CLK sau RST posedge sau posedge setat)
/ / Async set rst Async
/ / Nu pentru a include sarcină sincronizarea în lista de sensibile
începe
în cazul în care (RST) reg = 1'b0; / / rst Async a afirmat
alt
începe
în cazul în care (SET) reg = 1'b1; / / set Async a afirmat
alt
începe
în cazul în care (sarcina) reg = load_value; / / load sincronizare a afirmat
alt
începe
...
...
...
final
final
finalfinal

 
pentru întrebarea 2a .. hardware-ul generat va fi de porţi, dar pentru întrebarea 3a hardware-ul generat va fi de flip flops

 
Motivele sunt după cum urmează:
(1) ca şi pentru logica combinationale, în cazul în care misiunile caz nu cuprinde toate condiţiile (fără implicit / sau misiuni iniţial de la locul din faţă a blocului de caz), exact aşa cum aţi codificate: caz (1'b1)

A0: Y = ...;

A1: Y = ...;
Această codificare este, de fapt, este un unul-FSM fierbinte.Excepţia cazului în care se utilizează vânzătorii de sinteza instrument de compilare directivelor, netlist sintetizat va conţine oarba.Descrierea de mai sus, de asemenea, creează un circuit de priorized dacă tu a verifica rezultatul dvs. sintetizat.
Chiar şi de codificare include Y = Y, la partea din faţă a blocului caz, la fel cum NAND_GATEs descris, oarba va fi în continuare generat, deoarece modul de atribuire a Y deţine neschimbat.

(2) ca şi pentru altceva în cazul în care, dacă .. .. altceva, deoarece brances nu sunt enumerate în totalitate, în cazul în care, fără a altceva sucursale, atunci oarba va fi generat, în cazul în care, cu altcineva, şi nu filiala Y = Y în loc de y = 0, atunci prioritizate circuitul va fi creat.Cu toate acestea, dacă vor altceva brance şi Y = Y, atunci latche va exista în continuare.

 
Mediatek Bună,

Aici am corectat codul atât va porduce aceeaşi logică de sinteză.

Cod:

secvenţă modul (A0, A1, Y);

A0 de intrare, A1;

Y de ieşire;

Y reg;întotdeauna @ (A0 sau A1) începe să curgă

Y = Y;

caz (1'b1)

A0: Y = 1'b1;

A1: Y = 1'b0;

endcase / / Case (1'b1)

final

endmodule / / secvenţăsecvenţă modul (A0, A1, Y);

A0 de intrare, A1;

Y de ieşire;

Y reg;întotdeauna @ (A0 sau A1)

în cazul în care (A0)

Y = 1'b1;

else if (A1)

Y = 1'b0;

alt

Y = Y;

endmodule
 
În cazul în care scrie ca Ans2, va trebui condiţie cursa în voi RTL care pot avea cauză la simulare.

 
în cazul în care 2 este concurentăde ce

secvenţă modul (A0, A1, Y);
A0 de intrare, A1;
Y de ieşire;
Wire Sel;
Y reg;
//===============
întotdeauna @ (A0 sau A1)
caz (Sel)

A0: Y <= 1'b1;
A1: Y <= 1'b0;

endcase
endmodule
//===================
acesta să devină (combinaţie "dispozitivul de blocare")?
aproape la fel ca
//===============
întotdeauna @ (A0 sau A1)
în cazul în care (A0)

A0: Y <= 1'b1;
else if (A1)
A1: Y <= 1'b0;
else y <= Y;
/ / Pure Latch
//===================

DE CE ???????????????????

 
ANS 1: Arunca o privire la bibliotecă, nu-i au flipflops care s-au Async şi de a nu putea suporta presetate ...În cazul în care nu există nici una, atunci nici un folos cere DC de a le folosi, deoarece nu aveţi astfel de celule!Dacă descoperiţi că aveţi Async Flipflops Async a nu putea suporta presetate apoi relook în codul dvs., R tu specifig-o corect.Cred că dacă tu a face aceste 2 sarcini, veţi afla problema singur.

ANS2: În primul caz, o logică paralel este dezvoltat şi în decodign doilea caz, prioritate este dezvoltat.

 
ans de primul --- da
ans din a doua --- statament prima concurentă
şi al doilea este secventiala.

 
Dacă aveţi funcţia de asyn mai mult, ar trebui să scrie ca primul.după sinteza DC, dacă nu doriţi ca ceea ce se poate vedea lib de sinteză, care nu poate avea registrul pe care doriţi.

 
M

Mediatek

Guest
Q1.IS nici o menţiune de proiectare digitală carte despre RLT CODUL după sinteza DC?
de exemplu:
always @ (posedge CLK sau A sau B sau c)
if (! o resetare) ...// Asyn
else if (b) ...// de încărcare Asyn
else if (c)
în cazul în care (d) ....
else if (e)
....

cândva Vreau circuitul de mai sus (RST asyn, ASY stabilit, ....) syn de sarcină
, dar după DC, netlist pare că nu ceea ce vreau, eu, de asemenea, de referinţă vândute, dar
nu este de ajuns pentru a-mi (poate eu sunt un tip nou digital)

Q2:
întotdeauna @ (A sau B)
.... caz,
endcase

întotdeauna @ (A sau B)
în cazul în care (a)
.....

Ceea ce diferite între aceste două circuite?

 

Welcome to EDABoard.com

Sponsor

Back
Top