Wat is het verschil tussen structurele en gedragsmatige datastroommodellering in Verilog?


Beste antwoord

Bij structurele datastroommodellering worden digitale ontwerpfuncties gedefinieerd met behulp van componenten zoals een invertor , een MUX, een opteller, een decoder, basis digitale logische poorten enz. Het is als het aansluiten en rangschikken van verschillende beschikbare delen van circuits om een ​​functie te implementeren waarnaar u op zoek bent.

Implementatie van een halve opteller met behulp van structurele gegevensstroommodellering: ingang A, B; output som, carry; xor (.in1 (A), .in2 (B), .out (som)); en (.in1 (A), .in2 (B), .out (carry));

Modellering van gedragsgegevensstromen wordt gebruikt om het gedrag van digitale schakelingen te beschrijven. Designer beschrijft de functionaliteit van het ontwerp door een algoritme-code te schrijven. Het wordt gebruikt om de gegevensstroom uit te leggen met behulp van verschillende Booleaanse uitdrukkingen zoals & (en), | (of), ~ (omkeren), ^ (xor),? (Voorwaardelijk) enz … twee subcategorieën van dit type modellering schema is een continue gegevensstroom en procedurele gegevensstroom.

1. Continue gegevensstroom Bij dit type gegevensstroommodellering is de toewijzing van gegevens aan outputs continu. Dit wordt geïmplementeerd met behulp van “ assign ” -instructies in Verilog, zoals getoond in het voorbeeld.

input A, B; output som, carry; draad som, meenemen; wijs som toe = A ^ B; toewijzen carry = A & B;

Het is continue toewijzing en daarom zal elke wijziging in de invoer de uitvoer onmiddellijk beïnvloeden omdat er geen controlerende acties zijn, d.w.z. een gevoeligheidslijst. Hier moet de outputvariabele worden gedefinieerd als “ wire ” -type, omdat ze continu worden aangestuurd door digitale logica die is gedefinieerd op RHS.

2. Procedurele gegevensstroom Hier worden de gegevenstoewijzingen niet continu uitgevoerd, maar gebeurt het op specifieke gebeurtenissen gespecificeerd in de gevoeligheidslijst. Dit type modelleringsschema wordt geïmplementeerd met behulp van procedurele blokken zoals “ altijd ” of “ initial “zoals getoond in voorbeeld.

input A, B; output som, carry; reg som, carry; altijd @ (A) beginsom A + B; carry A & B; end

De RHS van alle uitdrukkingen wordt continu berekend, maar de toewijzing aan LHS gebeurt alleen bij elke wijziging in invoer A maar niet bij B. In dit geval moeten uitvoervariabelen worden gedefinieerd als “ reg ” -type omdat ze de vorige waarde behouden totdat er een nieuwe toewijzing plaatsvindt na elke wijziging in de gespecificeerde gevoeligheidslijst.

Hoop, dit zal je twijfels wegnemen.

Antwoord

Gegevensstroom en gedrag sluiten elkaar niet uit. Datastroom en functioneel is evenmin datastroom en structureel. Klassiek gezien beschrijft “gegevensstroom” een architectuur waarbij een verandering in de waarde van een gegevensitem (variabele) automatisch de herberekening van alle andere gegevens die ervan afhankelijk zijn, activeert.

Velen classificeren onjuist (IMHO) elke architectuur waarin de gegevensstroom wordt beheerd in plaats van het beheer van de stroom te controleren als “gegevensstroom”; maar de term wordt op deze manier met voldoende regelmaat gebruikt om het een alternatieve definitie te laten zijn.

Als we kijken naar Gedrags-ontwerp, kunnen we het classificeren als een ontwerpbenadering waarbij modules worden gemodelleerd op een hoog abstractieniveau, waarbij de ontwerper definieert het gewenste gedrag van de module en de synthesetools ontleden dat gedrag naar RTL- of structurele modellen. In gedragsmodellering wordt de functie algoritmisch gedefinieerd, waarbij de timing en het laden van knooppunten grotendeels worden genegeerd. Het is duidelijk dat gedragingen zo kunnen worden gemodelleerd dat de klassieke gegevensstroom wordt ondergebracht.

Minder abstract is “RTL” of Register Transfer Logic-modellering. Dit is waar veel beoefenaars zeggen dat de gegevensstroom begint. De meeste van de huidige synthesetools ontleden gedragscode naar RTL. Een goed voorbeeld is de C (of C ++) naar RTL-tools zoals ImpulseC, Cynthesizer, enz.).

Minst abstract is “Structurele” modellering waarbij het ontwerp wordt bijna uitsluitend vermeld als component-instantiaties met verbindende registers en draden.

Helder als modder, toch?

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *