potřebuje pomoc pro Verilog kód

E

EDA_hg81

Guest
My kódů je pro realizaci následující:

Data_out = (Data_IN>> 1 Data_IN>> 2) Data_IN2;

První kód:vstup Data_IN;vstup Data_IN2;Výstup Data_OUT;
reg REG;reg Data_REG;
přiřadit Data_OUT = Data_REG [8]?
8'hff: Data_REG [07:00];
Vždy @ (posedge hodiny)začítpokud (1) začínáData_REG <= Data_IN>> 1;REG <= Data_REG>> 1;konecpokud (1)Data_REG <= Data_IN2 Data_REG REG;konecendmoduleMoje otázka je následující:

Kdy a Data_IN2 jsou Data_IN zadaných do procesu, Data_out jen může být aktualizován s ohledem na právo daty jedné hodiny po nebo Data_out nikdy nemůže získat správné údaje?když jsem použít druhý kód následující:vstup Data_IN;vstup Data_IN2;Výstup Data_OUT;
reg REG;reg Data_REG;
přiřadit Data_OUT = Data_REG [8]?
8'hff: Data_REG [07:00];
Vždy @ (Data_IN, Data_IN2)začítpokud (1) začínáData_REG <= Data_IN>> 1;REG <= Data_REG>> 1;konecpokud (1)Data_REG <= Data_IN2 Data_REG REG;konecendmoduleData_OUT může být aktualizován hned se správná data?Protože tento program mají Hold načasování chyby při Data_OUT výstup na následující modul, je možné pro mě, aby zpoždění v prvním kód?

Ale jsem si jist, že mohu použít jiného rejstříku na výrobu prodlení ve druhém kódu.

Jak si myslíte, který kód je rychlejší?

Jak dát načasování constrian ve druhém kód, pokud jsem pomocí Spartan 2E?

Děkuju.

 
Ve vaší první kód, Data_OUT je okamžitě aktualizována, kdykoliv aktualizovat Data_REG je.Data_REG se aktualizuje na pozitivní okraji hodiny.

Ve druhém kód, máte kombinatorické (unclocked) blok se signál (proměnná) na obou stranách stejné zadání.Pokusíte-li se syntetizovat tento, může to vést k nekonečným aktualizaci, protože není nic pro zastavení re-hodnocení.(Syntéza nepoužívá citlivosti seznamy. Kontroluje pouze za správnost simulačního modelu.)
is redundant, and does not add any information.

Mimochodem, pokud (1)
je nadbytečný, a nepřináší žádné informace.

Také můžete použít <= místo =.Protože to, že hodnoty používané na pravé straně jsou hodnoty existující na začátku bloku, ne ty, získané "řazení".

 
Vždy @ (posedge hodiny)
začít

Data_REG = Data_IN>> 1;
REG = Data_REG>> 1;
Data_REG = Data_IN2 Data_REG REG;
konec

 

Welcome to EDABoard.com

Sponsor

Back
Top