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
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