Care este diferența dintre modelarea fluxului de date structurale și comportamentale în Verilog?


Cel mai bun răspuns

În modelarea fluxului de date structurale, funcțiile de proiectare digitală sunt definite utilizând componente precum un invertor , un MUX, un sumator, un decodor, porți logice digitale de bază etc. Este ca și cum ar fi conectarea și aranjarea diferitelor părți ale circuitelor disponibile pentru a implementa funcțiile pe care le căutați. modelarea fluxului de date: intrare A, B; suma de ieșire, transport; xor (.in1 (A), .in2 (B), .out (sumă)); și (.in1 (A), .in2 (B), .out (carry));

Modelarea comportamentală a fluxului de date este utilizată pentru a descrie comportamentul circuitelor digitale. Designerul descrie funcționalitatea proiectării scriind algoritmul tip de cod. Se folosește pentru a explica fluxul de date folosind diferite expresii booleene precum & (și), | (sau), ~ (invers), ^ (xor),? (Condițional) etc … două subcategorii ale acestui tip de modelare schema este fluxul continuu de date și fluxul de date procedurale.

1. Flux continuu de date În acest tip de modelare a fluxului de date, alocarea datelor către ieșiri sunt continue. Acest lucru va fi implementat folosind instrucțiunile „ assign ” în Verilog așa cum se arată în exemplu.

intrare A, B; suma de ieșire, transport; wire sumă, carry; atribui suma = A ^ B; assign carry = A & B;

Este o atribuire continuă și, prin urmare, orice modificare a intrării va efectua ieșirea imediat, deoarece absența acțiunilor de control, adică lista de sensibilitate. Aici, variabila de ieșiri trebuie definită ca fiind tipul „ wire „, deoarece acestea sunt conduse continuu de logica digitală definită pe RHS.

2. Fluxul de date procedurale Aici alocările de date nu sunt efectuate continuu, ci se întâmplă la evenimente specifice specificate în lista de sensibilitate. Acest tip de schemă de modelare este implementat utilizând blocuri procedurale, cum ar fi „ întotdeauna ” sau „ initial „așa cum se arată în exemplu.

intrare A, B; suma de ieșire, transport; reg sum, carry; întotdeauna @ (A) începe suma A + B; transporta A & B; end

RHS-ul tuturor expresiilor este calculat continuu, dar atribuirea sa către LHS se întâmplă numai la orice modificare a intrării A, dar nu B. În acest caz, variabilele de ieșire trebuie definite ca ” reg ” deoarece păstrează valoarea anterioară până când apare o nouă atribuire după orice modificare a listei de sensibilitate specificate.

Sper, acest lucru vă va șterge îndoielile.

Răspuns

Fluxul de date și comportamentul nu se exclud reciproc. Nici Fluxul de date și funcțional, sau Fluxul de date și Structural nu sunt. Vizualizat clasic, „flux de date” descrie o arhitectură în care o modificare a valorii unui element de date (variabilă) declanșează automat recalcularea tuturor celorlalte date dependente de acesta.

Mulți incorect (IMHO) clasifică orice arhitectură unde fluxul de date este gestionat mai degrabă decât controlul gestionării fluxului pentru a fi „flux de date”; dar termenul este folosit în acest mod cu o regularitate suficientă pentru a-l permite să fie o definiție alternativă.

Privind proiectarea „Comportamentală”, o putem clasifica ca o abordare de proiectare în care modulele sunt modelate la un nivel ridicat de abstractizare unde proiectantul definește comportamentul dorit al modulului și instrumentele de sinteză descompun acel comportament fie la modelele RTL, fie la cele structurale. În modelarea comportamentală funcția este definită algoritmic, temporizarea și încărcarea nodului fiind ignorate în mare parte. În mod clar, comportamentele pot fi modelate astfel încât fluxul de date clasic să fie adaptat.

Mai puțin abstract este „RTL” sau modelarea logică a transferului de înregistrare. Aici mulți practicanți spun că începe fluxul de date. Majoritatea instrumentelor de sinteză de astăzi descompun codul comportamental în RTL. Un bun exemplu este instrumentul C (sau C ++) în instrumentele RTL, cum ar fi ImpulseC, Cynthesizer, etc.).

Cel mai puțin abstract este modelarea „structurală” unde designul este declarat aproape exclusiv ca instanțierea componentelor cu registre și fire de conectare.

Clar ca noroi, nu?

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *