Na jednom obvodu GAL realizujte sčítačku s registrem na výstupu, která sečte dvě čísla za dobu rovnou zpoždění obvodu. Jaká maximální šířka sčítačky se dá takto realizovat?
Pokud chceme vytvořit sčítačku, jejíž zpoždění je rovno zpoždění obvodu GAL nelze použít kaskádně řazené úplné jednobitové sčítačky (pro nejnižší bit by stačila půlsčítačka), ale vytvořit kombinační obvod, který bude generovat výstup pro všechny kombinace vstupů.
Tabulka jednobitové a dvoubitové sčítačky (Ai, Bi jsou vstupy, Qi jsou výstupy):
Sčítačka 1b | ||||||
---|---|---|---|---|---|---|
A0 | B0 | Q1 | Q0 | |||
0 | 0 | 0 | 0 | |||
0 | 1 | 0 | 1 | |||
1 | 0 | 0 | 1 | |||
1 | 1 | 1 | 0 |
Sčítačka 2b | |||||||||
---|---|---|---|---|---|---|---|---|---|
A1 | A0 | B1 | B0 | Q2 | Q1 | Q0 | |||
0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
0 | 0 | 0 | 1 | 0 | 0 | 1 | |||
0 | 0 | 1 | 0 | 0 | 1 | 0 | |||
0 | 0 | 1 | 1 | 0 | 1 | 1 | |||
0 | 1 | 0 | 0 | 0 | 0 | 1 | |||
0 | 1 | 0 | 1 | 0 | 1 | 0 | |||
0 | 1 | 1 | 0 | 0 | 1 | 1 | |||
0 | 1 | 1 | 1 | 1 | 0 | 0 | |||
1 | 0 | 0 | 0 | 0 | 1 | 0 | |||
1 | 0 | 0 | 1 | 0 | 1 | 1 | |||
1 | 0 | 1 | 0 | 1 | 0 | 0 | |||
1 | 0 | 1 | 1 | 1 | 0 | 1 | |||
1 | 1 | 0 | 0 | 0 | 1 | 1 | |||
1 | 1 | 0 | 1 | 1 | 0 | 0 | |||
1 | 1 | 1 | 0 | 1 | 0 | 1 | |||
1 | 1 | 1 | 1 | 1 | 1 | 0 |
Po minimalizaci jednobitové, dvoubitové a tříbitové sčítačky zjistíme, že
tříbitová se už do daného obvodu GAL(PEEL) 18CV10 nevejde
(má u bitu Q2 součet 15 mintermů).
Dá se realizovat sčítačka maximálně dvoubitová.
Pro design, kompilaci a simulaci jsme použili program
WinPlace (3,6 MB)
zdrojový soubor .psf (2,0 KB)
zkompilovaný soubor .jed (5,3 KB)
Registr se na výstupy připojí pomocí designeru. Jde o klopné odvody typu D,
klopící s náběžnou hranou hodin (clk).
Do zdrojového souboru jsme zahrnuli testovací vektory pro všechny stavy
2bitové sčítačky. Stavy ukazuje následující obrázek
Zapojení vývodů:
Na konec jsme naprogramovali obvod GAL 18CV10 a na přípravku Laboro odzkoušeli funkčnost.
Celou tuto stránku si lze jednoduše stáhnout (88,1 KB).