Je to chyba překladačů?

J

jinruan

Guest
tam je takový kód, v mém návrhu, ale když jsem syntetizovat kód, zjistil jsem, výsledek je špatný. V čem je problém? Je to problém můj kód, nebo je to bug v DC? cílová knihovna slow/CSM25. kód: (! rst_n) Vždy @ (posedge CLK nebo negedge rst_n), pokud DOUT
 
Ahoj Jinruan, buďte trpělivost a sledovat přes logiku. Oba jsou stejné. Zvažte výsledkem Synopsys, a zvážit v případě, kdy == 0 DIN a DIN == 1, a uvidíte, jak inteligentní Synospsy je! Mimochodem, tento nástroj používá scan FF implementovat logiku. To nemusí být dobrý nápad, pokud chcete vložit scan později, nebo někdy čas od cesty SI může dát překvapit (např. velmi dlouhé nastavení času). S pozdravem, Eng Han
 
ale když "DIN" dosáhnout buňky pomaleji než "en", nebo-li DIN je "x" někdy stát, dynamické simulace ukazují, že DOUT bude vždy v "x" stavu.
 
Ahoj Jinruan,>> ale když "DIN" dosáhnout buňky pomaleji než "en" Pokud je to váš případ design běží příliš pomalu na taktovací frekvenci. Existuje důvod, proč DC vytvořit logiku, že. Pravděpodobně okruhu je menší / rychlejší v porovnání s kterou jste očekávali.>> Když DIN je "x" stát někdy, když máte tento problém, je třeba zlepšit model pro FF. Pokud je "en" je "X", ale i další 2 vstupy MUX jsou "0" nebo "1", pak výstup by měl být hodnotu vstupního. Je možné, aby tento model chování pomocí brány (i když si nemohu vzpomenout off-ruka). pozdravem, Ing Han
 
>> Ale když "DIN" dosáhnout buňky pomaleji než "en? Je jedno," DIN "nebo" en "signál dosáhne jako první, pokud jsou oba stabilní, před CLK (clock) náběžnou hranou. Takže pokud Vaše syntéza se setkal načasování, pak by jste neměli vidět "x" (neznámý) se objeví v DOUT (výstup). ------------------------- -------------------------------------------------- ------------>> tam je takový kód, v mém návrhu, ale když jsem syntetizovat kód, zjistil jsem, výsledek je špatný. Mimochodem, je možná lepší udělat logické ekvivalence kontroly o nástroj, než to udělat ručně. (Ex-konformní LEC nebo formalita to udělat dobře.) a do STA (statickou analýzu načasování), aby se ujistili, že brána na úrovni netlist a odpovídající SDF (standardní zpoždění formát) splňuje časování. Konečně, jestliže tam ještě bráně úrovni simulace problémy se vyskytují v designu, pak srovnávat výsledku simulace (možná průběh) mezi "očekávané" výsledek a "nesprávné" jeden zjistit důvod. ----- -------------------------------------------------- --------------------------------- Doufám, že výše uvedené informace mohou pomoci více či méně.
 
Ahoj Eng Han, prosím, odpusťte mi mou neznalost. Mám jednu pochybnost, pokud jde o prohlášení SDFFRX1 (SI (en), SE (DIN), D (1'b0), CK (CLK), RN (rst_n), Q (DOUT)......) == SDFFRX1 (SI (DIN), SE (en), D (1'b0), CK (CLK), RN (rst_n), Q (DOUT)......), Jak je vidět na RTL kdykoli en == 1'b1 DOUT
 
Vždy @ (posedge CLK nebo negedge rst_n) if (! rst_n) DOUT
 
Mám syntetizovat kód se třemi styl kódování, a zjistil, že výsledek je stejný.
 
Myslím, že je možné použít: (! Rst_n) / / Synopsys async_set_reset "rst_n" / / Synopsys sync_set_reset "en" Vždy @ (posedge CLK nebo negedge rst_n), pokud DOUT
 
Můžete vložit chování modelu SDFFRX1 ve své knihovně? Mám stejný puzzle s ManojG
 

Welcome to EDABoard.com

Sponsor

Back
Top