Jaký je rozdíl mezi strukturálním a behaviorálním modelováním toku dat ve Verilogu?


Nejlepší odpověď

V modelování toku strukturálních dat jsou funkce digitálního návrhu definovány pomocí komponent, jako je invertor , MUX, sčítač, dekodér, základní digitální logická hradla atd. Je to jako připojení a uspořádání různých částí obvodů, které jsou k dispozici pro implementaci funkcí, které hledáte.

Implementace poloviční sčítačky pomocí strukturální modelování toku dat: vstup A, B; výstupní suma, přenos; xor (.in1 (A), .in2 (B), .out (součet)); and (.in1 (A), .in2 (B), .out (carry));

Modelování toku dat v chování se používá k popisu chování digitálních obvodů. Návrhář popisuje funkčnost designu zápisem druhu kódu algoritmu. Používá se k vysvětlení toku dat pomocí různých booleovských výrazů, jako jsou & (a), | (nebo), ~ (invertní), ^ (xor),? (Podmíněné) atd … dvě podkategorie modelování tohoto typu Schéma je nepřetržitý tok dat a tok procedurálních dat.

1. Kontinuální tok dat U tohoto typu modelování toku dat je přiřazování dat k výstupům spojité. Toto bude implementováno pomocí příkazů „ assign “ ve Verilogu, jak je ukázáno v příkladu.

vstup A, B; výstupní suma, přenos; drát součet, přenos; přiřadit součet = A ^ B; assign carry = A & B;

Je to průběžné přiřazování, a proto jakákoli změna ve vstupu způsobí výstup okamžitě, protože chybí kontrolní akce, tj. seznam citlivosti. Zde musí být výstupní proměnná definována jako typ „ wire „, protože jsou neustále řízeny digitální logikou definovanou na RHS.

2. Tok procedurálních dat Zde se přiřazení dat neprovádějí nepřetržitě, místo toho se to děje u konkrétních událostí uvedených v seznamu citlivosti. Tento typ modelového schématu je implementován pomocí procedurálních bloků, jako je „ always “ nebo „ initial „jak je znázorněno v příkladu.

vstup A, B; výstupní suma, přenos; reg součet, přenos; vždy @ (A) počáteční součet A + B; nést A & B; end

RHS všech výrazů se počítá nepřetržitě, ale jeho přiřazení k LHS se děje pouze při jakékoli změně vstupu A, ale nikoli B. V tomto případě musí být výstupní proměnné definovány jako „ reg “, protože stále drží předchozí hodnotu, dokud po jakékoli změně v uvedeném seznamu citlivosti nedojde k novému přiřazení.

Doufám, že to vymaže vaše pochybnosti.

Odpověď

Tok dat a chování se vzájemně nevylučují. Tok dat není ani funkční, ani tok dat a strukturální. V klasickém pohledu „datový tok“ popisuje architekturu, kde změna hodnoty datové položky (proměnné) automaticky spustí přepočet všech ostatních na ní závislých dat.

Mnoho nesprávně (IMHO) klasifikuje jakoukoli architekturu, kde tok dat je řízen spíše než řízení toku řízení jako „datový tok“; ale tento výraz se zvykne používat s dostatečnou pravidelností, aby byl alternativní definicí.

Podíváme-li se na „behaviorální“ design, můžeme jej klasifikovat jako designový přístup, kde jsou moduly modelovány na vysoké úrovni abstrakce, kde návrhář definuje požadované chování modulu a syntetické nástroje toto chování rozloží buď na RTL, nebo na strukturální modely. V modelování chování je funkce definována algoritmicky s načasováním a načítáním uzlů do značné míry ignorována. Je zřejmé, že chování lze modelovat tak, aby vyhovoval klasickému toku dat.

Méně abstraktní je „RTL“ nebo modelování logiky přenosu. To je místo, kde mnoho odborníků říká, že tok dat začíná. Většina dnešních nástrojů pro syntézu rozkládá behaviorální kód na RTL. Dobrým příkladem jsou nástroje C (nebo C ++) na RTL, jako jsou ImpulseC, Cynthesizer atd.)

Nejméně abstraktní je „strukturální“ modelování, kde design je uveden téměř výlučně jako instance komponent s připojením registrů a vodičů.

Jasné jako bláto, že?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *