Verilog výzvy: Vždy @ *

C

choonlle

Guest
co je odlišné od vždycky @ * a vždy(*)?Vždy @ (*)
začít

bude využívat = blokování

Vždy @ *
...bude používat <= (non blokování)

 
hi,

Procesní úkolu umožňuje alternativní, často vyšší-úroveň, behaviorální
Popis kombinačních logických.Dva strukturovaný postup Prohlášení: počáteční a vždy.Edge-spuštěno obvody jsou popsány pomocí sekvenční vždy blok
Příklad:
Modul kombinační (a, b, sel,
out);
vstup a, b;
vstup sel;
Výstup ven;
reg ven;
Vždy @ (A nebo B nebo SEL)
začít
if (SEL) out =;
jinak out = b;
konec
endmodule

Sekvenční vždy blok například:
Modul sekvenční (a, b, sel,
ČLK, out);
vstup a, b;
vstup sel, CLK;
Výstup ven;
reg ven;
Vždy @ (posedge CLK)
začít
if (SEL) z <=;
jinak z <= b;
konec
endmodule

Použití posedge a negedge dělá vždy blok sekvenční
(Okraj-spuštěno).Na rozdíl kombinační vždy blok, citlivost seznam neobsahuje
určit chování pro syntézu!

Blokování práce: hodnocení a zadání jsou okamžité
Příklad:
Vždy @ (A nebo B nebo C)
začít
x = a | b;
y = a ^ b ^ c;
z = b & ~ c;
konec

Nebránící úkol: všechny úkoly odkládá do pořádku-ruka
stranách byly vyhodnoceny (konec simulace timestep)
Příklad:
Vždy @ (A nebo B nebo C)
začít
x <= a | b;
y <= ^ b ^ c;
z <= b & ~ c;
konec
Někdy, jak je uvedeno výše, obě dávají stejný výsledek.Někdy, ne! Blokování přiřazení neodrážejí skutečné chování multi-fáze sekvenčních logických

Hlavní směr: použití neblokující úkoly pro sekvenční vždy bloky

Doufám, že to pomůže.

 
Díky za Vaši odpověďPak by u vysvětlit, co je odlišné od vždycky @ * a vždycky @ (*)

 
Ahoj,
Nemám velké znalosti o rozdíl, ale vím, že Verilog-2001 naznačuje, vždycky @ *, které bude signál na RHS, které se přidávají do seznamu citlivosti.Myslím, že jeho mám co do činění s Non-blokování prohlášení.

Já také vím, že (* ........ *) se používá pro jiný účel.zkontroluje zpět a nechat u vědět o (*).

Do té doby, je-li u chtěl získat více informací, podívejte se Clifford Cumming článek o Verilog 2001.

 

Welcome to EDABoard.com

Sponsor

Back
Top