2 je doplněk v Verilog

S

sindrig

Guest
Ahoj kluci,
Mám tento projekt pro školy a já začínám opravdu frustrovaný s ním.Mám vytvořit obvod, který může přidat nebo reduct jeden 4-bitové číslo z jiného pomocí full-výbavy, které zabírají poloviční-výbavy.Podařilo se mi, aby to fungovalo s přídavkem, ale snížení to trochu složitější.Mám číslo = A3'A2'A1'A0 a číslo B = B3'B2'B1'B0.Můj nejlepší odhad to daleko je, aby dráty, které berou hodnoty z B a pak použít, pokud-prohlášení, aby si to CO 2 je doplněk a pak přidat ty dvě čísla dohromady.
Zde je můj kód, pokud:

Kód:`Časovém 1ns / 1PS

Modul samlagning_fradrattur (A0, A1, A2, A3, B0, B1, B2, B3, S0, S1, S2, S3, M);

vstup A0, A1, A2, A3;

vstup B0, B1, B2, B3;

reg BB0, BB1, BB2, BB3, C0;

vstup M;

výstupní drát S0, S1, S2, S3;

drát C1, C2, C3, přepad;počáteční

začít

přiřadit C0 = 0;

přiřadit BB0 = B0;

přiřadit BB1 = B1;

přiřadit BB2 = B2;

přiřadit BB3 = B3;

if (M == 1)

začít

přiřadit BB0 = ~ BB0;

přiřadit BB1 = ~ BB1;

přiřadit BB2 = ~ BB2;

přiřadit BB3 = ~ BB3;

if (BB0 == 0)

přiřadit BB0 = ~ BB0;

else if (BB1 == 0)

začít

přiřadit BB0 = ~ BB0;

přiřadit BB1 = ~ BB1;

konec

else if (BB2 == 0)

začít

přiřadit BB0 = ~ BB0;

přiřadit BB1 = ~ BB1;

přiřadit BB2 = ~ BB2;

konec

else if (BB3 == 0)

začít

přiřadit BB0 = ~ BB0;

přiřadit BB1 = ~ BB1;

přiřadit BB2 = ~ BB2;

přiřadit BB3 = ~ BB3;

konec

konec

konecfull_adder F0 (A0, BB0, C0, S0, C1);

full_adder F1 (A1, BB1, C1, S1, C2);

full_adder F2 (A2, BB2, C2, S2, C3);

full_adder F3 (A3, BB3, C3, S3, přepad);endmodule

 
Dobrý den,
Váš hlavní problém je, že se snažíte použít původní kameny model kombinačních logických.Počáteční bloky nejsou syntetizovatelné, a proto by neměl být používán k návrhu žádné skutečné obvodů.Měli byste se snažit přesunout do bloku vždy.Jednoduchý způsob, jak vzít dvojky doplněk v Verilog je k obrácení a přidejte 1.Například: přiřazení TwoComp = ~ Orignal 1.Pokud jste omezeni na použití plné výbavy modulů a ne Verilog operátor sčítání, prostě krmivo obrácené signál jako 1 vstup na plnou výbavu a harcode jiného vstupu do 1.Výstup bude dva je doplněk.

Zde je příklad 4 bit subtractor v Verilog.
4 bit Verilog subtractor

 
Ahoj,
Myslel jsem, že se těsně před svůj příspěvek.Také jsem se podíval přes váš odkaz a pokusí se provést něco, co z něj do mého projektu.
Ale máš nápad, proč můj součet nyní (viz výše) se stane 2 je doplněk B?

S pozdravem,
Sindri

 
Ahoj Sindri,
Jen se dívá na váš kód je velmi obtížné zjistit, co se snažíte udělat.Jak jsem řekl dříve, první blok s pevně zakódovány zpoždění to není správný způsob, jak strukturálně model kombinační obvod.Pokud máte zkušenosti s logickými obvody, musíte myslet na tento kód jako popis těchto obvodů, a ne jako programovací jazyk.

Tak, například, smyčka ve vašem obvodu popisu by neměly představovat kód, který vykonává i několikrát, jako by to v CPU.Smyčka by prostě být použita k rozšíření opakované logiku výstižnější způsobem.

Naděje, která pomáhá.

 

Welcome to EDABoard.com

Sponsor

Back
Top