SlideShare a Scribd company logo
1 of 51
Download to read offline
Zavod za elektroniku, mikroelektroniku,
računalne i inteligentne sustave
Marko Čupić, dipl. ing.
ZBIRKA RIJEŠENIH
ZADATAKA IZ
DIGITALNE
ELEKTRONIKE I
DIGITALNE LOGIKE
Zagreb, 2005
Registri. 227
10. Registri.
10.1. Zadatak
Uporabom D bistabila nacrtati shemu 4-bitnog registra s paralelnim ulazima i paralelnim
izlazima.
D
Q
Q
CP
D
Q
Q
CP
D
Q
Q
CP
D
Q
Q
CP
Q3 Q2 Q1 Q0
D3
D2
D1
D0
CP
10.2. Zadatak
Uporabom D bistabila nacrtati shemu 4-bitnog posmačnog registra sa serijskim ulazom i
paralelnim izlazima.
D
Q
Q
CP
D
Q
Q
CP
D
Q
Q
CP
D
Q
Q
CP
D
Q3
Q2
Q1
Q0
CP
10.3. Zadatak
Projektirati trobitni posmačni registar uporabom bridom okidanih D bistabila i potrebnog
broja multipleksora 4/1. Mogućnosti sklopa su sljedeće:
228 M. Čupić – Zbirka riješenih zadataka
S1 S0 Funkcija
0 0 Posmak udesno; punjenje bitom Sin
0 1 Posmak ulijevo; punjenje bitom Sin
1 0 Paralelni upis
1 1 Kružni posmak udesno
D
Q
Q
CP
D
Q
Q
CP
D
Q
Q
CP
Sin Pin0 Pin1 Pin2S0S1 CP
Pout0 Pout1 Pout2
d0
d1
d2
d3
a0a1
y
d0
d1
d2
d3
a0a1
y
d0
d1
d2
d3
a0a1
y
10.4. Zadatak
Projektirati sklop koji će prolaziti kroz
sljedeća stanja: 0 → 8 → 4 → 10 → 5 → 2
→ 9 → 12 → 14 → 7 → 3 → 1 → 0 → ...
Sklop je potrebno ostvariti uporabom
strukture prikazane na slici (posmačni
registar + multipleksor). Nespecificirana
stanja treba tako riješiti da sklop u
minimalnom broju koraka dođe u stanje 0.
Napišimo tablicu promjene stanja:
A DCB
CP
Sin
→
d0
d1
d7
d6
d5
d4
d3
d2
1
a0a1a2
y
mux 8/1
CP
Registri. 229
A B C D A' B' C' D' Sin=A'
0 0 0 0 → 1 0 0 0
0 0 0 1 → 0 0 0 0
D
0 0 1 0 → 1 0 0 1
0 0 1 1 → 0 0 0 1
D
0 1 0 0 → 1 0 1 0
0 1 0 1 → 0 0 1 0 D
0 1 1 0 → 0 0 1 1
0 1 1 1 → 0 0 1 1
0
1 0 0 0 → 0 1 0 0
1 0 0 1 → 1 1 0 0
D
1 0 1 0 → 0 1 0 1
1 0 1 1 → 1 1 0 1
D
1 1 0 0 → 1 1 1 0
1 1 0 1 → 0 1 1 0
D
1 1 1 0 → 0 1 1 1
1 1 1 1 → 0 1 1 1
0
Objašnjenje:
U svakom retku ABCD predstavlja početno stanje a A'B'C'D' predstavlja novo stanje.
Zbog načina na koji je sklop izveden (uporabom posmačnog registra) vrijedi: B'=A,
C'=B, D'=C. A' je određen tako da pređemo u ispravno stanje. Međutim, kako odrediti u
koja stanja treba prijeći iz stanja koja nisu zadana (6, 11, 13, 15)? Zadan je kriterij da se
u tom slučaju kroz minimalni broj stanja treba prijeći u stanje 0. Pogledajmo redom
kako smo primjenjivali taj kriterij.
Stanje 15
Iz stanja 15 = 1111 možemo prijeći u stanje Sin 111
(vidi sliku). Za Sin=0 to je 7, a za Sin=1 to je 15. Ako smo
došli u stanje 7, to stanje je definirano i do nule nam
treba još 3 koraka (označeno u zagradi). Uz čvor 7
podvučeno se nalazi i ukupni broj koraka do nule – 3
plus 1 za prijelaz 15 u 7. Ako smo došli u stanje 15,
vrtimo se ciklički u krug što nije put prema stanju 0 u
minimalnom broju koraka.
15
7 (3) 15
4
Stanje 13
Na isti način kao u prethodnom razmatranju (vidi sliku ispod) možemo utvrditi da iz
stanja 13 treba prijeći u stanje 6 (neovisno o tome što to stanje također nije definirano, a
alternativno stanje 14 jest).
Stanje 11
230 M. Čupić – Zbirka riješenih zadataka
Iz stanja 11 potrebno je prijeći u stanje 13 (vidi sliku ispod). Prilikom crtanja stabla
odluke možemo se zaustaviti na čvoru 13 bez da ga raščlanjujemo jer smo to napravili u
prethodnom koraku, i već smo utvrdili da je najkraći put iz stanja 13 do stanja 0
dugačak 4.
Stanje 6
Iz stanja 6 potrebno je prijeći u stanje 3 (vidi sliku ispod).
13
14 (4)
5
6
3 (2)
4
11
5 (8)
11
13
11
5 (8)
9
13 (4)
5
6
3 (2)
3
11 (5)
6
Shema traženog sklopa je dakle:
A DCB
CP
Sin
→
d0
d1
d7
d6
d5
d4
d3
d2
1
a0a1a2
y
mux 8/1
CP
0
0
Registri. 231
10.5. Zadatak
Uporabom potpunog zbrajala i potrebnog broja sinkronih bridom okidanih D registara
realizirati sklop koji obavlja serijsko zbrajanje dvaju binarnih brojeva. Objasniti rad sklopa.
Prikazati na vremenskom dijagramu proces zbrajanja 4-bitnih brojeva 5 i 9.
Sklop je prikazan na slici.
Si
CiCi-1
Ai
FBi
D
Q
Q
CP
D
Q
Q
CP
Ain
Bin
Reset
CP
Rout
Cout
Bitovi brojeva dovode se serijski na ulaze Ain i Bin pri čemu se najprije dovodi najmanje
značajni bit. Signalom Reset najprije je potrebno resetirati D bistabile. Prvi D bistabil
čuva bit rezultata, dok drugi D bistabil čuva bit preljeva potreban za zbrajanje sljedećih
značajnijih bitova.
Rout čuva rezultat zbrajanja trenutnih bitova a Cout je preljev nastao zbrajanjem bitova
koji su u trenutku rastućeg brida CP-a bili na ulazu potpunog zbrajala.
Vremenski dijagram prikazan je u nastavku.
Uočiti da signal Reset djeluje asinkrono.
232 M. Čupić – Zbirka riješenih zadataka
t
Ain
Bin
Reset
CP
Rout
Cout
10
1 10 0
1 0
5 = 0101(2)
9 = 1001(2)
0
0 0 01
1 1 1
14 = 1110(2)
t
t
t
t
t
10.6. Zadatak
Uporabom potrebnog broja D bistabila i multipleksora 2/1 ostvariti 3-bitni registar s
mogućnošću paralelnog upisa podataka. Rad registra definiran je signalom L na način:
Signal L Akcija
0 Ostaviti prethodno stanje registra
1 Upisati stanje s paralelnih ulaza
Di su paralelni ulazi, a Qi su izlazi registra.
Registri. 233
D
Q
Q
CP
0
1
a0
y D
Q
Q
CP
0
1
a0
y D
Q
Q
CP
0
1
a0
y
D0
D1
Q0
D2
Q1
Q2
CP
L
10.7. Zadatak
Uporabom dva 4-bitna posmačna registra sa serijskim i paralelnim ulazima i serijskim
izlazom čija je funkcionalnost opisana tablicom ostvariti 8-bitni posmačni registar iste
funkcionalnosti. Dozvoljeno je još koristiti multipleksor te potreban broj osnovnih logičkih
sklopova.
S1 S0 Funkcija
0 0 Posmak udesno; punjenje bitom SRin
0 1 Posmak ulijevo; punjenje bitom SLin
1 0 Paralelni upis
1 1 Resetiranje registra
Za ovaj jednostavan slučaj zadanih operacija sklopovi se mogu spojiti direktno, kao što
je prikazano na shemi.
A DCB
CP
SLin
→
SRin
SLout
SRout
A DCB
CP
SLin
→
SRin
SLout
SRout
A DCB E HGF
SLin
SRoutSRin
SLout
CP
S0
S1
S0
S1
S0S1
10.8. Zadatak
Uporabom dva 4-bitna posmačna registra sa serijskim i paralelnim ulazima i serijskim
izlazom čija je funkcionalnost prikazana tablicom ostvariti 8-bitni posmačni registar iste
funkcionalnosti. Dozvoljeno je još koristiti multipleksor 2/1 te dekoder 2/4.
234 M. Čupić – Zbirka riješenih zadataka
S1 S0 Funkcija
0 0 Posmak udesno; punjenje bitom SRin
0 1 Posmak ulijevo; punjenje bitom SLin
1 0 Paralelni upis
1 1 Kružni posmak udesno
Kao osnova za rješavanje ovog zadatka može nam poslužiti prethodni zadatak.
Međutim, potrebno je uočiti bitnu razliku: funkcioniranje sklopa za vrijednost 11
upravljačkih signala. Tada registar interno obavlja kružni pomak u desno, pri čemu se
ne koriste izlaz SRout i ulaz SRin. Ako bismo na predloženi način spojili registre, za
kombinaciju 11 ne bismo dobili kružni pomak u desno 8-bitnog podatka, već podatak u
kojem su prva četiri bita i druga četiri bita kružno pomaknuta u desno. Problem
možemo riješiti tako da kružni pomak u desno 8-bitnog podatka obavimo "običnim"
pomakom u desno, a izvana zadnji bit podatka vratimo na ulaz prvog registra. Dakle,
upravljačke signale ne smijemo direktno dovoditi na ulaze Si. Uvedimo pomoćne
signale S0x i S1x (koje ćemo stvarmo dovoditi na upravljačke ulaze) i pomoćni signal K
(koji će označavati da se radi o kružnom pomaku).
S1 S0 S1x S0x K
0 0 0 0 0
0 1 0 1 0
1 0 1 0 0
1 1 0 0 1
Iz tablice možemo očitati tražene funkcije (odnosno minterme):
2011 mSSS x == , 1010 mSSS x == , 301 mSSK == .
Konačni sklop tada je prikazan na sljedećoj slici:
Registri. 235
A DCB
CP
SLin
→
SRin
SLout
SRout
A DCB
CP
SLin
→
SRin
SLout
SRout
A DCB E HGF
SLin
SRout
SRin
SLout
CP
S0
S1
S0S1
d0
d1
a
y
a0
a1
d0d1d2d3
dek 2/4
S0S1
10.9. Zadatak
Napisati strukturni model 4-bitnog posmačnog registra sa serijskim ulazom i paralelnim
izlazima, te ulazom za reset. Kao osnovu za opis registra koristiti komponentu Dbistabil
opisanu u zadatku 8.4.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
ENTITY Reg4bit IS PORT (
Sin, Reset: IN std_logic;
Q: OUT std_logic_vector( 3 DOWNTO 0);
Clock: IN std_logic
);
END Reg4bit;
ARCHITECTURE Structural OF Reg4bit IS
COMPONENT Dbistabil IS PORT (
D, Reset: IN std_logic;
Q, Qn: OUT std_logic;
Clock: IN std_logic
);
END COmponent;
SIGNAL Qint: std_logic_vector( 3 DOWNTO 0);
BEGIN
-- povezivanje pojedinih D bistabila u 4-bitni registar
D3: Dbistabil PORT map (Sin, Reset, Qint(3), open, Clock);
D2: Dbistabil PORT map (Qint(3), Reset, Qint(2), open, Clock);
D1: Dbistabil PORT map (Qint(2), Reset, Qint(1), open, Clock);
D0: Dbistabil PORT map (Qint(1), Reset, Qint(0), open, Clock);
-- preslikavanje izlaza bistabila na izlaz 4-bitnog registra
236 M. Čupić – Zbirka riješenih zadataka
Q <= Qint;
END Structural;
10.10. Zadatak
Ponašajnim VHDL-om modelirati registar prikazan slikom. Registar
nailaskom impulsa CP pohranjuje vrijednost narinutu na njegovom
ulazu. Upravljački ulazi S i C (postavljanje i brisanje) moraju biti
sinkroni. Svi signali moraju biti isključivo ulazni odnosno izlazni.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY d_reg IS
PORT (
clk, s, c: IN std_logic;
d: IN std_logic_vector (1 downto 0);
q: OUT std_logic_vector (1 downto 0)
);
END d_reg;
ARCHITECTURE Behavioral OF d_reg IS
BEGIN
PROCESS (clk, s, c, d)
BEGIN
IF (falling_edge(clk)) THEN
IF (s = '0') THEN
q <= "11";
ELSIF (c = '0') THEN
q <= "00";
ELSE
q <= d;
END IF;
END IF;
END PROCESS;
END Behavioral;
D
S
C
CP
Q
2 2
Registri. 237
10.11. Zadatak
Korištenjem registra iz prethodnog zadatka nacrtati shemu 5-
bitnog posmačnog registra prikazanog na slici i napisati
odgovarajuću specifikaciju u VHDL-u. Operacije koje
obavlja registar određene su ulazom ctrl: 00 – ne događa se
ništa, 01 – posmak u desno, 10 – paralelni upis te 11 –
nedefinirano. Napomena: sklop iz prethodnog zadatka
upotrebljavati kao crnu kutiju!
Nacrtajmo najprije kako bismo spojili sve potrebne sklopove. Nepotpuna shema
prikazana je u nastavku:
Za realizaciju sklopa koristimo tri sklopa iz prethodnog zadatka čime dobivamo
mogućnost izrade čak 6-bitnog registra (pa nećemo iskoristiti sve – lijeva strana sklopa
r2 ostat će neiskorištena). Uočimo sada ulaze i izlaze sklopa. Ulazi su pin (5-bitni
vektor), sin, ctrl (2-bitni vektor), reset i clk, dok je izlaz pout (5-bitni vektor).
Vektori su prikazani u točkastom pravokutniku. Također koristimo dva interna signala:
pint (6-bitni vektor) i pouti (6-bitni vektor).
Uvidom u shemu sklopa očito je da se interni signal pouti direktno spaja na izlaz
sklopa pout. No trebamo utvrditi što treba spojiti na signal pint.
Analizirajmo funkciju sklopa. Kada je na ctrl vrijednost 00, sklop treba zadržati
postojeće stanje. To znači da mora vrijediti pint(i)=pouti(i); što je bilo na izlazu, to treba
doći na ulaz kako bi se u sljedećem koraku opet pojavilo na izlazu. Ovaj slučaj, dakle,
možemo opisati izrazom:
pint(i) <= not crtl(1) and not ctrl(0) and pouti(i).
Za slučaj da je na ctrl vrijednost 10, sklop treba obaviti paralelni upis, tj.:
CP
reset
Sin
Pin
Pout
ctrl
5
52
238 M. Čupić – Zbirka riješenih zadataka
pint(i) <= crtl(1) and not ctrl(0) and pin(i).
Konačno, za slučaj da je na ctrl vrijednost 01, sklop treba obaviti posmak udesno i
punjenje lijeve pozicije s ulaza sin, tj. gledajući sliku treba vrijediti:
pint(4) <= not crtl(1) and ctrl(0) and sin,
pint(i) <= not crtl(1) and ctrl(0) and pouti(i+1), za 0<=i<4.
Kako je ponašanje za kombinaciju 11 nedefinirano, izrazi se mogu pojednostavniti, tako
da se promatraju slučajevi kada su oba bita ctrl u 0, nulti u 1 ili pak prvi u jedan.
Kako su analizirani slučajevi potpuno disjunktni, navedeni izrazi za sve slučajeve mogu
se spojiti logičkom operacijom ILI, iz čega slijedi navedeno rješenje. Nekorišteni ulaz
pint(5) spaja se ne logičku jedinicu.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY shift is
PORT (
pout: OUT std_logic_vector (4 DOWNTO 0);
sin, reset, clk: IN std_logic;
ctrl: IN std_logic_vector (1 DOWNTO 0);
pin: IN std_logic_vector (4 DOWNTO 0)
);
END shift;
ARCHITECTURE Structural OF shift IS
COMPONENT d_reg
PORT (
clk, s, c: IN std_logic;
d: IN std_logic_vector (1 DOWNTO 0);
q: OUT std_logic_vector (1 DOWNTO 0)
);
END COMPONENT;
SIGNAL pint: std_logic_vector(5 DOWNTO 0);
SIGNAL pouti: std_logic_vector(5 DOWNTO 0);
BEGIN
pint (0) <= (ctrl(1) AND pin(0)) OR (ctrl(0) AND pouti(1))
OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(0));
pint (1) <= (ctrl(1) AND pin(1)) OR (ctrl(0) AND pouti(2))
OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(1));
pint (2) <= (ctrl(1) AND pin(2)) OR (ctrl(0) AND pouti(3))
OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(2));
pint (3) <= (ctrl(1) AND pin(3)) OR (ctrl(0) AND pouti(4))
OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(3));
pint (4) <= (ctrl(1) AND pin(4)) OR (ctrl(0) AND sin)
OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(4));
pint (5) <= '0';
r0: d_reg PORT MAP (clk, '1', reset, pint (1 DOWNTO 0),
pouti(1 DOWNTO 0));
r1: d_reg PORT MAP (clk, '1', reset, pint (3 DOWNTO 2),
Registri. 239
pouti(3 DOWNTO 2));
r2: d_reg PORT MAP (clk, '1', reset, pint (5 DOWNTO 4),
pouti(5 DOWNTO 4));
pout <= pouti(4 DOWNTO 0);
END Structural;
Zašto je uopće uveden interni signal (vektor) pouti? Razlog tomu je činjenica da
interni signal pint koji se dovodi na ulaze dvobitnih registara ovisi o trenutnom izlazu
sklopa. No kako je trenutni izlaz sklopa (pout) u opisu sklopa proglašen izlaznim
(out), njegova se vrijednost ne može čitati! Da bismo riješili taj problem, možemo
postupiti dvojako: ili pout proglasiti ulazom/izlazom (dakle, u VHDL-u to bi bilo
inout), ili uvesti interni signal koji direktno spajamo na izlaz sklopa. Prvo rješenje je
loše jer može rezultirati sintezom dodatnog sklopovlja (kako bi se osiguralo da se s tih
pinova sklopa doista može i čitati i pisati). Drugo je rješenje, iz očitog razloga, bolje.
10.12. Zadatak
Uporabom potrebnog broja sinkronih bridom okidanih JK bistabila ostvariti 4-bitni posmačni
registar sa serijskim ulazom i paralelnim izlazom. Dozvoljeno je koristiti jedan invertor.
J
Q
Q
CP
K
J
Q
Q
CP
K
J
Q
Q
CP
K
J
Q
Q
CP
K1
D0
D1
D2
D3
CP
Sin
Objašnjenje:
Prvi bistabil uporabom invertora pretvoren je u D bistabil koji je i inače osnova za
izgradnju registara. Međutim, kako smo time potrošili raspoložive invertore, potrebno
se je dosjetiti kako i ostale JK bistabile pretvoriti u D bistabile. To nije preteško jer je
uvjet da bismo iz JK bistabila dobili D bistabil upravo dovođenje komplementarnih
vrijednosti na ulaze J i K. No komplementarne vrijednosti već imamo na izlazu
prethodnog bistabila, pa je dovoljno samo spojiti izlaz bistabila sa J ulazom sljedećeg
JK bistabila, a komplementirani izlaz sa K ulazom.
240 M. Čupić – Zbirka riješenih zadataka
10.13. Zadatak
Prikazati funkciju sklopa 74LS194. Opisati sklop ponašajnim VHDL-om.
Sklop 74LS194 ima funkciju posmačnog registra, čije je sučelje
prikazano na slici, a funkcija opisana tablicom:
• Posmak u lijevo ide od A prema D
• Posmak u desno ide od D prema A
• CLR je asinkron
S1 S0 Akcija QA* QB* QC* QD*
0 0 Zadrži QA QB QC QD
0 1 Posmak desno RIN QA QB QC
1 0 Posmak lijevo QB QC QD LIN
1 1 Učitaj A B C D
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY SHREG74LS194 IS
PORT ( CLK, CLR, RIN, LIN : IN STD_LOGIC;
S : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
D : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END SHREG74LS194;
ARCHITECTURE SHREG_ARCH OF SHREG74LS194 IS
SIGNAL IQ : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS (CLK, CLR, IQ)
BEGIN
IF (CLR='1') THEN
IQ <= "0000";
ELSIF (CLK'event AND CLK='1') THEN
CASE S IS
WHEN "00" => NULL;
WHEN "01" => IQ <= RIN & IQ(3 DOWNTO 1);
WHEN "10" => IQ <= IQ(2 DOWNTO 0) & LIN;
WHEN "11" => IQ <= D;
WHEN OTHERS => NULL;
END CASE;
END IF;
Q <= IQ;
END PROCESS;
END SHREG_ARCH;
Registri. 241
10.14. Zadatak
Ponašajnim VHDL-om modelirati 8-bitni posmačni registar sa serijskim i paralelnim ulazima
i paralelnim izlazom, čija je funkcija zadana tablično:
S2 S1 S0 Akcija
0 0 0 Zadrži
0 0 1 Učitaj
0 1 0 Posmak u desno, punjenje s LIN
0 1 1 Posmak u lijevo, punjenje s RIN
1 0 0 Ciklički posmak u desno
1 0 1 Ciklički posmak u lijevo
1 1 0 Aritmetički posmak u desno
1 1 1 Aritmetički posmak u lijevo
Signal za brisanje CLR mora biti izveden asinkrono.
library IEEE;
use IEEE.std_logic_1164.all;
ENTITY SHREG IS
PORT ( CLK, CLR, RIN, LIN : IN STD_LOGIC;
S : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END SHREG;
ARCHITECTURE SHREG_ARCH OF SHREG IS
SIGNAL IQ : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
PROCESS (CLK, CLR, IQ)
BEGIN
IF (CLR='1') THEN
IQ <= (OTHERS=>'0');
ELSIF (CLK'event AND CLK='1') THEN
CASE S IS
WHEN "000" => NULL;
WHEN "001" => IQ <= D;
WHEN "010" => IQ <= LIN & IQ(7 DOWNTO 1);
WHEN "011" => IQ <= IQ(6 DOWNTO 0) & RIN;
WHEN "100" => IQ <= IQ(0) & IQ(7 DOWNTO 1);
WHEN "101" => IQ <= IQ(6 DOWNTO 0) & IQ(7);
WHEN "110" => IQ <= IQ(7) & IQ(7 DOWNTO 1);
WHEN "111" => IQ <= IQ(6 DOWNTO 0) & '0';
WHEN OTHERS => NULL;
END CASE;
END IF;
Q <= IQ;
END PROCESS;
END SHREG_ARCH;
242 M. Čupić – Zbirka riješenih zadataka
10.15. Pismeni ispit, 09. 02. 2004, 1. zadatak
Na raspolaganju su sljedeći elementi: trobitni posmačni registar (s
upravljačkim ulazom RS / : 0 – rotacija, 1 – posmak; vidi sliku),
D bistabil te multipleksor 2/1. Samo njihovom uporabom
projektirati četverobitni posmačni registar istih mogućnosti.
Sin
Q2 Q1 Q0
CPRS /
→
D Q
CP
1
0
1
Q3 Q2 Q1 Q0
Sin
RS /
CP
Sin
Q2 Q1 Q0
CPRS /
→
Registri. 243
ZADACI ZA VJEŽBU
1. Na raspolaganju su tri 4-bitna registra čija je funkcija opisana tablicom, a sučelje
prikazano slikom. Uporabom samo tih registara i tri multipleksora 4/1 (gdje/ako treba)
nacrtati shemu 12-bitnog registra koji:
a) ima istu funkcionalnost kao i 4-bitni registar
b) ima istu funkcionalnost kao i 4-bitni registar, samo što umjesto posmaka obavlja
rotaciju.
Za b) dio zadatka K-tablicama pronaći minimalni oblik funkcija Sin svakog registra.
Ctrl1 Ctrl0 Funkcija
0 0 Čuva se trenutno pohranjen podatak.
0 1 Posmak u desno, punjenje sa Sin.
1 0 Posmak u lijevo, punjenje sa Sin.
1 1 Paralelni upis.
2. Nacrtati potpuni dijagram prijelaza stanja 4-bitnog posmačnog registra udesno. Registar
ima serijski ulaz, paralelne izlaze te na svaki padajući brid CP-a obavlja posmak
udesno. Napisati ponašajni model ovog sklopa u VHDL-u.
3. Na raspolaganju je posmačni registar sa serijskim ulazom i paralelnim izlazima.
Njegovom uporabom projektirati sekvencijski sklop koji na izlazu ciklički generira
slijed 0,1,1,0,0,1,1,1. Na raspolaganju su još i osnovni logički sklopovi.
4. Na raspolaganju je 3-bitni registar s paralelnim ulazima i paralelnim izlazima.
Njegovom uporabom projektirati sekvencijski sklop koji na izlazu ciklički generira
slijed 0,1,3,2,6,7,5,4.
Brojila. 245
11. Brojila.
11.1. Zadatak
Asinkrono binarno brojilo sastavljeno je od 3 dvostruka JK bistabila. Na ulaz brojila dovode
se impulsi takta. Projektirati sklop temeljen na ovom brojilu koji će nakon svakih osam
impulsa takta na izlazu dati jedinicu. Koje stanje treba dekodirati ako se želi raditi na
maksimalnoj frekvenciji? Na raspolaganju su još samo NI sklopovi.
Asinkrono brojilo ostvareno JK bistabilima prikazano je na slici. Uočiti da se JK
bistabili zapravo koriste kao T bistabili (J=K=1).
J
K Q
Q
CP
J
K Q
Q
CP
J
K Q
Q
CP
1
CP
B0 B1 B2
Kako imamo brojilo od 3 bistabila, ukupan broj stanja kroz koja bistabili prolaze jest
upravo 8 (=23
). Obzirom da moramo nakon svakih 8 impulsa na izlazu generirati 1, to
upravo znači da možemo detektirati jedno od 8 stanja. Naime, ako npr. generiramo
jedinicu kada se na izlazu brojila pojavi 6, do sljedećeg pojavljivanja broja 6 opet će
proći osam otkucaja takta.
Dodatni uvjet zadatka zahtjeva maksimalno brz odziv sklopa. Pogledajmo zato koliko
nam vremena treba da bismo detektirali broj 6 na izlazu. Kada brojilo prelazi sa 5 na 6,
mijenjaju se dva bita:
B2 B1 B0 B2 B1 B0 Broj bitova koji se mijenja
1 0 1 → 1 1 0 2
U trenutku kada dođe impuls takta na ulaz bistabila B0, stanje tog bistabila se mijenja iz
1 u 0 nakon tdb. Zbog te promjene se nakon novih tdb mijenja stanje bistabila B1 iz 0 u 1
(tdb je vrijeme potrebno za promjenu stanja bistabila). Da bismo dekodirali stanje 6 (tj.
1102), odnosno minterm 012 BBB :
( )( )012012012 ,, BBBNINIBBBBBB ==
(napomena: 0B ne treba ostvarivati NI sklopom jer iz svakog bistabila imamo izlaz i
njegov komplement) trebamo sklop:
& &
2B
1B
0B
246 M. Čupić – Zbirka riješenih zadataka
Ovaj sklop će za dekodiranje stanja 6 trebati još 2 tdls (jedan za NI sklop koji množi
2B , 1B i 0B , i jedan za završni invertor; tdls je vrijeme potrebno da rezultat prođe na
izlaz logičkog sklopa), pa će ukupno vrijeme potrebno za dekodiranje ovog stanja biti:
dlsdbdek ttt ⋅+⋅= 226
Pitanje je da li se to može obaviti i brže. Pogledajmo sva moguća stanja koja možemo
dekodirati i koliko je to brzo moguće:
B2 B1 B0 B2 B1 B0
Broj bitova koji se
mijenja
Vrijeme dekodiranja
stanja
1 1 1 → 0 0 0 3 dlsdbdek ttt ⋅+⋅= 230
0 0 0 → 0 0 1 1 dlsdbdek ttt ⋅+⋅= 211
0 0 1 → 0 1 0 2 dlsdbdek ttt ⋅+⋅= 222
0 1 0 → 0 1 1 1 dlsdbdek ttt ⋅+⋅= 213
0 1 1 → 1 0 0 3 dlsdbdek ttt ⋅+⋅= 234
1 0 0 → 1 0 1 1 dlsdbdek ttt ⋅+⋅= 215
1 0 1 → 1 1 0 2 dlsdbdek ttt ⋅+⋅= 226
1 1 0 → 1 1 1 1 dlsdbdek ttt ⋅+⋅= 217
Vidimo da su najbolji kandidati za dekodiranje stanja 1, 3, 5 i 7. Odlučimo li se za
dekodiranje stanja 7, konačni sklop će izgledati:
J
K Q
Q
CP
J
K Q
Q
CP
J
K Q
Q
CP
1
CP
B0 B1 B2
& & m7
Brojila. 247
11.2. Zadatak
Realizirati asinkrono brojilo sa 12 stanja uporabom dvostrukih JK bistabila. Pri tome se
koristiti:
a) Asinkronim ulazom za postavljanje,
b) Asinkronim ulazom za brisanje.
Odrediti potreban broj bistabila. Na raspolaganju su još i NI sklopovi. Ako je poznato da je tdls
= 10 ns, tdb = 20 ns a točitanja = 20 ns, odrediti za svaki slučaj maksimalnu frekvenciju rada
sklopa.
Ako brojilo mora proći kroz N stanja, mora vrijediti n
N 2≤ , gdje je n broj bistabila.
Ova jednadžba ima beskonačno mnogo rješenja, ali mi ćemo naravno uzeti najmanji
mogući n koji je zadovoljava, pa je time rješenje jednoznačno. Za N=12 traženi n je 4,
jer je upravo 16212 4
=≤ .
a) Uporaba asinkronog ulaza za postavljanje.
Kada se aktivira asinkroni ulaz za postavljanje, brojilo prelazi u stanje "sve jedinice", tj.
četiri-bitno brojilo prelazi u stanje 1111(2) = 15, što traje do sljedećeg impulsa CP. No
kako je stanje 15 stanje koje pripada skupu stanja kroz koje brojilo prolazi, pogledajmo
kroz koja još stanja brojilo mora prolaziti:
15→0→1→2→3→4→5→6→7→8→9→10→11→12→13→14→15
12 stanja
postaviti u 15
Na prethodnom dijagramu vidimo kada treba djelovati na ulaze za postavljanje: kada
brojilo dođe do broja 11 (što je zapravo N-1), brojilo je potrebno prebaciti u stanje 15.
Stanje 11 ( 0123 BBBB ) može se potpuno dekodirati uporabom 4 ulazni NI sklopa. Sklop
je sljedeći:
248 M. Čupić – Zbirka riješenih zadataka
J
K Q
Q
CP
dS
dC
B0
J
K Q
Q
CP
dS
dC
B1
J
K Q
Q
CP
dS
dC
B2
J
K Q
Q
CP
dS
dC
B3
&
D0 D1 D2 D3
CP
1
Vremenska analiza
Da bismo utvrdili kojom maksimalnom frekvencijom smiju dolaziti impulsi takta,
potrebno je razmotriti dva vremena: (i) vrijeme potrebno za slijednu promjenu stanja u
ciklusu brojanja i (ii) vrijeme potrebno za povratak na početak ciklusa. Maksimalna
frekvencija rada određena je većim od ta dva vremena.
B2 B2 B1 B0 B2 B2 B1 B0
Broj bitova koji se
mijenja
1 1 1 1 → 0 0 0 0 4
0 0 0 0 → 0 0 0 1 1
0 0 0 1 → 0 0 1 0 2
0 0 1 0 → 0 0 1 1 1
0 0 1 1 → 0 1 0 0 3
0 1 0 0 → 0 1 0 1 1
0 1 0 1 → 0 1 1 0 2
0 1 1 0 → 0 1 1 1 1
0 1 1 1 → 1 0 0 0 4
1 0 0 0 → 1 0 0 1 1
1 0 0 1 → 1 0 1 0 2
1 0 1 0 → 1 0 1 1 1
Najveći broj promjena bitova je 4, pa je najveće vrijeme potrebno za slijednu promjenu
stanja u ciklusu brojanja (bez očitavanja) jednako 802044 =⋅=⋅ dbt ns. Ovaj dio
mogao se je riješiti i bez izrade tablice, obzirom da su kod ovog tipa brojila stanja "sve
nula" i "sve jedan" sastavni i susjedni dijelovi ciklusa brojanja, tako da će maksimalno
vrijeme ovdje biti određeno kao kašnjenje jednog bistabila puta broj bistabila u brojilu.
Za izračun vremena potrebnog za povratak na početak ciklusa promotrimo zadnje stanje
u ciklusu:
Brojila. 249
B2 B2 B1 B0 B2 B2 B1 B0
Broj bitova koji se
mijenja
1 0 1 0 → 1 0 1 1 1
Na signal takta brojilo iz 1010 prelazi u 1011 za što je potrebno dbt⋅1 . Zatim nakon
vremena dlst⋅1 reagira sklop za detekciju stanja 11 i generira signal za postavljanje na
ulaze svih bistabila. Bistabili reagiraju paralelno i nakon još dbt⋅1 svi su u stanju 1 čime
je završena promjena. Ukupno vrijeme potrebno za ovu operaciju tada je
5010120212111 =⋅+⋅=⋅+⋅=⋅+⋅+⋅ dlsdbdbdlsdb ttttt ns. Ovaj račun donekle je
neprecizan jer novi impuls ne bi smio stići tako dugo dok je signal za postavljanje
aktivan (pa bismo trebali sačekati još dlst⋅1 nakon što se svi bistabili postave tako da
logički NI sklop ukloni taj signal). Međutim, ovo vrijeme maskira se vremenom
očitanja koje je puno duže, pa u ovom slučaju ne igra nikakvu ulogu.
Veće od ova dva vremena je prvo, pa je maksimalna frekvencija rada sklopa određena
recipročnom vrijednošću sume prvog vremena i vremena potrebnog za očitavanje
stanja:
MHz
nsnsns
f 10
100
1
2080
1
max ==
+
=
b) Uporaba asinkronog ulaza za brisanje.
Kada se aktivira asinkroni ulaz za brisanje, brojilo prelazi u stanje "sve nule", tj. četiri-
bitno brojilo prelazi u stanje 0000(2) = 0, što traje do sljedećeg impulsa CP. No kako je
stanje 0 stanje koje pripada skupu stanja kroz koje brojilo prolazi, pogledajmo kroz koja
još stanja brojilo mora prolaziti:
0→1→2→3→4→5→6→7→8→9→10→11→12→13→14→15→0
12 stanja
postaviti u 0
Na prethodnom dijagramu vidimo kada treba djelovati na ulaze za brisanje: kada brojilo
dođe do broja 12 (što je zapravo N), brojilo je potrebno prebaciti u stanje 0. Stanje 12
može se potpuno dekodirati (4 ulazni I sklop). Međutim, u ovom slučaju (kada se
koriste brojila koja broje unaprijed i ulaz za brisanje) dovoljno je na ulaze NI sklopa
dovesti one izlaze brojila koji su u stanju koje dekodiramo postavljeni na 1. Dakle, kod
dekodiranja stanja 12 = 1100(2) na ulaze NI sklopa dovodimo izlaze B3 i B2. Sklop je
sljedeći:
250 M. Čupić – Zbirka riješenih zadataka
J
K Q
Q
CP
dS
dC
B0
J
K Q
Q
CP
dS
dC
B1
J
K Q
Q
CP
dS
dC
B2
J
K Q
Q
CP
dS
dC
B3
&
CP
1
D0 D1 D2 D3
Analiziramo li malo bolje ovaj sklop, uočiti ćemo da bi sklop mogao imati problema u
radu. Naime, u trenutku kada sklop dođe u stanje 12, aktivira se ulaz za brisanje. No
kako bistabili općenito nisu identični, moguće je da npr. bistabil B3 ode u nulu puno
prije bistabila B2. No čim B3 ode u nulu, stanje više nije 12 (1100(2)), već 4 (0100(2)).
Zbog toga sklop za detekciju stanja 12 prestaje biti aktivan te je moguće da bistabil B2
ostane i dalje postavljen, jer je signal za reset trajao prekratko. Kako bi se ovo izbjeglo,
može se uporabom još dva NI sklopa ostvariti bistabil koji će se resetirati na signal za
reset, a postaviti u neaktivno stanje signalom takta, kao što je prikazano na slici:
J
K Q
Q
CP
dS
dC
B0
J
K Q
Q
CP
dS
dC
B1
J
K Q
Q
CP
dS
dC
B2
J
K Q
Q
CP
dS
dC
B3
&
CP
1
D0 D1 D2 D3
&
&&
Q
QR
S
Kod ove izvedbe, čak i ako se npr. B3 resetira puno ranije od B2, što će za posljedicu
imati prestanak djelovanja signala koji detektira stanje 12, signal za reset će i dalje
djelovati jer je on pohranjen u bistabilu koji će se postaviti u neaktivno stanje (1) tek
kada CP postane 1 (CP djeluje sa 1 jer ga naknadno dodatni NI sklop invertira).
Brojila. 251
Vremenska analiza (bez pomoćnog bistabila)
Ukoliko je zadovoljen zahtjev o minimalnom broju bistabila, tada će i u ovom slučaju
postojati prijelaz u kojem svi bistabili mijenjaju stanje. To znači da je najveće vrijeme
potrebno za slijednu promjenu stanja u ciklusu brojanja (bez očitavanja) jednako
802044 =⋅=⋅ dbt ns (jer imamo 4 bistabila).
Za izračun vremena potrebnog za povratak na početak ciklusa promotrimo zadnje stanje
u ciklusu:
B2 B2 B1 B0 B2 B2 B1 B0
Broj bitova koji se
mijenja
1 0 1 1 → 1 1 0 0 3
Na signal takta brojilo iz 1011 prelazi u 1100 za što je potrebno dbt⋅3 . Zatim nakon
vremena dlst⋅1 reagira sklop za detekciju stanja 12 i generira signal za postavljanje na
ulaze svih bistabila. Bistabili reagiraju paralelno i nakon još dbt⋅1 svi su u stanju 0 čime
je završena promjena. Ukupno vrijeme potrebno za ovu operaciju tada je
9010120414113 =⋅+⋅=⋅+⋅=⋅+⋅+⋅ dlsdbdbdlsdb ttttt ns.
Veće od ova dva vremena je drugo, pa je maksimalna frekvencija rada sklopa određena
recipročnom vrijednošću sume drugog vremena i vremena potrebnog za očitavanje
stanja:
MHz
nsnsns
f 09,9
110
1
2090
1
max ==
+
=
Analiza vremena uz pomoćni bistabil
Ova analiza nešto je složenija od prethodnog slučaja. Prvo vrijeme je isto
( 802044 =⋅=⋅ dbt ns). Dodajmo tome odmah i vrijeme očitavanja pa za prvi slučaj
imamo 1002080 =+ ns. Izračun vremena potrebnog za povratak na početak ciklusa je
nešto kompliciranije. Promotrimo situaciju kada je brojilo u stanju 11. Na padajući brid
CPa (od tog trenutka mjerimo vrijeme) brojilo nakon dbt⋅3 prelazi u stanje 12. Nakon
dlst⋅1 reagira sklop za detekciju stanja 12 i generira signal za reset pomoćnog bistabila.
Za reset pomoćnog bistabila potrebno je dlst⋅2 . Sada je izlaz pomoćnog bistabila 0 pa
se paralelno resetiraju svi bistabili brojila. Za što je potrebno još dbt⋅1 . Označimo ovaj
trenutak oznakon tx. Za vrijeme tx temeljem prethodnog razmatranja vrijedi:
dlsdbdbdlsdlsdbx ttttttt ⋅+⋅=⋅+⋅+⋅+⋅= 341213 . Tek sada CP smije otići u 1, čime će se
na izlazu invertora nakon dlst⋅1 pojaviti 0 koja će još nakon dlst⋅1 postaviti pomoćni
bistabil u 1 (ovime će se prestati djelovati na asinkrone ulaze za brisanje i brojilo će biti
spremno za novi impuls CPa). Uočimo da je tx zapravo vrijeme od padajućeg brida CPa
pa do pojave rastućeg brida CPa. Ako je signal CP simetričan, tada će minimalno
trajanje periode CPa biti xt⋅2 , ako je vrijeme očitavanja (koje također smije započeti
tek nakon tx) manje od tx. U suprotnom (točitanja > tx) će perioda CPa biti TCP=tx+točitanja.
U našem konkretnom slučaju 11010320434 =⋅+⋅=⋅+⋅= dlsdbx ttt ns, što je puno
252 M. Čupić – Zbirka riješenih zadataka
veće od točitanja. Zbog toga uzimamo 22011022 =⋅=⋅= xCP tT ns, što je definitivno
najveće dobiveno vrijeme koje zbog toga određuje maksimalnu frekvenciju sklopa:
MHz
nsT
f
CP
55,4
220
11
max ===
Treba međutim primjetiti da ovo ipak nije najveća moguća frekvencija rada sklopa.
Naime, da bi CP postavio pomoćni bistabil u 1, njemu treba dlst⋅1 (za prolaz kroz
invertor) i dlst⋅1 za postavljanje izlaza pomoćnog bistabila u 1, što je ukupno dlst⋅2 . No
tada bi (teoretski) CP mogao preći u 1 čak i u trenutku dlsx tt ⋅− 2 (jer će se bistabili
brojila u trenutku tx resetirati, pa se pomoćni bistabil smije postaviti u 1 već u trenutku
tx). Ovime bi se možda mogla povećati maksimalna frekvencija rada, međutim, ovakav
proračun vrijedi uz pretpostavku da će se svi bistabili resetirati upravo nakon dbt⋅1 . No
pomoćni bistabil smo i uveli jer nismo mogli garantirati da će ovo biti uvijek ispunjeno,
pa na ovaj način nećemo raditi.
Dodatak zadatku: smijemo li prilikom uporabe brojila koji broji unaprijed dekodirati
samo jedinice u svrhu resetiranja brojila? Pogledajmo slučaj koji smo imali u b) dijelu
zadatka, i minimizirajmo sklop za dekodiranje stanja 12. Brojilo u ovom slučaju broji:
0→1→...→9→10→11→(12→)0. Ovo znači da se stanja 13, 14 i 15 nikada neće
pojaviti, pa ih možemo označiti kao dont-care minterme. Postupak minimizacije daje:
D3D2
00 01 11 10
D1D0 00 0 0 1 0
01 0 0 × 0
11 0 0 × 0
10 0 0 × 0
23DD
čime su upravo izbačeni oni članovi koji su bili nula. No to vrijedi upravo zato što
dekodiramo najveći dozvoljeni broj. Ako bismo željeli dekodirati stanja u svrhu
postavljanja brojila u stanje "sve jedan", ovakvo razmišljanje ne bi vrijedilo (npr. a) dio
zadatka; dekodiramo 11, ali brojilo prelazi u 15 pa nije istina da su sva stanja veća od
11 dont-care stanja).
Za vježbu:
Nacrtati vremenske dijagrame za a) i b) dijelove zadatka.
Brojila. 253
11.3. Zadatak
Realizirati sinkrono trobitno binarno brojilo uporabom dvostrukih JK bistabila.
J
K Q
Q
CP
B0
J
K Q
Q
CP
B1
J
K Q
Q
CP
B2
CP
1
D0 D1 D2
&
11.4. Zadatak
Realizirati sinkrono trobitno binarno brojilo koje broji u Grayevom kodu uporabom
dvostrukih JK bistabila, i potrebnog broja osnovnih logičkih sklopova.
Napišimo tablicu promjene stanja u upišimo potrebne pobude bistabila:
n n+1
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 0 × 0 × 1 ×
0 0 1 0 1 1 0 × 1 × × 0
0 1 1 0 1 0 0 × × 0 × 1
0 1 0 1 1 0 1 × × 0 0 ×
1 1 0 1 1 1 × 0 × 0 1 ×
1 1 1 1 0 1 × 0 × 1 × 0
1 0 1 1 0 0 × 0 0 × × 1
1 0 0 0 0 0 × 1 0 × 0 ×
Očitavamo Ji i Ki kao funkcije od Q2, Q1 i Q0 u trenutku n i vršimo minimizaciju:
J2 Q1Q0
00 01 11 10
Q2 0 1
1 × × × ×
K2 Q1Q0
00 01 11 10
Q2 0 × × × ×
1 1
254 M. Čupić – Zbirka riješenih zadataka
J1 Q1Q0
00 01 11 10
Q2 0 1 × ×
1 × ×
K1 Q1Q0
00 01 11 10
Q2 0 × ×
1 × × 1
J0 Q1Q0
00 01 11 10
Q2 0 1 × ×
1 × × 1
K0 Q1Q0
00 01 11 10
Q2 0 × 1 ×
1 × 1 ×
12120
12120
021
021
012
012
QQQQK
QQQQJ
QQK
QQJ
QQK
QQJ
+=
+=
=
=
=
=
J
K Q
Q
CP
J
K Q
Q
CP
& J
K Q
Q
CP
&
CP
D0 D1 D2
B0
B1 B2
&&
1≥
1≥
&
&
&
&
11.5. Zadatak
Realizirati sinkrono trobitno brojilo uporabom dvostrukih JK bistabila, i potrebnog broja
osnovnih logičkih sklopova, koje prolazi kroz stanja: 0→4→1→5→7→0. Osigurati siguran
start brojila (tako da se nespecificirana stanja prebace u 0).
Napišimo tablicu prijelaza zajedno sa odgovarajućom pobudom bistabila:
Brojila. 255
n n+1
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 1 0 0 1 × 0 × 0 ×
0 0 1 1 0 1 1 × 0 × × 0
0 1 0 0 0 0 0 × × 1 0 ×
0 1 1 0 0 0 0 × × 1 × 1
1 0 0 0 0 1 × 1 0 × 1 ×
1 0 1 1 1 1 × 0 1 × × 0
1 1 0 0 0 0 × 1 × 1 0 ×
1 1 1 0 0 0 × 1 × 1 × 1
Očitavamo Ji i Ki kao funkcije od Q2, Q1 i Q0 u trenutku n i vršimo minimizaciju:
J2 Q1Q0
00 01 11 10
Q2 0 1 1
1 × × × ×
K2 Q1Q0
00 01 11 10
Q2 0 × × × ×
1 1 1 1
J1 Q1Q0
00 01 11 10
Q2 0 × ×
1 1 × ×
K1 Q1Q0
00 01 11 10
Q2 0 × × 1 1
1 × × 1 1
J0 Q1Q0
00 01 11 10
Q2 0 × ×
1 1 × ×
K0 Q1Q0
00 01 11 10
Q2 0 × 1 ×
1 × 1 ×
10
120
1
021
012
12
1
QK
QQJ
K
QQJ
QQK
QJ
=
=
=
=
+=
=
Shema sklopa:
256 M. Čupić – Zbirka riješenih zadataka
J
K Q
Q
CP
J
K Q
Q
CP
J
K Q
Q
CP
CP
D0 D1 D2
1≥
&
1
&
B0
B1 B2
11.6. Zadatak
Realizirati sinkrono trobitno brojilo uporabom dvostrukih JK bistabila, i potrebnog broja
osnovnih logičkih sklopova, koje prolazi kroz stanja: 0→4→1→5→7→0. Nije potrebno
osigurati siguran start brojila. Provjeriti da li će tako realizirano brojilo raditi ispravno.
Napišimo tablicu prijelaza zajedno sa odgovarajućom pobudom bistabila:
n n+1
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 1 0 0 1 × 0 × 0 ×
0 0 1 1 0 1 1 × 0 × × 0
0 1 0 × × × × × × × × ×
0 1 1 × × × × × × × × ×
1 0 0 0 0 1 × 1 0 × 1 ×
1 0 1 1 1 1 × 0 1 × × 0
1 1 0 × × × × × × × × ×
1 1 1 0 0 0 × 1 × 1 × 1
Napomena: prijelazi za stanja 2, 3 i 6 nisu zadani pa su u tablici označeni kao dont-care.
Zbog toga je i odgovarajuća pobuda označena s dont-care.
Očitavamo Ji i Ki kao funkcije od Q2, Q1 i Q0 u trenutku n i vršimo minimizaciju:
J2 Q1Q0
00 01 11 10
Q2 0 1 1 × ×
1 × × × ×
K2 Q1Q0
00 01 11 10
Q2 0 × × × ×
1 1 1 ×
Brojila. 257
J1 Q1Q0
00 01 11 10
Q2 0 × ×
1 1 × ×
K1 Q1Q0
00 01 11 10
Q2 0 × × × ×
1 × × 1 ×
J0 Q1Q0
00 01 11 10
Q2 0 × × ×
1 1 × × ×
K0 Q1Q0
00 01 11 10
Q2 0 × × ×
1 × 1 ×
Shema sklopa:
J
K Q
Q
CP
J
K Q
Q
CP
J
K Q
Q
CP
CP
D0 D1 D2
1≥
&
1
1
Provjera rada za nespecificirana stanja:
Ako je sklop u stanju 2: 010012 =QQQ . J2=1, K2=1, J1=0, K1=1, J0=0 i K0=1, zbog čega
će nakon djelovanja impulsa takta brojilo promijeniti stanje u 100012 =QQQ , što je
stanje 4.
Ako je sklop u stanju 3: 011012 =QQQ . J2=1, K2=1, J1=0, K1=1, J0=0 i K0=1, zbog čega
će nakon djelovanja impulsa takta brojilo promijeniti stanje u 100012 =QQQ , što je
stanje 4.
Ako je sklop u stanju 6: 110012 =QQQ . J2=1, K2=1, J1=0, K1=1, J0=1 i K0=1, zbog čega
će nakon djelovanja impulsa takta brojilo promijeniti stanje u 001012 =QQQ , što je
stanje 1.
Dakle, i ovako realiziran sklop će nakon prvog koraka sigurno ući u ciklus brojenja.
Moguće loša stvar je činjenica da je ulazak u ciklus brojenja iz nespecificiranih stanja
na različita mjesta.
258 M. Čupić – Zbirka riješenih zadataka
11.7. Zadatak
Projektirati trobitno asinkrono brojilo koje broji u ciklusu sa 7 stanja. Analizirati da li sklop
radi ispravno i predložiti rješenje uočenog problema. Za realizaciju brojila koristiti T bistabile
s ulazom za postavljanje stanja.
Ako koristimo ulaze za postavljanje, tada je stanje 111(2)≡7 sigurno dio ciklusa brojanja
jer djelovanjem na ove ulaze sklop odlazi u to stanje. Kako nam treba još 6 stanja,
kompletan ciklus brojanja biti će:
7 → 0 → 1 → 2 → 3 → 4 → 5 → (6) → 7
Moramo detektirati stanje 6 i djelovati na ulaze za postavljanje. 6=110(2), pa je shema
sklopa:
T
Q
Q
CP
B0
T
Q
Q
CP
B1
T
Q
Q
CP
B2
11 1
D0 D1
D2
ulaz
dS dS dS
&
Analizirajmo sada rad sklopa (sljedeća slika). Pretpostavimo da su u jednom trenutku
svi bistabili postavljeni u 0, pa se brojilo nalazi u stanju 0. Nailaskom padajućeg brida
ulaznog impulsa pokreće se promjena stanja bistabila B0. Međutim, ta se promjena
događa tek nakon vremena kašnjenja bistabila (tdb), tako da je sve do isteka vremena
kašnjenja bistabila brojilo još uvijek u stanju 0. Nakon vremena kašnjenja bistabila
bistabil mijenja stanje i brojilo prelazi u stanje 1. Kako se je na izlazu B0 (ulazu B1)
dogodio rastući brid, bistabil B1 ne reagira i došli smo u stabilno stanje.
Nailaskom sljedećeg padajućeg brida na ulazu brojila opet se pokreće promjena stanja
bistabila B0, koja se i dogodi nakon tdb, pa brojilo iz stanja 1 ulazi u stanje 0. No kako
se je sada uslijed pada izlaza B0 sa 1 na 0 dogodio padajući brid, pokreće se promjena
stanja bistabila B1, koja se dogodi nakon još jednog tdb. Time brojilo iz kratkotrajnog
prijelaznog stanja 0 prelazi u stanje 2. Kako se je u tom trenutku na izlazu B1 dogodio
rastući brid, nema nikakvog utjecaja na bistabil B2 pa je ovo stabilno stanje. Na sličan se
način mogu analizirati i ostala stanja.
Pogledajmo sada još kakav je odziv logičkog sklopa za detekciju stanja 6. Neka se
brojilo nalazi u stanju 5. Nailaskom padajućeg brida na ulazu brojila pokreće se
promjena stanja B0, koja se dogodi nakon tdb. Time brojilo dolazi u stanje 4. No budući
da se je bistabil B0 prešao iz stanja 1 u stanje 0 (tj. dogodio se je padajući brid), reagira i
bistabil B1 koji nakon još jednog tdb mijenja stanje u 1, čime brojilo iz prijelaznog stanja
Brojila. 259
4 prelazi u stanje 6. No sada će na stanje 6 reagirati sklop za detekciju stanja 6, i nakon
vremena kašnjenja logičkog sklopa (tdls) na izlazu će se pojaviti logička 0 koja se
dovodi na ulaze za postavljanje bistabila. Bistabili će svi reagirati nakon vremena
kašnjenja bistabila, i ući u stanje 7. Ovo će rezultirati nestankom stanja 6 koje detektira
logički sklop pa će se nakon vremena kašnjenja logičkog sklopa na njegovom izlazu
ponovno pojaviti neaktivno stanje. Time je završen nasilan prekid ciklusa brojanja.
Prema dosadašnjoj analizi čini se da će ovo brojilo raditi bez problema, kao što je to
prikazano na vremenskom dijagramu.
0
1 2 3 54 6 7 0 1 2 3
CP
Q0
Q1
Q2
R
6 4
0 02 4 0
Međutim, nastavimo analizu dalje. Brojilo je u stanju 7. Na sljedeći padajući brid
signala na ulazu sklopa nakon 1 tdb prvi bistabil mijenja stanje, i dolazi u prijelazno
stanje 110(2)≡6. No baš to stanje očitava i NI sklop, koji zatim generira impuls za
postavljanje bistabila u stanje 7! Brojilo nikada više neće izaći iz stanja 7. Zapravo,
kako zabranjeno stanje 6 traje točno tdb, a vrijeme potrebno za postavljanje bistabila
također smo modelirali sa tdb, moguća je još gora situacija – bistabili se ponekad mogu
postaviti, a ponekad mogu i ne reagirati na signal, pa dobijemo stohastičko ponašanje.
Postoji više načina kako riješiti ovaj problem. U nastavku će biti opisana dva. Prvi način
rješavanja problema je dovođenje dodatnog signala X na NI sklop, pri čemu je signal X
definiran na sljedeći način: X je 0 od trenutka
padajućeg brida (označimo to vrijeme sa tp)
ulaznog signala minus vrijeme kašnjenja
logičkog sklopa, dakle od tp-tdls, pa do trenutka
dok ne završe sve prijelazne pojave unutar
brojila plus vrijeme kašnjenja logičkog sklopa:
tp+3*tdb+tdls, dok je u svim ostalim trenucima
1. Evo kako ovo rješava problem. U trenutku
kada započnu prijelazne pojave signal X
postaje 0. Zbog toga u trenutku kada brojilo iz
stanja 7 uđe u prijelazno stanje 6 sklop za
CP
X
t
t
Maskiranje prijelaznih pojava
260 M. Čupić – Zbirka riješenih zadataka
detekciju stanja 6 neće reagirati jer ga signal X inhibira. Tek kada završe sve prijelazne
pojave, X će postati 1 i tada će sklop NI moći reagirati. Međutim, kako smo sada u
stabilnom stanju 0, sklop neće reagirati, i problem je riješen. Negativna posljedica
ovakvog rješenja je kasna reakcija na stvarno stanje 6. Naime, bez ove modifikacije
sklop je detektirao stanje 6 nakon 1*tdb+1*tdls i postavio signal za postavljanje svih
bistabila. Sa modifikacijom sklop za detekciju stanja 6 reagirati će tek kada mu to X
dozvoli, a to je nakon (3*tdb+1*tdls)+1*tdls, što će rezultirati značajno duljim ostankom u
nedozvoljenom stanju 6. Alternativa prethodnom rješenju je uporaba ulaznog signala
kao signala X (tako da nam ne treba još jedan generator novog signala), ali tada treba
uzeti u obzir da ulazni signal mora biti takvog oblika da vrijeme tijekom kojega je u nuli
bude dovoljno dugo da maskira sve prijelazne pojave kao što je to radio signal X opisan
prethodno.
11.8. Zadatak
Prikazati funkciju sklopa 74LS163. Opisati sklop ponašajnim VHDL-om.
Sklop 74LS163 jest asinkrono 4-bitno brojilo, čije je sučelje prikazano na
slici.
• LD (load) i CLR (clear) djeluju sinkrono
• Aktivan LD tijekom rastućeg brida signala takta učitava stanje
brojila s ulaza ABCD.
• Aktivan CLR tijekom rastućeg brida signala takta briše brojilo (tj.
upisuje sve nule)
• CLR nadjačava LD
• LD nadjačava ENP i ENT
• Ako je ENT=1 i ENP=1 brojilo se inkrementira
• RCO = QD⋅QC⋅QB⋅QA⋅ENT, koristi se za kaskadiranje čipova
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
ENTITY C74LS163 IS
PORT ( CLK, CLR, LD : IN STD_LOGIC;
ENP, ENT : IN STD_LOGIC;
D : IN UNSIGNED (3 DOWNTO 0);
Q : OUT UNSIGNED (3 DOWNTO 0);
RCO : OUT STD_LOGIC );
END C74LS163;
ARCHITECTURE C74LS163_ARCH OF C74LS163 IS
SIGNAL IQ : UNSIGNED (3 DOWNTO 0);
BEGIN
PROCESS (CLK, ENT, IQ)
BEGIN
IF (CLK'event AND CLK='1') THEN
IF CLR='0' THEN
IQ <= "0000";
ELSIF LD='0' THEN
IQ <= D;
ELSIF (ENT='1' AND ENP='1') THEN
Brojila. 261
IQ <= IQ +1;
END IF;
END IF ;
IF (IQ=15) AND (ENT='1') THEN
RCO <='1';
ELSE
RCO <= '0';
END IF;
Q <= IQ;
END PROCESS;
END C74LS163_ARCH;
11.9. Zadatak
Uporabom SR bistabila projektirati 4-bitno prstenasto brojilo. Nacrtati potpuni dijagram
prijelaza stanja. Da li je to brojilo sa sigurnim startom?
Četiribitno prstenasto brojilo je brojilo koje broji u sljedećem ciklusu:
… → 1000 → 0100 → 0010 → 0001 → 1000 → …
Karakteristika brojila je ciklus brojanja kroz n stanja, pri čemu je za realizaciju
potrošeno n bistabila.
Trenutno stanje Sljedeće stanje Potrebna pobuda
Q0 Q1 Q2 Q3 Q0 Q1 Q2 Q3 S0 R0 S1 R1 S2 R2 S3 R3
0 0 0 0 × × × × × × × × × × × ×
0 0 0 1 1 0 0 0 1 0 0 × 0 × 0 1
0 0 1 0 0 0 0 1 0 × 0 × 0 1 1 0
0 0 1 1 × × × × × × × × × × × ×
0 1 0 0 0 0 1 0 0 × 0 1 1 0 0 ×
0 1 0 1 × × × × × × × × × × × ×
0 1 1 0 × × × × × × × × × × × ×
0 1 1 1 × × × × × × × × × × × ×
1 0 0 0 0 1 0 0 0 1 1 0 0 × 0 ×
1 0 0 1 × × × × × × × × × × × ×
1 0 1 0 × × × × × × × × × × × ×
1 0 1 1 × × × × × × × × × × × ×
1 1 0 0 × × × × × × × × × × × ×
1 1 0 1 × × × × × × × × × × × ×
1 1 1 0 × × × × × × × × × × × ×
1 1 1 1 × × × × × × × × × × × ×
Minimizacijom slijedi:
23 QS = , 23 QR =
12 QS = , 12 QR =
01 QS = , 01 QR =
30 QS = , 30 QR =
262 M. Čupić – Zbirka riješenih zadataka
Sklop koji je definiran ovim izrazima prikazan je na sljedećoj slici.
Q
Q
Q
Q
Q
Q
Q
Q
Analizom projektiranog sklopa dolazi se do sljedećeg potpunog dijagrama prijelaza
stanja:
Prilikom dekodiranja stanja Q3 je promatran kao bit najveće, a Q0 kao bit najmanje
težine.
Iz dijagrama je vidljivo da ovo nije sklop sa sigurnim startom.
11.10. Zadatak
Uporabom SR bistabila projektirati 4-bitno Johnsonovo brojilo. Nacrtati potpuni dijagram
prijelaza stanja. Da li je to brojilo sa sigurnim startom?
Četiribitno Johnsonovo brojilo je brojilo koje broji u sljedećem ciklusu:
… → 0000 → 1000 → 1100 → 1110 → 1111 → 0111 → 0011 → 0001 → 0000 → …
Karakteristika brojila je ciklus brojanja kroz 2⋅n stanja, pri čemu je za realizaciju
potrošeno n bistabila.
Brojila. 263
Trenutno stanje Sljedeće stanje Potrebna pobuda
Q0 Q1 Q2 Q3 Q0 Q1 Q2 Q3 S0 R0 S1 R1 S2 R2 S3 R3
0 0 0 0 1 0 0 0 1 0 0 × 0 × 0 ×
0 0 0 1 0 0 0 0 0 × 0 × 0 × 0 1
0 0 1 0 × × × × × × × × × × × ×
0 0 1 1 0 0 0 1 0 × 0 × 0 1 × 0
0 1 0 0 × × × × × × × × × × × ×
0 1 0 1 × × × × × × × × × × × ×
0 1 1 0 × × × × × × × × × × × ×
0 1 1 1 0 0 1 1 0 × 0 1 × 0 × 0
1 0 0 0 1 1 0 0 × 0 1 0 0 × 0 ×
1 0 0 1 × × × × × × × × × × × ×
1 0 1 0 × × × × × × × × × × × ×
1 0 1 1 × × × × × × × × × × × ×
1 1 0 0 1 1 1 0 × 0 × 0 1 0 0 ×
1 1 0 1 × × × × × × × × × × × ×
1 1 1 0 1 1 1 1 × 0 × 0 × 0 1 0
1 1 1 1 0 1 1 1 0 1 × 0 × 0 × 0
Minimizacijom slijedi:
23 QS = , 23 QR =
12 QS = , 12 QR =
01 QS = , 01 QR =
30 QS = , 30 QR =
Sklop koji je definiran ovim izrazima prikazan je na sljedećoj slici.
Q
Q
Q
Q
Q
Q
Q
Q
Zbog specifične realizacije, sklop je poznat i pod nazivom brojilo s ukrštenim prstenom.
Analizom projektiranog sklopa dolazi se do sljedećeg potpunog dijagrama prijelaza
stanja:
264 M. Čupić – Zbirka riješenih zadataka
Prilikom dekodiranja stanja Q3 je promatran kao bit najveće, a Q0 kao bit najmanje
težine.
Iz dijagrama je vidljivo da ovo nije sklop sa sigurnim startom.
ZADACI ZA VJEŽBU
1. Nacrtati 4 bitno asinkrono binarno brojilo unatrag izvedeno JK bistabilima. Ako je
period signala koji se broji 100 ns, a kašnjenje bistabila 20 ns, nacrtati vremenski
dijagram svih signala prilikom promjene stanja brojila iz 4 u 3.
2. Na raspolaganju su 2 D i 1 JK bistabil. Projektirati njihovom uporabom (i minimalnim
brojem osnovnih logičkih sklopova) sinkrono brojilo koje broji u ciklusu 0 → 5 → 2 →
7 → 4 → 0. Da li je dobiveni sklop sklop sa sigurnim startom? Nacrtati potpuni
dijagram prijelaza stanja. Prilikom rješavanja koristiti JK bistabil za pamćenje bita
najmanje težine.
3. Na raspolaganju je 3 T bistabila i minimalni potreban broj osnovnih logičkih sklopova.
Projektirati sinkroni sklop čiji je izlaz 2-bitni broj koji se mijenja u ciklusu:
0→1→2→3→2→1.
4. Brojilo je prikazano slikom. Nacrtati potpuni dijagram prijelaza stanja brojila. Da li je to
brojilo sa sigurnim startom? Ako je poznato: tdb = 20 ns, tsetup = 20 ns, tdls = 10 ns,
kolika je maksimalna frekvencija signala CP? Da li ovaj sklop pripada sinkronim ili
asinkronim sklopovima?
Q
Q
Q
Q
Q
Q1≥
Memorije. 309
13. Memorije.
13.1. Zadatak
Prikazati osnovnu memorijsku ćeliju kod permanentne memorije izvedene diodnim poljem.
Prikazati memoriju tipa 4×8 izvedenu ovom tehnologijom, u koju je upisan sljedeći sadržaj:
ED, 2D, DA, AD.
Pohranjena logička nula Pohranjena logička jedinica
WL
BL
WL
BL
Pri tome WL označava liniju riječi (engl. Word Line) koja u aktivnom stanju ima
logičku jedinicu, a BL označava liniju bita (engl. Bit Line) koja je preko otpora
pritegnuta na masu.
WL[0]
WL[1]
WL[2]
WL[3]
BL[0] BL[1] BL[2] BL[3] BL[4] BL[5] BL[6] BL[7]
Sadržaj pohranjen u memoriju (raspisano po bitovima) definiran je tablicom
prikazanom u nastavku.
310 M. Čupić – Zbirka riješenih zadataka
LSB Sadržaj po bitovima MSB
Lokacija Sadržaj
b0 b1 b2 b3 b4 b5 b6 b7
0 ED 1 0 1 1 0 1 1 1
1 2D 1 0 1 1 0 1 0 0
2 DA 0 1 0 1 1 0 1 1
3 AD 1 0 1 1 0 1 0 1
13.2. Zadatak
Prikazati osnovnu memorijsku ćeliju kod permanentne memorije izvedene MOSFET-om.
Prikazati memoriju tipa 4×8 izvedenu ovom tehnologijom, u koju je upisan sljedeći sadržaj:
ED, 2D, DA, AD.
Pohranjena logička nula Pohranjena logička jedinica
WL
BL
WL
BL
Pri tome WL označava liniju riječi (engl. Word Line) koja u aktivnom stanju ima
logičku jedinicu, a BL označava liniju bita (engl. Bit Line) koja je preko "otpora"
pritegnuta na napajanje ("otpor" je također izveden MOSFET-om).
+UDD +UDD +UDD +UDD +UDD +UDD
+UDD
+UDD
WL[0]
WL[1]
WL[2]
WL[3]
BL[0] BL[1] BL[2] BL[3] BL[4] BL[5] BL[6] BL[7]
Memorije. 311
13.3. Zadatak
Prikazati jednotranzistorsku MOSFET DRAM ćeliju. Objasniti način čuvanja, zapisivanja i
čitanja informacije. Pretpostaviti da CS iznosi 50 fF, kapacitet linije bita CB = 25⋅CS a logičkoj
jedinici odgovara napon od 5V. Izračunati napon na liniji BL prilikom čitanja pohranjene
logičke jedinice.
Jednotranzistorska MOSFET DRAM ćelija prikazana je na slici.
WL
BL
CS
US , QS
Podaci se čuvaju na kondenzatoru preko naboja (na slici označeno s QS). Za odnos
napona i naboja na kapacitetu vrijedi sljedeća relacija:
SSS UCQ ⋅=
Ako je US=0, tada je QS=0 te je pohranjena logička nula. Ako je US velik, tada je QS>0
te je pohranjena logička jedinica.
Ćelija može raditi na tri načina: čuvanje, čitanje i pisanje. Kada ćelija čuva sadržaj,
tranzistor je isključen (WL=0) čime se čuva naboj na kondenzatoru.
Zapisivanje sadržaja obavlja se postavljanjem vrijednosti na liniju bita (logičko 0 ili
logičko 1) te otvaranjem tranzistora (WL=1). Npr. ako zapisujemo logičko 1, na liniju
bita dovodimo UDD i zatim otvaramo tranzistor. Kapacitet CS nakon nekog će se
vremena nabiti na UDD, i tada možemo zatvoriti tranzistor i ukloniti podatak s linije bita.
Čitanje podatka obavlja se dovođenjem
jedinice na WL, te očitavanjem napona na
liniji bita. Pretpostavimo da je u ćeliji
zapisana logička jedinica. Tada će se naboj QS
pohranjen na kapacitetu CS nakon otvaranja
tranzistora podijeliti na kondenzatore CS i CB
(CB je kapacitet same linije bita). Kako su oni
spojeni paralelno, podjela će se obaviti tako da napon na oba kondenzatora bude jednak
i iznosi UF, tj. vrijedit će sljedeće:
• Prije otvaranja tranzistora:
UB=0 V
US>0 V, SSS UCQ ⋅=
WL=1
BL
CS
CB
FB UU →
FS UU →
312 M. Čupić – Zbirka riješenih zadataka
• Nakon otvaranja tranzistora:
Napon paralele je UF. Prema zakonu o očuvanju naboja:
FBFSS UCUCQ ⋅+⋅=
Zamjenom QS slijedi:
FBFSSS UCUCUC ⋅+⋅=⋅
pa je konačni napon na paraleli tada jednak:
BS
S
SF
CC
C
UU
+
=
Uz zadane vrijednosti za UF se dobiva:
mV
CC
C
U
CC
C
UU
SS
S
S
BS
S
SF 192
251
1
5
25
=
+
⋅=
⋅+
=
+
=
Da je u ćeliji bila zapisana logička nula, konačni napon bio bi jednak nuli, iz čega slijedi
da se naponi na liniji bita dobiveni čitanjem nule ili jedinice razlikuju vrlo malo (manje
od 1V) pa je za očitavanje tog napona potrebno osjetljivo pojačalo za čitanje. Razlog
ovako malog napona jest omjer kapaciteta CS i CB, tj. CB>>CS. Osim toga, nakon čitanja
sadržaja ćelije zapisani je podatak izgubljen (napon na CS je prilikom čitanja logičke
jedinice pao na svega 192 mV) te je potrebno ponovno zapisati pročitani sadržaj (dakle,
čitanje je destruktivno).
13.4. Zadatak
Procijeniti vrijeme čuvanja podatka MOSFET DRAM 1T ćelije. Pretpostaviti da je IL=1 nA,
CS=50 fF a ∆US=1V.
Kada je tranzistor isključen, kapacitet CS se ipak izbija određenom strujom curenja IL, te
će napon US polako padati.
WL=0
BL
CS
US(t), QS(t)
IL
US(t)
t
Umax
U1,min
th
Memorije. 313
Neka logičkoj razini 1 odgovara napon Umax. Da bi se sadržaj ćelije ispravno očitao,
napon na CS smije pasti najniže do napona U1,min, čime je određena razlika napona
min,1max UUUS −=∆ . Za struju IL vrijedi:
dt
dU
C
dt
dQ
I
S
S
S
L −=−=
Pretpostavimo li da su naponi Umax i U1,min relativno blizu, početak eksponencijale
možemo linearizirati, te možemo promatrati da je IL u tom području konstantno. Tada
slijedi:
h
S
h
S
S
SL
t
UU
C
t
UU
C
t
U
CI
min,1maxmin,1max
0
−
=
−
−
−=
∆
∆
−=
odnosno
( )min,1max UU
I
C
t
L
S
h −⋅=
Uz podatke iz zadatka slijedi:
501
1
50
=⋅=∆⋅= V
nA
fF
U
I
C
t S
L
S
h µs.
13.5. Zadatak
Prikazati CMOS SRAM ćeliju i objasniti načine rada.
Idejno rješenje ćelije prikazano je na slici.
b b
WL
TA TB
Q Q
Dva invertora povezana su u bistabilni element. Ćelija može raditi na tri načina rada:
• Čuvanje podatka – TA i TB su isključeni (WL=0), te se podatak čuva u bistabilu.
• Zapisivanje podatka – TA i TB su uključeni (WL=1); novi podatak dovodi se na
linije b i b čime se mijenja stanje u bistabilu. Isključivanjem TA i TB ćelija
čuva novoupisani podatak.
• Čitanje podatka – TA i TB su uključeni (WL=1); linije b i b očitavaju se na
pojačalu za čitanje.
314 M. Čupić – Zbirka riješenih zadataka
Pojačalo za čitanje spojeno je na linije b i b i generira izlaz 0 ako je b < b , odnosno 1
ako je b > b .
Svaki od invertora može se izvesti s 2 tranzistora (tj. tranzistorskim parom
PMOS+NMOS), što daje osnovnu 6T ćeliju prikazanu na slici.
b b
WL
+UDD
T1
T2
T3
T4
T5 T6
Postoji i izvedba 4T ćelije, pri čemu su PMOS tranzistori zamijenjeni velikim
otpornicima spojenim na UDD.
13.6. Zadatak
Prikazati barem dva načina organizacije memorije čiji je kapacitet 256 bitova, a duljina
logičke riječi 8 bitova. Procijeniti duljine linije bita i linije riječi.
Pogledajmo prvo "prirodni" način organizacije memorije: memorijske ćelije koje čuvaju
bitove iste logičke riječi smještene su jedna do druge, a pojedine riječi smještene su
jedna ispod druge.
WL[0]
Mem. riječ 0
Mem. riječ 1
Mem. riječ 2
Mem. riječ N-2
Mem. riječ N-1
WL[1]
WL[2]
WL[3]
WL[N-2]
WL[N-1]
Memorijska ćelija
(1 bit)
M bitova
Dekoder
A[0]
A[1]
A[K-1]
Podaci
Memorije. 315
Kako je u ovom slučaju kapacitet memorije (C=256 bitova) određen umnoškom broja
logičkih riječi (N) i broja bitova u jednoj logičkoj riječi (M), broj logičkih riječi jednak
je:
32
8
256
===
M
C
N
Za adresiranje nam tada treba K adresnih bitova, pri čemu je K određen izrazom:
NK
=2
pa slijedi:
532loglog 22 === NK
Procijenimo još i duljine linije riječi i bita. Kao što je poznato, linija riječi (WL) se
proteže do svih memorijskih ćelija koje čuvaju bitove iste memorijske riječi.
Pretpostavimo li da su dimenzije memorijske ćelije kvadratne, tada će ukupna duljina
biti zapravo proporcionalna broju ćelija do kojih linija dolazi, odnosno broju bitova.
Linija bita se pak proteže do svih ćelija koje čuvaju isti bit u svakoj memorijskoj riječi.
Tako kod ovakve organizacije memorije vrijedi da je duljina linije riječi ≈ 8, a duljina
linije bita ≈ 32. Već iz ove niskokapacitetne memorije vidljiv je osnovni problem
ovakve ogranizacije: duljina linije bita >> duljina linije riječi (a time je i parazitni
kapacitet linije bita vrlo velik).
Napomena: U knjizi [Peruško] ovakav način organizacije memorije poznat je kao 2D
organizacija. Ukoliko se želi dobiti više informacija o ovom tipu (npr. Google), tada
treba obratiti pažnju da je na većini stranih sveučilišta ovaj tip poznat kao 1D
organizacija (jer su memorijske riječi organizirane uzduž jedne dimenzije; odozgo
prema dolje).
Drugi primjer organizacije memorije temelji se ne popravljanju odnosa duljina linija
riječi i bita, i prikazan je na sljedećoj slici.
Kod ovog pristupa jedna fizička memorijska riječ sadrži P logičkih riječi (svaka logička
riječ je duljine M bitova). Cijela memorija pri tome sadrži K
N 2= logičkih riječi.
Dekoder retka na temelju viših bitova adrese odabire adresiranu fizičku riječ, čime na
ulaze dekodera stupca dolazi P⋅M pohranjenih bitova, tj. sadržaj P logičkih riječi.
Dekoder stupca na temelju nižih bitova adrese odabire adresiranu logičku riječ. Dekoder
stupca logički se može promatrati kao M multipleksora tipa P/1 gdje se na 0.
multipleksor dovode 0. bitovi od P logičkih riječi, na 1. multipleksor dovode 1. bitovi
od P logičkih riječi, itd. Proračunajmo sada sve potrebne veličine.
316 M. Čupić – Zbirka riješenih zadataka
Logička riječ 0 Logička riječ 1 Logička riječ P-1
Logička riječ P Logička riječ P+1 Logička riječ 2P-1
Logička riječ 2P Logička riječ 2P+1 Logička riječ 3P-1
Logička riječ 3P Logička riječ 3P+1
M bitova M bitova M bitova
Fizička riječ 0
Fizička riječ 1
Fizička riječ 2
Memorijska ćelija
(1 bit)
Logička riječ (Q-2)P Logička riječ (Q-2)P+1 Logička riječ (Q-1)P-1
Logička riječ (Q-1)P Logička riječ (Q-1)P+1 Logička riječ QP-1
Fizička riječ Q-2
Fizička riječ Q-1
Dekoder stupca
Dekoderretka
A[L]
A[L+1]
A[K-1]
L
MPM 2⋅=⋅
A[0]
A[L-1]
LK
Q −
= 2
Podaci (M bitova)
Memorija iz zadatka imat će N logičkih riječi, pri čemu je N određen s:
32
8
256
===
M
C
N
Za adresiranje N=32 logičke riječi trebamo ukupno:
NK
=2
adresnih bitova, pa slijedi:
532loglog 22 === NK
Kako je kod ove organizacije ukupni broj logičkih riječi definiran umnoškom
QPN ⋅=
gdje su N, P i Q cijeli brojevi, jedno rješenje koje zadovoljava prethodni izraz jest P=2,
Q=16.
Za adresiranje logičke riječi unutar fizičke riječi koristi se L bitova. Slijedi:
12loglog2 22 ===⇒= PLPL
Dakle, jedan adresni bit dovodi se na dekoder stupca, a preostalih K-L=5-1=4 adresna
bita dovode se na dekoder retka. Memorija u tom slučaju ima Q = 24
= 16 fizičkih riječi,
gdje svaka fizička riječ sadrži dvije logičke riječi.
Proračunajmo još i duljine linija riječi i bita. Jedna fizička riječ sadrži P⋅M=2⋅8=16
bitova, pa je duljina linije riječi ≈ 16. Memorija ima Q=16 fizičkih riječi pa je duljina
linije bita ≈ 16.
Memorije. 317
Napomena: U knjizi [Peruško] ovakav način organizacije memorije poznat je kao 2 ½ D
organizacija. Ukoliko se želi dobiti više informacija o ovom tipu (npr. Google), tada
treba obratiti pažnju da je na većini stranih sveučilišta ovaj tip poznat kao 2D
organizacija (jer su logičke riječi organizirane u 2D matricu, a ne linearno).
Za vježbu.
Nacrtajte strukture memorija uz proračunate parametre. Drugi dio zadatka ima više
mogućih rješenja (tj. jednadžba N=P⋅Q ima više rješenja u skupu cijelih brojeva).
Pronađite sva rješenja. Proračunajte duljine linija riječi i bita za te slučajeve.
13.7. Pismeni ispit, 09. 02. 2004, 9. zadatak
Zadana je uređena n-torka P=(8,1,5,2,3,3,12,14,7,2,0,1,6,6,2,4). Funkcija F(i) vraća i-ti
element od P (npr. F(0)=8). Projektirati sklop koji ostvaruje ovu funkciju. Na raspolaganju su
ispisna memorija 8×8 te 4 multipleksora 2×1. Prikazati sadržaj memorije po lokacijama, u
heksadekadskom obliku.
Memorija koju imamo na raspolaganju pohranjuje riječi širine 8 bita, a za pohranu
svakog broja koji trebamo vratiti nužna su samo 4 bita. Zbog toga ćemo na svaku
memorijsku lokaciju pohranjivati po dva broja. Sadržaj memorije prikazan je u
nastavku:
lokacija: Sadržaj memorije (hex)
0 1 8
1 2 5
2 3 3
3 E C
4 2 7
5 1 0
6 6 6
7 4 2
Sklop je prikazan na slici:
318 M. Čupić – Zbirka riješenih zadataka
RAM
8 x 8
D7 D6 D5 D4 D3 D2 D1 D0
0101 0101
A2
A1
A0
I3
I2
I1
I0
O3 O2 O1 O0
13.8. Zadatak
Na raspolaganju je potreban broj memorijskih modula prikazanih na
slici. Njihovom uporabom projektirati memoriju 512×3.
Kako memorijski modul ima 8 adresnih linija,
očito je da može adresirati 256 memorijskih
lokacija, svaka širine jednog bita. Budući da
trebamo 512 memorijskih lokacija, morat ćemo
iskoristiti 512/256=2 memorijska modula, kako
bismo dobili memoriju koja može adresirati 512
memorijskih lokacija. Budući da memorijske
riječi moraju biti široke 3 bita, trebat ćemo još
3/1=3 memorijska modula u paraleli. Ideja
rješenja prikazana je na slici desno.
Svako polje predstavlja jedan memorijski
modul. Analizom slike može se uočiti kako je razlika između gornjih i donjih modula u
najvišem bitu: A8. I upravo ćemo taj bit koristiti za selekciju onog rezultata koji će se
pojaviti na izlazu sklopa. Shema spajanja prikazana je na slici:
WR/
000
0FF
100
1FF
1. bit
000
0FF
100
1FF
2. bit
000
0FF
100
1FF
3. bit
Memorije. 319
WR /
WR /
WR /
WR /
WR /
WR /WR /
Podatkovni izlazi gornjih i donjih memorijskih modula spojeni su preko ILI sklopa:
goreoutdoljeoutgoreoutdoljeout DDDD ,,,, +=⋅
Naime, ti su izlazi izvedeni s otvorenim kolektorom, a njihovim kratkim spajanjem i
pritezanjem na napajanje ostvarili smo I logičku funkciju komplemenata izlaza. Kada to
na kraju invertiramo, dobivamo ILI logičku operaciju.
Kada je A8 jednak 0, donji moduli su onemogućeni (CE=0), a gornji su omogućeni.
Zbog toga na izlaz prolaze podaci pohranjeni u gornjim modulima. Kada je A8 jednak 1,
gornji moduli su onemogućeni (CE=0), a donji su omogućeni. Zbog toga na izlaz
prolaze podaci pohranjeni u donjim modulima.
ZADACI ZA VJEŽBU
1. Objasnite organizacije memorijskih čipova kod statičkih i dinamičkih poluvodičkih
memorija. Navedite i objasnite tipične predstavnike istih.
2. Na raspolaganju je potreban broj modula ispisne memorije kapaciteta 16 4-bitnih riječi.
Nacrtajte izvedbu memorije za pohranu 64 okteta (bajtova). Na raspolaganju je još i
potreban broj multipleksora 2/1.
3. Kod jednotranzistorske MOSFET DRAM ćelije poznato je da CS iznosi 100 fF,
kapacitet linije bita CB = 25⋅CS a logičkoj jedinici odgovara napon od 5V. Izračunati
napon na liniji BL prilikom čitanja pohranjene logičke jedinice.
4. Za jednotranzistorsku MOSFET DRAM ćeliju procijenite vrijeme čuvanja podatka.
Pretpostaviti da je IL=1 nA, CS=50 fF a ∆US=1V.
5. Prikazati permanentnu memoriju tipa 4×8 izvedenu diodnim poljem, u koju je upisan
tekst "ABBA" (odnosno ASCII kodovi).
6. Prikazati permanentnu memoriju tipa 4×8 izvedenu MOSFET-om, u koju je upisan tekst
"ABBA" (odnosno ASCII kodovi).
Digeldl zbirka z_cjelina12[2]

More Related Content

Viewers also liked

12687eir ppei 0809
12687eir ppei 080912687eir ppei 0809
12687eir ppei 0809Samir Salman
 
Marcella Marletta - Protocollo Fast Track
Marcella Marletta - Protocollo Fast TrackMarcella Marletta - Protocollo Fast Track
Marcella Marletta - Protocollo Fast TrackMarcella Marletta
 
What's Developing 1stQ 2015_3_18_15
What's Developing 1stQ 2015_3_18_15What's Developing 1stQ 2015_3_18_15
What's Developing 1stQ 2015_3_18_15Dominique Moody
 
Researching current writers
Researching current writersResearching current writers
Researching current writersJayKingOfBum
 
Addington College Time Management Session 3
Addington College Time Management Session 3Addington College Time Management Session 3
Addington College Time Management Session 3Addington123
 
Những thói quen hàng ngày người giảm cân, giảm béo cần thay đổi
Những thói quen hàng ngày người giảm cân, giảm béo cần thay đổiNhững thói quen hàng ngày người giảm cân, giảm béo cần thay đổi
Những thói quen hàng ngày người giảm cân, giảm béo cần thay đổijosiah157
 
Comstock City, Thomas-edits, ch.3
Comstock City, Thomas-edits, ch.3Comstock City, Thomas-edits, ch.3
Comstock City, Thomas-edits, ch.3Rachel Holt
 
Overcoming challenges for start-ups by integrating eastern and western ecosys...
Overcoming challenges for start-ups by integrating eastern and western ecosys...Overcoming challenges for start-ups by integrating eastern and western ecosys...
Overcoming challenges for start-ups by integrating eastern and western ecosys...Matt Kurleto
 
خشية الله والخوف منه
خشية الله والخوف منهخشية الله والخوف منه
خشية الله والخوف منهSamira Assil
 

Viewers also liked (14)

12687eir ppei 0809
12687eir ppei 080912687eir ppei 0809
12687eir ppei 0809
 
Research Paper
Research PaperResearch Paper
Research Paper
 
Marcella Marletta - Protocollo Fast Track
Marcella Marletta - Protocollo Fast TrackMarcella Marletta - Protocollo Fast Track
Marcella Marletta - Protocollo Fast Track
 
What's Developing 1stQ 2015_3_18_15
What's Developing 1stQ 2015_3_18_15What's Developing 1stQ 2015_3_18_15
What's Developing 1stQ 2015_3_18_15
 
Researching current writers
Researching current writersResearching current writers
Researching current writers
 
Addington College Time Management Session 3
Addington College Time Management Session 3Addington College Time Management Session 3
Addington College Time Management Session 3
 
Dinesh CV
Dinesh CVDinesh CV
Dinesh CV
 
Prezentatsia tornado
Prezentatsia tornadoPrezentatsia tornado
Prezentatsia tornado
 
Những thói quen hàng ngày người giảm cân, giảm béo cần thay đổi
Những thói quen hàng ngày người giảm cân, giảm béo cần thay đổiNhững thói quen hàng ngày người giảm cân, giảm béo cần thay đổi
Những thói quen hàng ngày người giảm cân, giảm béo cần thay đổi
 
Bhtkh july15
Bhtkh july15Bhtkh july15
Bhtkh july15
 
Tarjetasbienalgebraniveli
TarjetasbienalgebraniveliTarjetasbienalgebraniveli
Tarjetasbienalgebraniveli
 
Comstock City, Thomas-edits, ch.3
Comstock City, Thomas-edits, ch.3Comstock City, Thomas-edits, ch.3
Comstock City, Thomas-edits, ch.3
 
Overcoming challenges for start-ups by integrating eastern and western ecosys...
Overcoming challenges for start-ups by integrating eastern and western ecosys...Overcoming challenges for start-ups by integrating eastern and western ecosys...
Overcoming challenges for start-ups by integrating eastern and western ecosys...
 
خشية الله والخوف منه
خشية الله والخوف منهخشية الله والخوف منه
خشية الله والخوف منه
 

Digeldl zbirka z_cjelina12[2]

  • 1. Zavod za elektroniku, mikroelektroniku, računalne i inteligentne sustave Marko Čupić, dipl. ing. ZBIRKA RIJEŠENIH ZADATAKA IZ DIGITALNE ELEKTRONIKE I DIGITALNE LOGIKE Zagreb, 2005
  • 2. Registri. 227 10. Registri. 10.1. Zadatak Uporabom D bistabila nacrtati shemu 4-bitnog registra s paralelnim ulazima i paralelnim izlazima. D Q Q CP D Q Q CP D Q Q CP D Q Q CP Q3 Q2 Q1 Q0 D3 D2 D1 D0 CP 10.2. Zadatak Uporabom D bistabila nacrtati shemu 4-bitnog posmačnog registra sa serijskim ulazom i paralelnim izlazima. D Q Q CP D Q Q CP D Q Q CP D Q Q CP D Q3 Q2 Q1 Q0 CP 10.3. Zadatak Projektirati trobitni posmačni registar uporabom bridom okidanih D bistabila i potrebnog broja multipleksora 4/1. Mogućnosti sklopa su sljedeće:
  • 3. 228 M. Čupić – Zbirka riješenih zadataka S1 S0 Funkcija 0 0 Posmak udesno; punjenje bitom Sin 0 1 Posmak ulijevo; punjenje bitom Sin 1 0 Paralelni upis 1 1 Kružni posmak udesno D Q Q CP D Q Q CP D Q Q CP Sin Pin0 Pin1 Pin2S0S1 CP Pout0 Pout1 Pout2 d0 d1 d2 d3 a0a1 y d0 d1 d2 d3 a0a1 y d0 d1 d2 d3 a0a1 y 10.4. Zadatak Projektirati sklop koji će prolaziti kroz sljedeća stanja: 0 → 8 → 4 → 10 → 5 → 2 → 9 → 12 → 14 → 7 → 3 → 1 → 0 → ... Sklop je potrebno ostvariti uporabom strukture prikazane na slici (posmačni registar + multipleksor). Nespecificirana stanja treba tako riješiti da sklop u minimalnom broju koraka dođe u stanje 0. Napišimo tablicu promjene stanja: A DCB CP Sin → d0 d1 d7 d6 d5 d4 d3 d2 1 a0a1a2 y mux 8/1 CP
  • 4. Registri. 229 A B C D A' B' C' D' Sin=A' 0 0 0 0 → 1 0 0 0 0 0 0 1 → 0 0 0 0 D 0 0 1 0 → 1 0 0 1 0 0 1 1 → 0 0 0 1 D 0 1 0 0 → 1 0 1 0 0 1 0 1 → 0 0 1 0 D 0 1 1 0 → 0 0 1 1 0 1 1 1 → 0 0 1 1 0 1 0 0 0 → 0 1 0 0 1 0 0 1 → 1 1 0 0 D 1 0 1 0 → 0 1 0 1 1 0 1 1 → 1 1 0 1 D 1 1 0 0 → 1 1 1 0 1 1 0 1 → 0 1 1 0 D 1 1 1 0 → 0 1 1 1 1 1 1 1 → 0 1 1 1 0 Objašnjenje: U svakom retku ABCD predstavlja početno stanje a A'B'C'D' predstavlja novo stanje. Zbog načina na koji je sklop izveden (uporabom posmačnog registra) vrijedi: B'=A, C'=B, D'=C. A' je određen tako da pređemo u ispravno stanje. Međutim, kako odrediti u koja stanja treba prijeći iz stanja koja nisu zadana (6, 11, 13, 15)? Zadan je kriterij da se u tom slučaju kroz minimalni broj stanja treba prijeći u stanje 0. Pogledajmo redom kako smo primjenjivali taj kriterij. Stanje 15 Iz stanja 15 = 1111 možemo prijeći u stanje Sin 111 (vidi sliku). Za Sin=0 to je 7, a za Sin=1 to je 15. Ako smo došli u stanje 7, to stanje je definirano i do nule nam treba još 3 koraka (označeno u zagradi). Uz čvor 7 podvučeno se nalazi i ukupni broj koraka do nule – 3 plus 1 za prijelaz 15 u 7. Ako smo došli u stanje 15, vrtimo se ciklički u krug što nije put prema stanju 0 u minimalnom broju koraka. 15 7 (3) 15 4 Stanje 13 Na isti način kao u prethodnom razmatranju (vidi sliku ispod) možemo utvrditi da iz stanja 13 treba prijeći u stanje 6 (neovisno o tome što to stanje također nije definirano, a alternativno stanje 14 jest). Stanje 11
  • 5. 230 M. Čupić – Zbirka riješenih zadataka Iz stanja 11 potrebno je prijeći u stanje 13 (vidi sliku ispod). Prilikom crtanja stabla odluke možemo se zaustaviti na čvoru 13 bez da ga raščlanjujemo jer smo to napravili u prethodnom koraku, i već smo utvrdili da je najkraći put iz stanja 13 do stanja 0 dugačak 4. Stanje 6 Iz stanja 6 potrebno je prijeći u stanje 3 (vidi sliku ispod). 13 14 (4) 5 6 3 (2) 4 11 5 (8) 11 13 11 5 (8) 9 13 (4) 5 6 3 (2) 3 11 (5) 6 Shema traženog sklopa je dakle: A DCB CP Sin → d0 d1 d7 d6 d5 d4 d3 d2 1 a0a1a2 y mux 8/1 CP 0 0
  • 6. Registri. 231 10.5. Zadatak Uporabom potpunog zbrajala i potrebnog broja sinkronih bridom okidanih D registara realizirati sklop koji obavlja serijsko zbrajanje dvaju binarnih brojeva. Objasniti rad sklopa. Prikazati na vremenskom dijagramu proces zbrajanja 4-bitnih brojeva 5 i 9. Sklop je prikazan na slici. Si CiCi-1 Ai FBi D Q Q CP D Q Q CP Ain Bin Reset CP Rout Cout Bitovi brojeva dovode se serijski na ulaze Ain i Bin pri čemu se najprije dovodi najmanje značajni bit. Signalom Reset najprije je potrebno resetirati D bistabile. Prvi D bistabil čuva bit rezultata, dok drugi D bistabil čuva bit preljeva potreban za zbrajanje sljedećih značajnijih bitova. Rout čuva rezultat zbrajanja trenutnih bitova a Cout je preljev nastao zbrajanjem bitova koji su u trenutku rastućeg brida CP-a bili na ulazu potpunog zbrajala. Vremenski dijagram prikazan je u nastavku. Uočiti da signal Reset djeluje asinkrono.
  • 7. 232 M. Čupić – Zbirka riješenih zadataka t Ain Bin Reset CP Rout Cout 10 1 10 0 1 0 5 = 0101(2) 9 = 1001(2) 0 0 0 01 1 1 1 14 = 1110(2) t t t t t 10.6. Zadatak Uporabom potrebnog broja D bistabila i multipleksora 2/1 ostvariti 3-bitni registar s mogućnošću paralelnog upisa podataka. Rad registra definiran je signalom L na način: Signal L Akcija 0 Ostaviti prethodno stanje registra 1 Upisati stanje s paralelnih ulaza Di su paralelni ulazi, a Qi su izlazi registra.
  • 8. Registri. 233 D Q Q CP 0 1 a0 y D Q Q CP 0 1 a0 y D Q Q CP 0 1 a0 y D0 D1 Q0 D2 Q1 Q2 CP L 10.7. Zadatak Uporabom dva 4-bitna posmačna registra sa serijskim i paralelnim ulazima i serijskim izlazom čija je funkcionalnost opisana tablicom ostvariti 8-bitni posmačni registar iste funkcionalnosti. Dozvoljeno je još koristiti multipleksor te potreban broj osnovnih logičkih sklopova. S1 S0 Funkcija 0 0 Posmak udesno; punjenje bitom SRin 0 1 Posmak ulijevo; punjenje bitom SLin 1 0 Paralelni upis 1 1 Resetiranje registra Za ovaj jednostavan slučaj zadanih operacija sklopovi se mogu spojiti direktno, kao što je prikazano na shemi. A DCB CP SLin → SRin SLout SRout A DCB CP SLin → SRin SLout SRout A DCB E HGF SLin SRoutSRin SLout CP S0 S1 S0 S1 S0S1 10.8. Zadatak Uporabom dva 4-bitna posmačna registra sa serijskim i paralelnim ulazima i serijskim izlazom čija je funkcionalnost prikazana tablicom ostvariti 8-bitni posmačni registar iste funkcionalnosti. Dozvoljeno je još koristiti multipleksor 2/1 te dekoder 2/4.
  • 9. 234 M. Čupić – Zbirka riješenih zadataka S1 S0 Funkcija 0 0 Posmak udesno; punjenje bitom SRin 0 1 Posmak ulijevo; punjenje bitom SLin 1 0 Paralelni upis 1 1 Kružni posmak udesno Kao osnova za rješavanje ovog zadatka može nam poslužiti prethodni zadatak. Međutim, potrebno je uočiti bitnu razliku: funkcioniranje sklopa za vrijednost 11 upravljačkih signala. Tada registar interno obavlja kružni pomak u desno, pri čemu se ne koriste izlaz SRout i ulaz SRin. Ako bismo na predloženi način spojili registre, za kombinaciju 11 ne bismo dobili kružni pomak u desno 8-bitnog podatka, već podatak u kojem su prva četiri bita i druga četiri bita kružno pomaknuta u desno. Problem možemo riješiti tako da kružni pomak u desno 8-bitnog podatka obavimo "običnim" pomakom u desno, a izvana zadnji bit podatka vratimo na ulaz prvog registra. Dakle, upravljačke signale ne smijemo direktno dovoditi na ulaze Si. Uvedimo pomoćne signale S0x i S1x (koje ćemo stvarmo dovoditi na upravljačke ulaze) i pomoćni signal K (koji će označavati da se radi o kružnom pomaku). S1 S0 S1x S0x K 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 Iz tablice možemo očitati tražene funkcije (odnosno minterme): 2011 mSSS x == , 1010 mSSS x == , 301 mSSK == . Konačni sklop tada je prikazan na sljedećoj slici:
  • 10. Registri. 235 A DCB CP SLin → SRin SLout SRout A DCB CP SLin → SRin SLout SRout A DCB E HGF SLin SRout SRin SLout CP S0 S1 S0S1 d0 d1 a y a0 a1 d0d1d2d3 dek 2/4 S0S1 10.9. Zadatak Napisati strukturni model 4-bitnog posmačnog registra sa serijskim ulazom i paralelnim izlazima, te ulazom za reset. Kao osnovu za opis registra koristiti komponentu Dbistabil opisanu u zadatku 8.4. library IEEE; use IEEE.STD_LOGIC_1164.ALL; ENTITY Reg4bit IS PORT ( Sin, Reset: IN std_logic; Q: OUT std_logic_vector( 3 DOWNTO 0); Clock: IN std_logic ); END Reg4bit; ARCHITECTURE Structural OF Reg4bit IS COMPONENT Dbistabil IS PORT ( D, Reset: IN std_logic; Q, Qn: OUT std_logic; Clock: IN std_logic ); END COmponent; SIGNAL Qint: std_logic_vector( 3 DOWNTO 0); BEGIN -- povezivanje pojedinih D bistabila u 4-bitni registar D3: Dbistabil PORT map (Sin, Reset, Qint(3), open, Clock); D2: Dbistabil PORT map (Qint(3), Reset, Qint(2), open, Clock); D1: Dbistabil PORT map (Qint(2), Reset, Qint(1), open, Clock); D0: Dbistabil PORT map (Qint(1), Reset, Qint(0), open, Clock); -- preslikavanje izlaza bistabila na izlaz 4-bitnog registra
  • 11. 236 M. Čupić – Zbirka riješenih zadataka Q <= Qint; END Structural; 10.10. Zadatak Ponašajnim VHDL-om modelirati registar prikazan slikom. Registar nailaskom impulsa CP pohranjuje vrijednost narinutu na njegovom ulazu. Upravljački ulazi S i C (postavljanje i brisanje) moraju biti sinkroni. Svi signali moraju biti isključivo ulazni odnosno izlazni. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY d_reg IS PORT ( clk, s, c: IN std_logic; d: IN std_logic_vector (1 downto 0); q: OUT std_logic_vector (1 downto 0) ); END d_reg; ARCHITECTURE Behavioral OF d_reg IS BEGIN PROCESS (clk, s, c, d) BEGIN IF (falling_edge(clk)) THEN IF (s = '0') THEN q <= "11"; ELSIF (c = '0') THEN q <= "00"; ELSE q <= d; END IF; END IF; END PROCESS; END Behavioral; D S C CP Q 2 2
  • 12. Registri. 237 10.11. Zadatak Korištenjem registra iz prethodnog zadatka nacrtati shemu 5- bitnog posmačnog registra prikazanog na slici i napisati odgovarajuću specifikaciju u VHDL-u. Operacije koje obavlja registar određene su ulazom ctrl: 00 – ne događa se ništa, 01 – posmak u desno, 10 – paralelni upis te 11 – nedefinirano. Napomena: sklop iz prethodnog zadatka upotrebljavati kao crnu kutiju! Nacrtajmo najprije kako bismo spojili sve potrebne sklopove. Nepotpuna shema prikazana je u nastavku: Za realizaciju sklopa koristimo tri sklopa iz prethodnog zadatka čime dobivamo mogućnost izrade čak 6-bitnog registra (pa nećemo iskoristiti sve – lijeva strana sklopa r2 ostat će neiskorištena). Uočimo sada ulaze i izlaze sklopa. Ulazi su pin (5-bitni vektor), sin, ctrl (2-bitni vektor), reset i clk, dok je izlaz pout (5-bitni vektor). Vektori su prikazani u točkastom pravokutniku. Također koristimo dva interna signala: pint (6-bitni vektor) i pouti (6-bitni vektor). Uvidom u shemu sklopa očito je da se interni signal pouti direktno spaja na izlaz sklopa pout. No trebamo utvrditi što treba spojiti na signal pint. Analizirajmo funkciju sklopa. Kada je na ctrl vrijednost 00, sklop treba zadržati postojeće stanje. To znači da mora vrijediti pint(i)=pouti(i); što je bilo na izlazu, to treba doći na ulaz kako bi se u sljedećem koraku opet pojavilo na izlazu. Ovaj slučaj, dakle, možemo opisati izrazom: pint(i) <= not crtl(1) and not ctrl(0) and pouti(i). Za slučaj da je na ctrl vrijednost 10, sklop treba obaviti paralelni upis, tj.: CP reset Sin Pin Pout ctrl 5 52
  • 13. 238 M. Čupić – Zbirka riješenih zadataka pint(i) <= crtl(1) and not ctrl(0) and pin(i). Konačno, za slučaj da je na ctrl vrijednost 01, sklop treba obaviti posmak udesno i punjenje lijeve pozicije s ulaza sin, tj. gledajući sliku treba vrijediti: pint(4) <= not crtl(1) and ctrl(0) and sin, pint(i) <= not crtl(1) and ctrl(0) and pouti(i+1), za 0<=i<4. Kako je ponašanje za kombinaciju 11 nedefinirano, izrazi se mogu pojednostavniti, tako da se promatraju slučajevi kada su oba bita ctrl u 0, nulti u 1 ili pak prvi u jedan. Kako su analizirani slučajevi potpuno disjunktni, navedeni izrazi za sve slučajeve mogu se spojiti logičkom operacijom ILI, iz čega slijedi navedeno rješenje. Nekorišteni ulaz pint(5) spaja se ne logičku jedinicu. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY shift is PORT ( pout: OUT std_logic_vector (4 DOWNTO 0); sin, reset, clk: IN std_logic; ctrl: IN std_logic_vector (1 DOWNTO 0); pin: IN std_logic_vector (4 DOWNTO 0) ); END shift; ARCHITECTURE Structural OF shift IS COMPONENT d_reg PORT ( clk, s, c: IN std_logic; d: IN std_logic_vector (1 DOWNTO 0); q: OUT std_logic_vector (1 DOWNTO 0) ); END COMPONENT; SIGNAL pint: std_logic_vector(5 DOWNTO 0); SIGNAL pouti: std_logic_vector(5 DOWNTO 0); BEGIN pint (0) <= (ctrl(1) AND pin(0)) OR (ctrl(0) AND pouti(1)) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(0)); pint (1) <= (ctrl(1) AND pin(1)) OR (ctrl(0) AND pouti(2)) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(1)); pint (2) <= (ctrl(1) AND pin(2)) OR (ctrl(0) AND pouti(3)) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(2)); pint (3) <= (ctrl(1) AND pin(3)) OR (ctrl(0) AND pouti(4)) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(3)); pint (4) <= (ctrl(1) AND pin(4)) OR (ctrl(0) AND sin) OR (NOT ctrl(1) AND NOT ctrl(0) AND pouti(4)); pint (5) <= '0'; r0: d_reg PORT MAP (clk, '1', reset, pint (1 DOWNTO 0), pouti(1 DOWNTO 0)); r1: d_reg PORT MAP (clk, '1', reset, pint (3 DOWNTO 2),
  • 14. Registri. 239 pouti(3 DOWNTO 2)); r2: d_reg PORT MAP (clk, '1', reset, pint (5 DOWNTO 4), pouti(5 DOWNTO 4)); pout <= pouti(4 DOWNTO 0); END Structural; Zašto je uopće uveden interni signal (vektor) pouti? Razlog tomu je činjenica da interni signal pint koji se dovodi na ulaze dvobitnih registara ovisi o trenutnom izlazu sklopa. No kako je trenutni izlaz sklopa (pout) u opisu sklopa proglašen izlaznim (out), njegova se vrijednost ne može čitati! Da bismo riješili taj problem, možemo postupiti dvojako: ili pout proglasiti ulazom/izlazom (dakle, u VHDL-u to bi bilo inout), ili uvesti interni signal koji direktno spajamo na izlaz sklopa. Prvo rješenje je loše jer može rezultirati sintezom dodatnog sklopovlja (kako bi se osiguralo da se s tih pinova sklopa doista može i čitati i pisati). Drugo je rješenje, iz očitog razloga, bolje. 10.12. Zadatak Uporabom potrebnog broja sinkronih bridom okidanih JK bistabila ostvariti 4-bitni posmačni registar sa serijskim ulazom i paralelnim izlazom. Dozvoljeno je koristiti jedan invertor. J Q Q CP K J Q Q CP K J Q Q CP K J Q Q CP K1 D0 D1 D2 D3 CP Sin Objašnjenje: Prvi bistabil uporabom invertora pretvoren je u D bistabil koji je i inače osnova za izgradnju registara. Međutim, kako smo time potrošili raspoložive invertore, potrebno se je dosjetiti kako i ostale JK bistabile pretvoriti u D bistabile. To nije preteško jer je uvjet da bismo iz JK bistabila dobili D bistabil upravo dovođenje komplementarnih vrijednosti na ulaze J i K. No komplementarne vrijednosti već imamo na izlazu prethodnog bistabila, pa je dovoljno samo spojiti izlaz bistabila sa J ulazom sljedećeg JK bistabila, a komplementirani izlaz sa K ulazom.
  • 15. 240 M. Čupić – Zbirka riješenih zadataka 10.13. Zadatak Prikazati funkciju sklopa 74LS194. Opisati sklop ponašajnim VHDL-om. Sklop 74LS194 ima funkciju posmačnog registra, čije je sučelje prikazano na slici, a funkcija opisana tablicom: • Posmak u lijevo ide od A prema D • Posmak u desno ide od D prema A • CLR je asinkron S1 S0 Akcija QA* QB* QC* QD* 0 0 Zadrži QA QB QC QD 0 1 Posmak desno RIN QA QB QC 1 0 Posmak lijevo QB QC QD LIN 1 1 Učitaj A B C D library IEEE; use IEEE.std_logic_1164.all; ENTITY SHREG74LS194 IS PORT ( CLK, CLR, RIN, LIN : IN STD_LOGIC; S : IN STD_LOGIC_VECTOR(1 DOWNTO 0); D : IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END SHREG74LS194; ARCHITECTURE SHREG_ARCH OF SHREG74LS194 IS SIGNAL IQ : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS (CLK, CLR, IQ) BEGIN IF (CLR='1') THEN IQ <= "0000"; ELSIF (CLK'event AND CLK='1') THEN CASE S IS WHEN "00" => NULL; WHEN "01" => IQ <= RIN & IQ(3 DOWNTO 1); WHEN "10" => IQ <= IQ(2 DOWNTO 0) & LIN; WHEN "11" => IQ <= D; WHEN OTHERS => NULL; END CASE; END IF; Q <= IQ; END PROCESS; END SHREG_ARCH;
  • 16. Registri. 241 10.14. Zadatak Ponašajnim VHDL-om modelirati 8-bitni posmačni registar sa serijskim i paralelnim ulazima i paralelnim izlazom, čija je funkcija zadana tablično: S2 S1 S0 Akcija 0 0 0 Zadrži 0 0 1 Učitaj 0 1 0 Posmak u desno, punjenje s LIN 0 1 1 Posmak u lijevo, punjenje s RIN 1 0 0 Ciklički posmak u desno 1 0 1 Ciklički posmak u lijevo 1 1 0 Aritmetički posmak u desno 1 1 1 Aritmetički posmak u lijevo Signal za brisanje CLR mora biti izveden asinkrono. library IEEE; use IEEE.std_logic_1164.all; ENTITY SHREG IS PORT ( CLK, CLR, RIN, LIN : IN STD_LOGIC; S : IN STD_LOGIC_VECTOR(2 DOWNTO 0); D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END SHREG; ARCHITECTURE SHREG_ARCH OF SHREG IS SIGNAL IQ : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS (CLK, CLR, IQ) BEGIN IF (CLR='1') THEN IQ <= (OTHERS=>'0'); ELSIF (CLK'event AND CLK='1') THEN CASE S IS WHEN "000" => NULL; WHEN "001" => IQ <= D; WHEN "010" => IQ <= LIN & IQ(7 DOWNTO 1); WHEN "011" => IQ <= IQ(6 DOWNTO 0) & RIN; WHEN "100" => IQ <= IQ(0) & IQ(7 DOWNTO 1); WHEN "101" => IQ <= IQ(6 DOWNTO 0) & IQ(7); WHEN "110" => IQ <= IQ(7) & IQ(7 DOWNTO 1); WHEN "111" => IQ <= IQ(6 DOWNTO 0) & '0'; WHEN OTHERS => NULL; END CASE; END IF; Q <= IQ; END PROCESS; END SHREG_ARCH;
  • 17. 242 M. Čupić – Zbirka riješenih zadataka 10.15. Pismeni ispit, 09. 02. 2004, 1. zadatak Na raspolaganju su sljedeći elementi: trobitni posmačni registar (s upravljačkim ulazom RS / : 0 – rotacija, 1 – posmak; vidi sliku), D bistabil te multipleksor 2/1. Samo njihovom uporabom projektirati četverobitni posmačni registar istih mogućnosti. Sin Q2 Q1 Q0 CPRS / → D Q CP 1 0 1 Q3 Q2 Q1 Q0 Sin RS / CP Sin Q2 Q1 Q0 CPRS / →
  • 18. Registri. 243 ZADACI ZA VJEŽBU 1. Na raspolaganju su tri 4-bitna registra čija je funkcija opisana tablicom, a sučelje prikazano slikom. Uporabom samo tih registara i tri multipleksora 4/1 (gdje/ako treba) nacrtati shemu 12-bitnog registra koji: a) ima istu funkcionalnost kao i 4-bitni registar b) ima istu funkcionalnost kao i 4-bitni registar, samo što umjesto posmaka obavlja rotaciju. Za b) dio zadatka K-tablicama pronaći minimalni oblik funkcija Sin svakog registra. Ctrl1 Ctrl0 Funkcija 0 0 Čuva se trenutno pohranjen podatak. 0 1 Posmak u desno, punjenje sa Sin. 1 0 Posmak u lijevo, punjenje sa Sin. 1 1 Paralelni upis. 2. Nacrtati potpuni dijagram prijelaza stanja 4-bitnog posmačnog registra udesno. Registar ima serijski ulaz, paralelne izlaze te na svaki padajući brid CP-a obavlja posmak udesno. Napisati ponašajni model ovog sklopa u VHDL-u. 3. Na raspolaganju je posmačni registar sa serijskim ulazom i paralelnim izlazima. Njegovom uporabom projektirati sekvencijski sklop koji na izlazu ciklički generira slijed 0,1,1,0,0,1,1,1. Na raspolaganju su još i osnovni logički sklopovi. 4. Na raspolaganju je 3-bitni registar s paralelnim ulazima i paralelnim izlazima. Njegovom uporabom projektirati sekvencijski sklop koji na izlazu ciklički generira slijed 0,1,3,2,6,7,5,4.
  • 19.
  • 20. Brojila. 245 11. Brojila. 11.1. Zadatak Asinkrono binarno brojilo sastavljeno je od 3 dvostruka JK bistabila. Na ulaz brojila dovode se impulsi takta. Projektirati sklop temeljen na ovom brojilu koji će nakon svakih osam impulsa takta na izlazu dati jedinicu. Koje stanje treba dekodirati ako se želi raditi na maksimalnoj frekvenciji? Na raspolaganju su još samo NI sklopovi. Asinkrono brojilo ostvareno JK bistabilima prikazano je na slici. Uočiti da se JK bistabili zapravo koriste kao T bistabili (J=K=1). J K Q Q CP J K Q Q CP J K Q Q CP 1 CP B0 B1 B2 Kako imamo brojilo od 3 bistabila, ukupan broj stanja kroz koja bistabili prolaze jest upravo 8 (=23 ). Obzirom da moramo nakon svakih 8 impulsa na izlazu generirati 1, to upravo znači da možemo detektirati jedno od 8 stanja. Naime, ako npr. generiramo jedinicu kada se na izlazu brojila pojavi 6, do sljedećeg pojavljivanja broja 6 opet će proći osam otkucaja takta. Dodatni uvjet zadatka zahtjeva maksimalno brz odziv sklopa. Pogledajmo zato koliko nam vremena treba da bismo detektirali broj 6 na izlazu. Kada brojilo prelazi sa 5 na 6, mijenjaju se dva bita: B2 B1 B0 B2 B1 B0 Broj bitova koji se mijenja 1 0 1 → 1 1 0 2 U trenutku kada dođe impuls takta na ulaz bistabila B0, stanje tog bistabila se mijenja iz 1 u 0 nakon tdb. Zbog te promjene se nakon novih tdb mijenja stanje bistabila B1 iz 0 u 1 (tdb je vrijeme potrebno za promjenu stanja bistabila). Da bismo dekodirali stanje 6 (tj. 1102), odnosno minterm 012 BBB : ( )( )012012012 ,, BBBNINIBBBBBB == (napomena: 0B ne treba ostvarivati NI sklopom jer iz svakog bistabila imamo izlaz i njegov komplement) trebamo sklop: & & 2B 1B 0B
  • 21. 246 M. Čupić – Zbirka riješenih zadataka Ovaj sklop će za dekodiranje stanja 6 trebati još 2 tdls (jedan za NI sklop koji množi 2B , 1B i 0B , i jedan za završni invertor; tdls je vrijeme potrebno da rezultat prođe na izlaz logičkog sklopa), pa će ukupno vrijeme potrebno za dekodiranje ovog stanja biti: dlsdbdek ttt ⋅+⋅= 226 Pitanje je da li se to može obaviti i brže. Pogledajmo sva moguća stanja koja možemo dekodirati i koliko je to brzo moguće: B2 B1 B0 B2 B1 B0 Broj bitova koji se mijenja Vrijeme dekodiranja stanja 1 1 1 → 0 0 0 3 dlsdbdek ttt ⋅+⋅= 230 0 0 0 → 0 0 1 1 dlsdbdek ttt ⋅+⋅= 211 0 0 1 → 0 1 0 2 dlsdbdek ttt ⋅+⋅= 222 0 1 0 → 0 1 1 1 dlsdbdek ttt ⋅+⋅= 213 0 1 1 → 1 0 0 3 dlsdbdek ttt ⋅+⋅= 234 1 0 0 → 1 0 1 1 dlsdbdek ttt ⋅+⋅= 215 1 0 1 → 1 1 0 2 dlsdbdek ttt ⋅+⋅= 226 1 1 0 → 1 1 1 1 dlsdbdek ttt ⋅+⋅= 217 Vidimo da su najbolji kandidati za dekodiranje stanja 1, 3, 5 i 7. Odlučimo li se za dekodiranje stanja 7, konačni sklop će izgledati: J K Q Q CP J K Q Q CP J K Q Q CP 1 CP B0 B1 B2 & & m7
  • 22. Brojila. 247 11.2. Zadatak Realizirati asinkrono brojilo sa 12 stanja uporabom dvostrukih JK bistabila. Pri tome se koristiti: a) Asinkronim ulazom za postavljanje, b) Asinkronim ulazom za brisanje. Odrediti potreban broj bistabila. Na raspolaganju su još i NI sklopovi. Ako je poznato da je tdls = 10 ns, tdb = 20 ns a točitanja = 20 ns, odrediti za svaki slučaj maksimalnu frekvenciju rada sklopa. Ako brojilo mora proći kroz N stanja, mora vrijediti n N 2≤ , gdje je n broj bistabila. Ova jednadžba ima beskonačno mnogo rješenja, ali mi ćemo naravno uzeti najmanji mogući n koji je zadovoljava, pa je time rješenje jednoznačno. Za N=12 traženi n je 4, jer je upravo 16212 4 =≤ . a) Uporaba asinkronog ulaza za postavljanje. Kada se aktivira asinkroni ulaz za postavljanje, brojilo prelazi u stanje "sve jedinice", tj. četiri-bitno brojilo prelazi u stanje 1111(2) = 15, što traje do sljedećeg impulsa CP. No kako je stanje 15 stanje koje pripada skupu stanja kroz koje brojilo prolazi, pogledajmo kroz koja još stanja brojilo mora prolaziti: 15→0→1→2→3→4→5→6→7→8→9→10→11→12→13→14→15 12 stanja postaviti u 15 Na prethodnom dijagramu vidimo kada treba djelovati na ulaze za postavljanje: kada brojilo dođe do broja 11 (što je zapravo N-1), brojilo je potrebno prebaciti u stanje 15. Stanje 11 ( 0123 BBBB ) može se potpuno dekodirati uporabom 4 ulazni NI sklopa. Sklop je sljedeći:
  • 23. 248 M. Čupić – Zbirka riješenih zadataka J K Q Q CP dS dC B0 J K Q Q CP dS dC B1 J K Q Q CP dS dC B2 J K Q Q CP dS dC B3 & D0 D1 D2 D3 CP 1 Vremenska analiza Da bismo utvrdili kojom maksimalnom frekvencijom smiju dolaziti impulsi takta, potrebno je razmotriti dva vremena: (i) vrijeme potrebno za slijednu promjenu stanja u ciklusu brojanja i (ii) vrijeme potrebno za povratak na početak ciklusa. Maksimalna frekvencija rada određena je većim od ta dva vremena. B2 B2 B1 B0 B2 B2 B1 B0 Broj bitova koji se mijenja 1 1 1 1 → 0 0 0 0 4 0 0 0 0 → 0 0 0 1 1 0 0 0 1 → 0 0 1 0 2 0 0 1 0 → 0 0 1 1 1 0 0 1 1 → 0 1 0 0 3 0 1 0 0 → 0 1 0 1 1 0 1 0 1 → 0 1 1 0 2 0 1 1 0 → 0 1 1 1 1 0 1 1 1 → 1 0 0 0 4 1 0 0 0 → 1 0 0 1 1 1 0 0 1 → 1 0 1 0 2 1 0 1 0 → 1 0 1 1 1 Najveći broj promjena bitova je 4, pa je najveće vrijeme potrebno za slijednu promjenu stanja u ciklusu brojanja (bez očitavanja) jednako 802044 =⋅=⋅ dbt ns. Ovaj dio mogao se je riješiti i bez izrade tablice, obzirom da su kod ovog tipa brojila stanja "sve nula" i "sve jedan" sastavni i susjedni dijelovi ciklusa brojanja, tako da će maksimalno vrijeme ovdje biti određeno kao kašnjenje jednog bistabila puta broj bistabila u brojilu. Za izračun vremena potrebnog za povratak na početak ciklusa promotrimo zadnje stanje u ciklusu:
  • 24. Brojila. 249 B2 B2 B1 B0 B2 B2 B1 B0 Broj bitova koji se mijenja 1 0 1 0 → 1 0 1 1 1 Na signal takta brojilo iz 1010 prelazi u 1011 za što je potrebno dbt⋅1 . Zatim nakon vremena dlst⋅1 reagira sklop za detekciju stanja 11 i generira signal za postavljanje na ulaze svih bistabila. Bistabili reagiraju paralelno i nakon još dbt⋅1 svi su u stanju 1 čime je završena promjena. Ukupno vrijeme potrebno za ovu operaciju tada je 5010120212111 =⋅+⋅=⋅+⋅=⋅+⋅+⋅ dlsdbdbdlsdb ttttt ns. Ovaj račun donekle je neprecizan jer novi impuls ne bi smio stići tako dugo dok je signal za postavljanje aktivan (pa bismo trebali sačekati još dlst⋅1 nakon što se svi bistabili postave tako da logički NI sklop ukloni taj signal). Međutim, ovo vrijeme maskira se vremenom očitanja koje je puno duže, pa u ovom slučaju ne igra nikakvu ulogu. Veće od ova dva vremena je prvo, pa je maksimalna frekvencija rada sklopa određena recipročnom vrijednošću sume prvog vremena i vremena potrebnog za očitavanje stanja: MHz nsnsns f 10 100 1 2080 1 max == + = b) Uporaba asinkronog ulaza za brisanje. Kada se aktivira asinkroni ulaz za brisanje, brojilo prelazi u stanje "sve nule", tj. četiri- bitno brojilo prelazi u stanje 0000(2) = 0, što traje do sljedećeg impulsa CP. No kako je stanje 0 stanje koje pripada skupu stanja kroz koje brojilo prolazi, pogledajmo kroz koja još stanja brojilo mora prolaziti: 0→1→2→3→4→5→6→7→8→9→10→11→12→13→14→15→0 12 stanja postaviti u 0 Na prethodnom dijagramu vidimo kada treba djelovati na ulaze za brisanje: kada brojilo dođe do broja 12 (što je zapravo N), brojilo je potrebno prebaciti u stanje 0. Stanje 12 može se potpuno dekodirati (4 ulazni I sklop). Međutim, u ovom slučaju (kada se koriste brojila koja broje unaprijed i ulaz za brisanje) dovoljno je na ulaze NI sklopa dovesti one izlaze brojila koji su u stanju koje dekodiramo postavljeni na 1. Dakle, kod dekodiranja stanja 12 = 1100(2) na ulaze NI sklopa dovodimo izlaze B3 i B2. Sklop je sljedeći:
  • 25. 250 M. Čupić – Zbirka riješenih zadataka J K Q Q CP dS dC B0 J K Q Q CP dS dC B1 J K Q Q CP dS dC B2 J K Q Q CP dS dC B3 & CP 1 D0 D1 D2 D3 Analiziramo li malo bolje ovaj sklop, uočiti ćemo da bi sklop mogao imati problema u radu. Naime, u trenutku kada sklop dođe u stanje 12, aktivira se ulaz za brisanje. No kako bistabili općenito nisu identični, moguće je da npr. bistabil B3 ode u nulu puno prije bistabila B2. No čim B3 ode u nulu, stanje više nije 12 (1100(2)), već 4 (0100(2)). Zbog toga sklop za detekciju stanja 12 prestaje biti aktivan te je moguće da bistabil B2 ostane i dalje postavljen, jer je signal za reset trajao prekratko. Kako bi se ovo izbjeglo, može se uporabom još dva NI sklopa ostvariti bistabil koji će se resetirati na signal za reset, a postaviti u neaktivno stanje signalom takta, kao što je prikazano na slici: J K Q Q CP dS dC B0 J K Q Q CP dS dC B1 J K Q Q CP dS dC B2 J K Q Q CP dS dC B3 & CP 1 D0 D1 D2 D3 & && Q QR S Kod ove izvedbe, čak i ako se npr. B3 resetira puno ranije od B2, što će za posljedicu imati prestanak djelovanja signala koji detektira stanje 12, signal za reset će i dalje djelovati jer je on pohranjen u bistabilu koji će se postaviti u neaktivno stanje (1) tek kada CP postane 1 (CP djeluje sa 1 jer ga naknadno dodatni NI sklop invertira).
  • 26. Brojila. 251 Vremenska analiza (bez pomoćnog bistabila) Ukoliko je zadovoljen zahtjev o minimalnom broju bistabila, tada će i u ovom slučaju postojati prijelaz u kojem svi bistabili mijenjaju stanje. To znači da je najveće vrijeme potrebno za slijednu promjenu stanja u ciklusu brojanja (bez očitavanja) jednako 802044 =⋅=⋅ dbt ns (jer imamo 4 bistabila). Za izračun vremena potrebnog za povratak na početak ciklusa promotrimo zadnje stanje u ciklusu: B2 B2 B1 B0 B2 B2 B1 B0 Broj bitova koji se mijenja 1 0 1 1 → 1 1 0 0 3 Na signal takta brojilo iz 1011 prelazi u 1100 za što je potrebno dbt⋅3 . Zatim nakon vremena dlst⋅1 reagira sklop za detekciju stanja 12 i generira signal za postavljanje na ulaze svih bistabila. Bistabili reagiraju paralelno i nakon još dbt⋅1 svi su u stanju 0 čime je završena promjena. Ukupno vrijeme potrebno za ovu operaciju tada je 9010120414113 =⋅+⋅=⋅+⋅=⋅+⋅+⋅ dlsdbdbdlsdb ttttt ns. Veće od ova dva vremena je drugo, pa je maksimalna frekvencija rada sklopa određena recipročnom vrijednošću sume drugog vremena i vremena potrebnog za očitavanje stanja: MHz nsnsns f 09,9 110 1 2090 1 max == + = Analiza vremena uz pomoćni bistabil Ova analiza nešto je složenija od prethodnog slučaja. Prvo vrijeme je isto ( 802044 =⋅=⋅ dbt ns). Dodajmo tome odmah i vrijeme očitavanja pa za prvi slučaj imamo 1002080 =+ ns. Izračun vremena potrebnog za povratak na početak ciklusa je nešto kompliciranije. Promotrimo situaciju kada je brojilo u stanju 11. Na padajući brid CPa (od tog trenutka mjerimo vrijeme) brojilo nakon dbt⋅3 prelazi u stanje 12. Nakon dlst⋅1 reagira sklop za detekciju stanja 12 i generira signal za reset pomoćnog bistabila. Za reset pomoćnog bistabila potrebno je dlst⋅2 . Sada je izlaz pomoćnog bistabila 0 pa se paralelno resetiraju svi bistabili brojila. Za što je potrebno još dbt⋅1 . Označimo ovaj trenutak oznakon tx. Za vrijeme tx temeljem prethodnog razmatranja vrijedi: dlsdbdbdlsdlsdbx ttttttt ⋅+⋅=⋅+⋅+⋅+⋅= 341213 . Tek sada CP smije otići u 1, čime će se na izlazu invertora nakon dlst⋅1 pojaviti 0 koja će još nakon dlst⋅1 postaviti pomoćni bistabil u 1 (ovime će se prestati djelovati na asinkrone ulaze za brisanje i brojilo će biti spremno za novi impuls CPa). Uočimo da je tx zapravo vrijeme od padajućeg brida CPa pa do pojave rastućeg brida CPa. Ako je signal CP simetričan, tada će minimalno trajanje periode CPa biti xt⋅2 , ako je vrijeme očitavanja (koje također smije započeti tek nakon tx) manje od tx. U suprotnom (točitanja > tx) će perioda CPa biti TCP=tx+točitanja. U našem konkretnom slučaju 11010320434 =⋅+⋅=⋅+⋅= dlsdbx ttt ns, što je puno
  • 27. 252 M. Čupić – Zbirka riješenih zadataka veće od točitanja. Zbog toga uzimamo 22011022 =⋅=⋅= xCP tT ns, što je definitivno najveće dobiveno vrijeme koje zbog toga određuje maksimalnu frekvenciju sklopa: MHz nsT f CP 55,4 220 11 max === Treba međutim primjetiti da ovo ipak nije najveća moguća frekvencija rada sklopa. Naime, da bi CP postavio pomoćni bistabil u 1, njemu treba dlst⋅1 (za prolaz kroz invertor) i dlst⋅1 za postavljanje izlaza pomoćnog bistabila u 1, što je ukupno dlst⋅2 . No tada bi (teoretski) CP mogao preći u 1 čak i u trenutku dlsx tt ⋅− 2 (jer će se bistabili brojila u trenutku tx resetirati, pa se pomoćni bistabil smije postaviti u 1 već u trenutku tx). Ovime bi se možda mogla povećati maksimalna frekvencija rada, međutim, ovakav proračun vrijedi uz pretpostavku da će se svi bistabili resetirati upravo nakon dbt⋅1 . No pomoćni bistabil smo i uveli jer nismo mogli garantirati da će ovo biti uvijek ispunjeno, pa na ovaj način nećemo raditi. Dodatak zadatku: smijemo li prilikom uporabe brojila koji broji unaprijed dekodirati samo jedinice u svrhu resetiranja brojila? Pogledajmo slučaj koji smo imali u b) dijelu zadatka, i minimizirajmo sklop za dekodiranje stanja 12. Brojilo u ovom slučaju broji: 0→1→...→9→10→11→(12→)0. Ovo znači da se stanja 13, 14 i 15 nikada neće pojaviti, pa ih možemo označiti kao dont-care minterme. Postupak minimizacije daje: D3D2 00 01 11 10 D1D0 00 0 0 1 0 01 0 0 × 0 11 0 0 × 0 10 0 0 × 0 23DD čime su upravo izbačeni oni članovi koji su bili nula. No to vrijedi upravo zato što dekodiramo najveći dozvoljeni broj. Ako bismo željeli dekodirati stanja u svrhu postavljanja brojila u stanje "sve jedan", ovakvo razmišljanje ne bi vrijedilo (npr. a) dio zadatka; dekodiramo 11, ali brojilo prelazi u 15 pa nije istina da su sva stanja veća od 11 dont-care stanja). Za vježbu: Nacrtati vremenske dijagrame za a) i b) dijelove zadatka.
  • 28. Brojila. 253 11.3. Zadatak Realizirati sinkrono trobitno binarno brojilo uporabom dvostrukih JK bistabila. J K Q Q CP B0 J K Q Q CP B1 J K Q Q CP B2 CP 1 D0 D1 D2 & 11.4. Zadatak Realizirati sinkrono trobitno binarno brojilo koje broji u Grayevom kodu uporabom dvostrukih JK bistabila, i potrebnog broja osnovnih logičkih sklopova. Napišimo tablicu promjene stanja u upišimo potrebne pobude bistabila: n n+1 Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 0 0 0 0 0 1 0 × 0 × 1 × 0 0 1 0 1 1 0 × 1 × × 0 0 1 1 0 1 0 0 × × 0 × 1 0 1 0 1 1 0 1 × × 0 0 × 1 1 0 1 1 1 × 0 × 0 1 × 1 1 1 1 0 1 × 0 × 1 × 0 1 0 1 1 0 0 × 0 0 × × 1 1 0 0 0 0 0 × 1 0 × 0 × Očitavamo Ji i Ki kao funkcije od Q2, Q1 i Q0 u trenutku n i vršimo minimizaciju: J2 Q1Q0 00 01 11 10 Q2 0 1 1 × × × × K2 Q1Q0 00 01 11 10 Q2 0 × × × × 1 1
  • 29. 254 M. Čupić – Zbirka riješenih zadataka J1 Q1Q0 00 01 11 10 Q2 0 1 × × 1 × × K1 Q1Q0 00 01 11 10 Q2 0 × × 1 × × 1 J0 Q1Q0 00 01 11 10 Q2 0 1 × × 1 × × 1 K0 Q1Q0 00 01 11 10 Q2 0 × 1 × 1 × 1 × 12120 12120 021 021 012 012 QQQQK QQQQJ QQK QQJ QQK QQJ += += = = = = J K Q Q CP J K Q Q CP & J K Q Q CP & CP D0 D1 D2 B0 B1 B2 && 1≥ 1≥ & & & & 11.5. Zadatak Realizirati sinkrono trobitno brojilo uporabom dvostrukih JK bistabila, i potrebnog broja osnovnih logičkih sklopova, koje prolazi kroz stanja: 0→4→1→5→7→0. Osigurati siguran start brojila (tako da se nespecificirana stanja prebace u 0). Napišimo tablicu prijelaza zajedno sa odgovarajućom pobudom bistabila:
  • 30. Brojila. 255 n n+1 Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 0 0 0 1 0 0 1 × 0 × 0 × 0 0 1 1 0 1 1 × 0 × × 0 0 1 0 0 0 0 0 × × 1 0 × 0 1 1 0 0 0 0 × × 1 × 1 1 0 0 0 0 1 × 1 0 × 1 × 1 0 1 1 1 1 × 0 1 × × 0 1 1 0 0 0 0 × 1 × 1 0 × 1 1 1 0 0 0 × 1 × 1 × 1 Očitavamo Ji i Ki kao funkcije od Q2, Q1 i Q0 u trenutku n i vršimo minimizaciju: J2 Q1Q0 00 01 11 10 Q2 0 1 1 1 × × × × K2 Q1Q0 00 01 11 10 Q2 0 × × × × 1 1 1 1 J1 Q1Q0 00 01 11 10 Q2 0 × × 1 1 × × K1 Q1Q0 00 01 11 10 Q2 0 × × 1 1 1 × × 1 1 J0 Q1Q0 00 01 11 10 Q2 0 × × 1 1 × × K0 Q1Q0 00 01 11 10 Q2 0 × 1 × 1 × 1 × 10 120 1 021 012 12 1 QK QQJ K QQJ QQK QJ = = = = += = Shema sklopa:
  • 31. 256 M. Čupić – Zbirka riješenih zadataka J K Q Q CP J K Q Q CP J K Q Q CP CP D0 D1 D2 1≥ & 1 & B0 B1 B2 11.6. Zadatak Realizirati sinkrono trobitno brojilo uporabom dvostrukih JK bistabila, i potrebnog broja osnovnih logičkih sklopova, koje prolazi kroz stanja: 0→4→1→5→7→0. Nije potrebno osigurati siguran start brojila. Provjeriti da li će tako realizirano brojilo raditi ispravno. Napišimo tablicu prijelaza zajedno sa odgovarajućom pobudom bistabila: n n+1 Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 0 0 0 1 0 0 1 × 0 × 0 × 0 0 1 1 0 1 1 × 0 × × 0 0 1 0 × × × × × × × × × 0 1 1 × × × × × × × × × 1 0 0 0 0 1 × 1 0 × 1 × 1 0 1 1 1 1 × 0 1 × × 0 1 1 0 × × × × × × × × × 1 1 1 0 0 0 × 1 × 1 × 1 Napomena: prijelazi za stanja 2, 3 i 6 nisu zadani pa su u tablici označeni kao dont-care. Zbog toga je i odgovarajuća pobuda označena s dont-care. Očitavamo Ji i Ki kao funkcije od Q2, Q1 i Q0 u trenutku n i vršimo minimizaciju: J2 Q1Q0 00 01 11 10 Q2 0 1 1 × × 1 × × × × K2 Q1Q0 00 01 11 10 Q2 0 × × × × 1 1 1 ×
  • 32. Brojila. 257 J1 Q1Q0 00 01 11 10 Q2 0 × × 1 1 × × K1 Q1Q0 00 01 11 10 Q2 0 × × × × 1 × × 1 × J0 Q1Q0 00 01 11 10 Q2 0 × × × 1 1 × × × K0 Q1Q0 00 01 11 10 Q2 0 × × × 1 × 1 × Shema sklopa: J K Q Q CP J K Q Q CP J K Q Q CP CP D0 D1 D2 1≥ & 1 1 Provjera rada za nespecificirana stanja: Ako je sklop u stanju 2: 010012 =QQQ . J2=1, K2=1, J1=0, K1=1, J0=0 i K0=1, zbog čega će nakon djelovanja impulsa takta brojilo promijeniti stanje u 100012 =QQQ , što je stanje 4. Ako je sklop u stanju 3: 011012 =QQQ . J2=1, K2=1, J1=0, K1=1, J0=0 i K0=1, zbog čega će nakon djelovanja impulsa takta brojilo promijeniti stanje u 100012 =QQQ , što je stanje 4. Ako je sklop u stanju 6: 110012 =QQQ . J2=1, K2=1, J1=0, K1=1, J0=1 i K0=1, zbog čega će nakon djelovanja impulsa takta brojilo promijeniti stanje u 001012 =QQQ , što je stanje 1. Dakle, i ovako realiziran sklop će nakon prvog koraka sigurno ući u ciklus brojenja. Moguće loša stvar je činjenica da je ulazak u ciklus brojenja iz nespecificiranih stanja na različita mjesta.
  • 33. 258 M. Čupić – Zbirka riješenih zadataka 11.7. Zadatak Projektirati trobitno asinkrono brojilo koje broji u ciklusu sa 7 stanja. Analizirati da li sklop radi ispravno i predložiti rješenje uočenog problema. Za realizaciju brojila koristiti T bistabile s ulazom za postavljanje stanja. Ako koristimo ulaze za postavljanje, tada je stanje 111(2)≡7 sigurno dio ciklusa brojanja jer djelovanjem na ove ulaze sklop odlazi u to stanje. Kako nam treba još 6 stanja, kompletan ciklus brojanja biti će: 7 → 0 → 1 → 2 → 3 → 4 → 5 → (6) → 7 Moramo detektirati stanje 6 i djelovati na ulaze za postavljanje. 6=110(2), pa je shema sklopa: T Q Q CP B0 T Q Q CP B1 T Q Q CP B2 11 1 D0 D1 D2 ulaz dS dS dS & Analizirajmo sada rad sklopa (sljedeća slika). Pretpostavimo da su u jednom trenutku svi bistabili postavljeni u 0, pa se brojilo nalazi u stanju 0. Nailaskom padajućeg brida ulaznog impulsa pokreće se promjena stanja bistabila B0. Međutim, ta se promjena događa tek nakon vremena kašnjenja bistabila (tdb), tako da je sve do isteka vremena kašnjenja bistabila brojilo još uvijek u stanju 0. Nakon vremena kašnjenja bistabila bistabil mijenja stanje i brojilo prelazi u stanje 1. Kako se je na izlazu B0 (ulazu B1) dogodio rastući brid, bistabil B1 ne reagira i došli smo u stabilno stanje. Nailaskom sljedećeg padajućeg brida na ulazu brojila opet se pokreće promjena stanja bistabila B0, koja se i dogodi nakon tdb, pa brojilo iz stanja 1 ulazi u stanje 0. No kako se je sada uslijed pada izlaza B0 sa 1 na 0 dogodio padajući brid, pokreće se promjena stanja bistabila B1, koja se dogodi nakon još jednog tdb. Time brojilo iz kratkotrajnog prijelaznog stanja 0 prelazi u stanje 2. Kako se je u tom trenutku na izlazu B1 dogodio rastući brid, nema nikakvog utjecaja na bistabil B2 pa je ovo stabilno stanje. Na sličan se način mogu analizirati i ostala stanja. Pogledajmo sada još kakav je odziv logičkog sklopa za detekciju stanja 6. Neka se brojilo nalazi u stanju 5. Nailaskom padajućeg brida na ulazu brojila pokreće se promjena stanja B0, koja se dogodi nakon tdb. Time brojilo dolazi u stanje 4. No budući da se je bistabil B0 prešao iz stanja 1 u stanje 0 (tj. dogodio se je padajući brid), reagira i bistabil B1 koji nakon još jednog tdb mijenja stanje u 1, čime brojilo iz prijelaznog stanja
  • 34. Brojila. 259 4 prelazi u stanje 6. No sada će na stanje 6 reagirati sklop za detekciju stanja 6, i nakon vremena kašnjenja logičkog sklopa (tdls) na izlazu će se pojaviti logička 0 koja se dovodi na ulaze za postavljanje bistabila. Bistabili će svi reagirati nakon vremena kašnjenja bistabila, i ući u stanje 7. Ovo će rezultirati nestankom stanja 6 koje detektira logički sklop pa će se nakon vremena kašnjenja logičkog sklopa na njegovom izlazu ponovno pojaviti neaktivno stanje. Time je završen nasilan prekid ciklusa brojanja. Prema dosadašnjoj analizi čini se da će ovo brojilo raditi bez problema, kao što je to prikazano na vremenskom dijagramu. 0 1 2 3 54 6 7 0 1 2 3 CP Q0 Q1 Q2 R 6 4 0 02 4 0 Međutim, nastavimo analizu dalje. Brojilo je u stanju 7. Na sljedeći padajući brid signala na ulazu sklopa nakon 1 tdb prvi bistabil mijenja stanje, i dolazi u prijelazno stanje 110(2)≡6. No baš to stanje očitava i NI sklop, koji zatim generira impuls za postavljanje bistabila u stanje 7! Brojilo nikada više neće izaći iz stanja 7. Zapravo, kako zabranjeno stanje 6 traje točno tdb, a vrijeme potrebno za postavljanje bistabila također smo modelirali sa tdb, moguća je još gora situacija – bistabili se ponekad mogu postaviti, a ponekad mogu i ne reagirati na signal, pa dobijemo stohastičko ponašanje. Postoji više načina kako riješiti ovaj problem. U nastavku će biti opisana dva. Prvi način rješavanja problema je dovođenje dodatnog signala X na NI sklop, pri čemu je signal X definiran na sljedeći način: X je 0 od trenutka padajućeg brida (označimo to vrijeme sa tp) ulaznog signala minus vrijeme kašnjenja logičkog sklopa, dakle od tp-tdls, pa do trenutka dok ne završe sve prijelazne pojave unutar brojila plus vrijeme kašnjenja logičkog sklopa: tp+3*tdb+tdls, dok je u svim ostalim trenucima 1. Evo kako ovo rješava problem. U trenutku kada započnu prijelazne pojave signal X postaje 0. Zbog toga u trenutku kada brojilo iz stanja 7 uđe u prijelazno stanje 6 sklop za CP X t t Maskiranje prijelaznih pojava
  • 35. 260 M. Čupić – Zbirka riješenih zadataka detekciju stanja 6 neće reagirati jer ga signal X inhibira. Tek kada završe sve prijelazne pojave, X će postati 1 i tada će sklop NI moći reagirati. Međutim, kako smo sada u stabilnom stanju 0, sklop neće reagirati, i problem je riješen. Negativna posljedica ovakvog rješenja je kasna reakcija na stvarno stanje 6. Naime, bez ove modifikacije sklop je detektirao stanje 6 nakon 1*tdb+1*tdls i postavio signal za postavljanje svih bistabila. Sa modifikacijom sklop za detekciju stanja 6 reagirati će tek kada mu to X dozvoli, a to je nakon (3*tdb+1*tdls)+1*tdls, što će rezultirati značajno duljim ostankom u nedozvoljenom stanju 6. Alternativa prethodnom rješenju je uporaba ulaznog signala kao signala X (tako da nam ne treba još jedan generator novog signala), ali tada treba uzeti u obzir da ulazni signal mora biti takvog oblika da vrijeme tijekom kojega je u nuli bude dovoljno dugo da maskira sve prijelazne pojave kao što je to radio signal X opisan prethodno. 11.8. Zadatak Prikazati funkciju sklopa 74LS163. Opisati sklop ponašajnim VHDL-om. Sklop 74LS163 jest asinkrono 4-bitno brojilo, čije je sučelje prikazano na slici. • LD (load) i CLR (clear) djeluju sinkrono • Aktivan LD tijekom rastućeg brida signala takta učitava stanje brojila s ulaza ABCD. • Aktivan CLR tijekom rastućeg brida signala takta briše brojilo (tj. upisuje sve nule) • CLR nadjačava LD • LD nadjačava ENP i ENT • Ako je ENT=1 i ENP=1 brojilo se inkrementira • RCO = QD⋅QC⋅QB⋅QA⋅ENT, koristi se za kaskadiranje čipova library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; ENTITY C74LS163 IS PORT ( CLK, CLR, LD : IN STD_LOGIC; ENP, ENT : IN STD_LOGIC; D : IN UNSIGNED (3 DOWNTO 0); Q : OUT UNSIGNED (3 DOWNTO 0); RCO : OUT STD_LOGIC ); END C74LS163; ARCHITECTURE C74LS163_ARCH OF C74LS163 IS SIGNAL IQ : UNSIGNED (3 DOWNTO 0); BEGIN PROCESS (CLK, ENT, IQ) BEGIN IF (CLK'event AND CLK='1') THEN IF CLR='0' THEN IQ <= "0000"; ELSIF LD='0' THEN IQ <= D; ELSIF (ENT='1' AND ENP='1') THEN
  • 36. Brojila. 261 IQ <= IQ +1; END IF; END IF ; IF (IQ=15) AND (ENT='1') THEN RCO <='1'; ELSE RCO <= '0'; END IF; Q <= IQ; END PROCESS; END C74LS163_ARCH; 11.9. Zadatak Uporabom SR bistabila projektirati 4-bitno prstenasto brojilo. Nacrtati potpuni dijagram prijelaza stanja. Da li je to brojilo sa sigurnim startom? Četiribitno prstenasto brojilo je brojilo koje broji u sljedećem ciklusu: … → 1000 → 0100 → 0010 → 0001 → 1000 → … Karakteristika brojila je ciklus brojanja kroz n stanja, pri čemu je za realizaciju potrošeno n bistabila. Trenutno stanje Sljedeće stanje Potrebna pobuda Q0 Q1 Q2 Q3 Q0 Q1 Q2 Q3 S0 R0 S1 R1 S2 R2 S3 R3 0 0 0 0 × × × × × × × × × × × × 0 0 0 1 1 0 0 0 1 0 0 × 0 × 0 1 0 0 1 0 0 0 0 1 0 × 0 × 0 1 1 0 0 0 1 1 × × × × × × × × × × × × 0 1 0 0 0 0 1 0 0 × 0 1 1 0 0 × 0 1 0 1 × × × × × × × × × × × × 0 1 1 0 × × × × × × × × × × × × 0 1 1 1 × × × × × × × × × × × × 1 0 0 0 0 1 0 0 0 1 1 0 0 × 0 × 1 0 0 1 × × × × × × × × × × × × 1 0 1 0 × × × × × × × × × × × × 1 0 1 1 × × × × × × × × × × × × 1 1 0 0 × × × × × × × × × × × × 1 1 0 1 × × × × × × × × × × × × 1 1 1 0 × × × × × × × × × × × × 1 1 1 1 × × × × × × × × × × × × Minimizacijom slijedi: 23 QS = , 23 QR = 12 QS = , 12 QR = 01 QS = , 01 QR = 30 QS = , 30 QR =
  • 37. 262 M. Čupić – Zbirka riješenih zadataka Sklop koji je definiran ovim izrazima prikazan je na sljedećoj slici. Q Q Q Q Q Q Q Q Analizom projektiranog sklopa dolazi se do sljedećeg potpunog dijagrama prijelaza stanja: Prilikom dekodiranja stanja Q3 je promatran kao bit najveće, a Q0 kao bit najmanje težine. Iz dijagrama je vidljivo da ovo nije sklop sa sigurnim startom. 11.10. Zadatak Uporabom SR bistabila projektirati 4-bitno Johnsonovo brojilo. Nacrtati potpuni dijagram prijelaza stanja. Da li je to brojilo sa sigurnim startom? Četiribitno Johnsonovo brojilo je brojilo koje broji u sljedećem ciklusu: … → 0000 → 1000 → 1100 → 1110 → 1111 → 0111 → 0011 → 0001 → 0000 → … Karakteristika brojila je ciklus brojanja kroz 2⋅n stanja, pri čemu je za realizaciju potrošeno n bistabila.
  • 38. Brojila. 263 Trenutno stanje Sljedeće stanje Potrebna pobuda Q0 Q1 Q2 Q3 Q0 Q1 Q2 Q3 S0 R0 S1 R1 S2 R2 S3 R3 0 0 0 0 1 0 0 0 1 0 0 × 0 × 0 × 0 0 0 1 0 0 0 0 0 × 0 × 0 × 0 1 0 0 1 0 × × × × × × × × × × × × 0 0 1 1 0 0 0 1 0 × 0 × 0 1 × 0 0 1 0 0 × × × × × × × × × × × × 0 1 0 1 × × × × × × × × × × × × 0 1 1 0 × × × × × × × × × × × × 0 1 1 1 0 0 1 1 0 × 0 1 × 0 × 0 1 0 0 0 1 1 0 0 × 0 1 0 0 × 0 × 1 0 0 1 × × × × × × × × × × × × 1 0 1 0 × × × × × × × × × × × × 1 0 1 1 × × × × × × × × × × × × 1 1 0 0 1 1 1 0 × 0 × 0 1 0 0 × 1 1 0 1 × × × × × × × × × × × × 1 1 1 0 1 1 1 1 × 0 × 0 × 0 1 0 1 1 1 1 0 1 1 1 0 1 × 0 × 0 × 0 Minimizacijom slijedi: 23 QS = , 23 QR = 12 QS = , 12 QR = 01 QS = , 01 QR = 30 QS = , 30 QR = Sklop koji je definiran ovim izrazima prikazan je na sljedećoj slici. Q Q Q Q Q Q Q Q Zbog specifične realizacije, sklop je poznat i pod nazivom brojilo s ukrštenim prstenom. Analizom projektiranog sklopa dolazi se do sljedećeg potpunog dijagrama prijelaza stanja:
  • 39. 264 M. Čupić – Zbirka riješenih zadataka Prilikom dekodiranja stanja Q3 je promatran kao bit najveće, a Q0 kao bit najmanje težine. Iz dijagrama je vidljivo da ovo nije sklop sa sigurnim startom. ZADACI ZA VJEŽBU 1. Nacrtati 4 bitno asinkrono binarno brojilo unatrag izvedeno JK bistabilima. Ako je period signala koji se broji 100 ns, a kašnjenje bistabila 20 ns, nacrtati vremenski dijagram svih signala prilikom promjene stanja brojila iz 4 u 3. 2. Na raspolaganju su 2 D i 1 JK bistabil. Projektirati njihovom uporabom (i minimalnim brojem osnovnih logičkih sklopova) sinkrono brojilo koje broji u ciklusu 0 → 5 → 2 → 7 → 4 → 0. Da li je dobiveni sklop sklop sa sigurnim startom? Nacrtati potpuni dijagram prijelaza stanja. Prilikom rješavanja koristiti JK bistabil za pamćenje bita najmanje težine. 3. Na raspolaganju je 3 T bistabila i minimalni potreban broj osnovnih logičkih sklopova. Projektirati sinkroni sklop čiji je izlaz 2-bitni broj koji se mijenja u ciklusu: 0→1→2→3→2→1. 4. Brojilo je prikazano slikom. Nacrtati potpuni dijagram prijelaza stanja brojila. Da li je to brojilo sa sigurnim startom? Ako je poznato: tdb = 20 ns, tsetup = 20 ns, tdls = 10 ns, kolika je maksimalna frekvencija signala CP? Da li ovaj sklop pripada sinkronim ili asinkronim sklopovima? Q Q Q Q Q Q1≥
  • 40. Memorije. 309 13. Memorije. 13.1. Zadatak Prikazati osnovnu memorijsku ćeliju kod permanentne memorije izvedene diodnim poljem. Prikazati memoriju tipa 4×8 izvedenu ovom tehnologijom, u koju je upisan sljedeći sadržaj: ED, 2D, DA, AD. Pohranjena logička nula Pohranjena logička jedinica WL BL WL BL Pri tome WL označava liniju riječi (engl. Word Line) koja u aktivnom stanju ima logičku jedinicu, a BL označava liniju bita (engl. Bit Line) koja je preko otpora pritegnuta na masu. WL[0] WL[1] WL[2] WL[3] BL[0] BL[1] BL[2] BL[3] BL[4] BL[5] BL[6] BL[7] Sadržaj pohranjen u memoriju (raspisano po bitovima) definiran je tablicom prikazanom u nastavku.
  • 41. 310 M. Čupić – Zbirka riješenih zadataka LSB Sadržaj po bitovima MSB Lokacija Sadržaj b0 b1 b2 b3 b4 b5 b6 b7 0 ED 1 0 1 1 0 1 1 1 1 2D 1 0 1 1 0 1 0 0 2 DA 0 1 0 1 1 0 1 1 3 AD 1 0 1 1 0 1 0 1 13.2. Zadatak Prikazati osnovnu memorijsku ćeliju kod permanentne memorije izvedene MOSFET-om. Prikazati memoriju tipa 4×8 izvedenu ovom tehnologijom, u koju je upisan sljedeći sadržaj: ED, 2D, DA, AD. Pohranjena logička nula Pohranjena logička jedinica WL BL WL BL Pri tome WL označava liniju riječi (engl. Word Line) koja u aktivnom stanju ima logičku jedinicu, a BL označava liniju bita (engl. Bit Line) koja je preko "otpora" pritegnuta na napajanje ("otpor" je također izveden MOSFET-om). +UDD +UDD +UDD +UDD +UDD +UDD +UDD +UDD WL[0] WL[1] WL[2] WL[3] BL[0] BL[1] BL[2] BL[3] BL[4] BL[5] BL[6] BL[7]
  • 42. Memorije. 311 13.3. Zadatak Prikazati jednotranzistorsku MOSFET DRAM ćeliju. Objasniti način čuvanja, zapisivanja i čitanja informacije. Pretpostaviti da CS iznosi 50 fF, kapacitet linije bita CB = 25⋅CS a logičkoj jedinici odgovara napon od 5V. Izračunati napon na liniji BL prilikom čitanja pohranjene logičke jedinice. Jednotranzistorska MOSFET DRAM ćelija prikazana je na slici. WL BL CS US , QS Podaci se čuvaju na kondenzatoru preko naboja (na slici označeno s QS). Za odnos napona i naboja na kapacitetu vrijedi sljedeća relacija: SSS UCQ ⋅= Ako je US=0, tada je QS=0 te je pohranjena logička nula. Ako je US velik, tada je QS>0 te je pohranjena logička jedinica. Ćelija može raditi na tri načina: čuvanje, čitanje i pisanje. Kada ćelija čuva sadržaj, tranzistor je isključen (WL=0) čime se čuva naboj na kondenzatoru. Zapisivanje sadržaja obavlja se postavljanjem vrijednosti na liniju bita (logičko 0 ili logičko 1) te otvaranjem tranzistora (WL=1). Npr. ako zapisujemo logičko 1, na liniju bita dovodimo UDD i zatim otvaramo tranzistor. Kapacitet CS nakon nekog će se vremena nabiti na UDD, i tada možemo zatvoriti tranzistor i ukloniti podatak s linije bita. Čitanje podatka obavlja se dovođenjem jedinice na WL, te očitavanjem napona na liniji bita. Pretpostavimo da je u ćeliji zapisana logička jedinica. Tada će se naboj QS pohranjen na kapacitetu CS nakon otvaranja tranzistora podijeliti na kondenzatore CS i CB (CB je kapacitet same linije bita). Kako su oni spojeni paralelno, podjela će se obaviti tako da napon na oba kondenzatora bude jednak i iznosi UF, tj. vrijedit će sljedeće: • Prije otvaranja tranzistora: UB=0 V US>0 V, SSS UCQ ⋅= WL=1 BL CS CB FB UU → FS UU →
  • 43. 312 M. Čupić – Zbirka riješenih zadataka • Nakon otvaranja tranzistora: Napon paralele je UF. Prema zakonu o očuvanju naboja: FBFSS UCUCQ ⋅+⋅= Zamjenom QS slijedi: FBFSSS UCUCUC ⋅+⋅=⋅ pa je konačni napon na paraleli tada jednak: BS S SF CC C UU + = Uz zadane vrijednosti za UF se dobiva: mV CC C U CC C UU SS S S BS S SF 192 251 1 5 25 = + ⋅= ⋅+ = + = Da je u ćeliji bila zapisana logička nula, konačni napon bio bi jednak nuli, iz čega slijedi da se naponi na liniji bita dobiveni čitanjem nule ili jedinice razlikuju vrlo malo (manje od 1V) pa je za očitavanje tog napona potrebno osjetljivo pojačalo za čitanje. Razlog ovako malog napona jest omjer kapaciteta CS i CB, tj. CB>>CS. Osim toga, nakon čitanja sadržaja ćelije zapisani je podatak izgubljen (napon na CS je prilikom čitanja logičke jedinice pao na svega 192 mV) te je potrebno ponovno zapisati pročitani sadržaj (dakle, čitanje je destruktivno). 13.4. Zadatak Procijeniti vrijeme čuvanja podatka MOSFET DRAM 1T ćelije. Pretpostaviti da je IL=1 nA, CS=50 fF a ∆US=1V. Kada je tranzistor isključen, kapacitet CS se ipak izbija određenom strujom curenja IL, te će napon US polako padati. WL=0 BL CS US(t), QS(t) IL US(t) t Umax U1,min th
  • 44. Memorije. 313 Neka logičkoj razini 1 odgovara napon Umax. Da bi se sadržaj ćelije ispravno očitao, napon na CS smije pasti najniže do napona U1,min, čime je određena razlika napona min,1max UUUS −=∆ . Za struju IL vrijedi: dt dU C dt dQ I S S S L −=−= Pretpostavimo li da su naponi Umax i U1,min relativno blizu, početak eksponencijale možemo linearizirati, te možemo promatrati da je IL u tom području konstantno. Tada slijedi: h S h S S SL t UU C t UU C t U CI min,1maxmin,1max 0 − = − − −= ∆ ∆ −= odnosno ( )min,1max UU I C t L S h −⋅= Uz podatke iz zadatka slijedi: 501 1 50 =⋅=∆⋅= V nA fF U I C t S L S h µs. 13.5. Zadatak Prikazati CMOS SRAM ćeliju i objasniti načine rada. Idejno rješenje ćelije prikazano je na slici. b b WL TA TB Q Q Dva invertora povezana su u bistabilni element. Ćelija može raditi na tri načina rada: • Čuvanje podatka – TA i TB su isključeni (WL=0), te se podatak čuva u bistabilu. • Zapisivanje podatka – TA i TB su uključeni (WL=1); novi podatak dovodi se na linije b i b čime se mijenja stanje u bistabilu. Isključivanjem TA i TB ćelija čuva novoupisani podatak. • Čitanje podatka – TA i TB su uključeni (WL=1); linije b i b očitavaju se na pojačalu za čitanje.
  • 45. 314 M. Čupić – Zbirka riješenih zadataka Pojačalo za čitanje spojeno je na linije b i b i generira izlaz 0 ako je b < b , odnosno 1 ako je b > b . Svaki od invertora može se izvesti s 2 tranzistora (tj. tranzistorskim parom PMOS+NMOS), što daje osnovnu 6T ćeliju prikazanu na slici. b b WL +UDD T1 T2 T3 T4 T5 T6 Postoji i izvedba 4T ćelije, pri čemu su PMOS tranzistori zamijenjeni velikim otpornicima spojenim na UDD. 13.6. Zadatak Prikazati barem dva načina organizacije memorije čiji je kapacitet 256 bitova, a duljina logičke riječi 8 bitova. Procijeniti duljine linije bita i linije riječi. Pogledajmo prvo "prirodni" način organizacije memorije: memorijske ćelije koje čuvaju bitove iste logičke riječi smještene su jedna do druge, a pojedine riječi smještene su jedna ispod druge. WL[0] Mem. riječ 0 Mem. riječ 1 Mem. riječ 2 Mem. riječ N-2 Mem. riječ N-1 WL[1] WL[2] WL[3] WL[N-2] WL[N-1] Memorijska ćelija (1 bit) M bitova Dekoder A[0] A[1] A[K-1] Podaci
  • 46. Memorije. 315 Kako je u ovom slučaju kapacitet memorije (C=256 bitova) određen umnoškom broja logičkih riječi (N) i broja bitova u jednoj logičkoj riječi (M), broj logičkih riječi jednak je: 32 8 256 === M C N Za adresiranje nam tada treba K adresnih bitova, pri čemu je K određen izrazom: NK =2 pa slijedi: 532loglog 22 === NK Procijenimo još i duljine linije riječi i bita. Kao što je poznato, linija riječi (WL) se proteže do svih memorijskih ćelija koje čuvaju bitove iste memorijske riječi. Pretpostavimo li da su dimenzije memorijske ćelije kvadratne, tada će ukupna duljina biti zapravo proporcionalna broju ćelija do kojih linija dolazi, odnosno broju bitova. Linija bita se pak proteže do svih ćelija koje čuvaju isti bit u svakoj memorijskoj riječi. Tako kod ovakve organizacije memorije vrijedi da je duljina linije riječi ≈ 8, a duljina linije bita ≈ 32. Već iz ove niskokapacitetne memorije vidljiv je osnovni problem ovakve ogranizacije: duljina linije bita >> duljina linije riječi (a time je i parazitni kapacitet linije bita vrlo velik). Napomena: U knjizi [Peruško] ovakav način organizacije memorije poznat je kao 2D organizacija. Ukoliko se želi dobiti više informacija o ovom tipu (npr. Google), tada treba obratiti pažnju da je na većini stranih sveučilišta ovaj tip poznat kao 1D organizacija (jer su memorijske riječi organizirane uzduž jedne dimenzije; odozgo prema dolje). Drugi primjer organizacije memorije temelji se ne popravljanju odnosa duljina linija riječi i bita, i prikazan je na sljedećoj slici. Kod ovog pristupa jedna fizička memorijska riječ sadrži P logičkih riječi (svaka logička riječ je duljine M bitova). Cijela memorija pri tome sadrži K N 2= logičkih riječi. Dekoder retka na temelju viših bitova adrese odabire adresiranu fizičku riječ, čime na ulaze dekodera stupca dolazi P⋅M pohranjenih bitova, tj. sadržaj P logičkih riječi. Dekoder stupca na temelju nižih bitova adrese odabire adresiranu logičku riječ. Dekoder stupca logički se može promatrati kao M multipleksora tipa P/1 gdje se na 0. multipleksor dovode 0. bitovi od P logičkih riječi, na 1. multipleksor dovode 1. bitovi od P logičkih riječi, itd. Proračunajmo sada sve potrebne veličine.
  • 47. 316 M. Čupić – Zbirka riješenih zadataka Logička riječ 0 Logička riječ 1 Logička riječ P-1 Logička riječ P Logička riječ P+1 Logička riječ 2P-1 Logička riječ 2P Logička riječ 2P+1 Logička riječ 3P-1 Logička riječ 3P Logička riječ 3P+1 M bitova M bitova M bitova Fizička riječ 0 Fizička riječ 1 Fizička riječ 2 Memorijska ćelija (1 bit) Logička riječ (Q-2)P Logička riječ (Q-2)P+1 Logička riječ (Q-1)P-1 Logička riječ (Q-1)P Logička riječ (Q-1)P+1 Logička riječ QP-1 Fizička riječ Q-2 Fizička riječ Q-1 Dekoder stupca Dekoderretka A[L] A[L+1] A[K-1] L MPM 2⋅=⋅ A[0] A[L-1] LK Q − = 2 Podaci (M bitova) Memorija iz zadatka imat će N logičkih riječi, pri čemu je N određen s: 32 8 256 === M C N Za adresiranje N=32 logičke riječi trebamo ukupno: NK =2 adresnih bitova, pa slijedi: 532loglog 22 === NK Kako je kod ove organizacije ukupni broj logičkih riječi definiran umnoškom QPN ⋅= gdje su N, P i Q cijeli brojevi, jedno rješenje koje zadovoljava prethodni izraz jest P=2, Q=16. Za adresiranje logičke riječi unutar fizičke riječi koristi se L bitova. Slijedi: 12loglog2 22 ===⇒= PLPL Dakle, jedan adresni bit dovodi se na dekoder stupca, a preostalih K-L=5-1=4 adresna bita dovode se na dekoder retka. Memorija u tom slučaju ima Q = 24 = 16 fizičkih riječi, gdje svaka fizička riječ sadrži dvije logičke riječi. Proračunajmo još i duljine linija riječi i bita. Jedna fizička riječ sadrži P⋅M=2⋅8=16 bitova, pa je duljina linije riječi ≈ 16. Memorija ima Q=16 fizičkih riječi pa je duljina linije bita ≈ 16.
  • 48. Memorije. 317 Napomena: U knjizi [Peruško] ovakav način organizacije memorije poznat je kao 2 ½ D organizacija. Ukoliko se želi dobiti više informacija o ovom tipu (npr. Google), tada treba obratiti pažnju da je na većini stranih sveučilišta ovaj tip poznat kao 2D organizacija (jer su logičke riječi organizirane u 2D matricu, a ne linearno). Za vježbu. Nacrtajte strukture memorija uz proračunate parametre. Drugi dio zadatka ima više mogućih rješenja (tj. jednadžba N=P⋅Q ima više rješenja u skupu cijelih brojeva). Pronađite sva rješenja. Proračunajte duljine linija riječi i bita za te slučajeve. 13.7. Pismeni ispit, 09. 02. 2004, 9. zadatak Zadana je uređena n-torka P=(8,1,5,2,3,3,12,14,7,2,0,1,6,6,2,4). Funkcija F(i) vraća i-ti element od P (npr. F(0)=8). Projektirati sklop koji ostvaruje ovu funkciju. Na raspolaganju su ispisna memorija 8×8 te 4 multipleksora 2×1. Prikazati sadržaj memorije po lokacijama, u heksadekadskom obliku. Memorija koju imamo na raspolaganju pohranjuje riječi širine 8 bita, a za pohranu svakog broja koji trebamo vratiti nužna su samo 4 bita. Zbog toga ćemo na svaku memorijsku lokaciju pohranjivati po dva broja. Sadržaj memorije prikazan je u nastavku: lokacija: Sadržaj memorije (hex) 0 1 8 1 2 5 2 3 3 3 E C 4 2 7 5 1 0 6 6 6 7 4 2 Sklop je prikazan na slici:
  • 49. 318 M. Čupić – Zbirka riješenih zadataka RAM 8 x 8 D7 D6 D5 D4 D3 D2 D1 D0 0101 0101 A2 A1 A0 I3 I2 I1 I0 O3 O2 O1 O0 13.8. Zadatak Na raspolaganju je potreban broj memorijskih modula prikazanih na slici. Njihovom uporabom projektirati memoriju 512×3. Kako memorijski modul ima 8 adresnih linija, očito je da može adresirati 256 memorijskih lokacija, svaka širine jednog bita. Budući da trebamo 512 memorijskih lokacija, morat ćemo iskoristiti 512/256=2 memorijska modula, kako bismo dobili memoriju koja može adresirati 512 memorijskih lokacija. Budući da memorijske riječi moraju biti široke 3 bita, trebat ćemo još 3/1=3 memorijska modula u paraleli. Ideja rješenja prikazana je na slici desno. Svako polje predstavlja jedan memorijski modul. Analizom slike može se uočiti kako je razlika između gornjih i donjih modula u najvišem bitu: A8. I upravo ćemo taj bit koristiti za selekciju onog rezultata koji će se pojaviti na izlazu sklopa. Shema spajanja prikazana je na slici: WR/ 000 0FF 100 1FF 1. bit 000 0FF 100 1FF 2. bit 000 0FF 100 1FF 3. bit
  • 50. Memorije. 319 WR / WR / WR / WR / WR / WR /WR / Podatkovni izlazi gornjih i donjih memorijskih modula spojeni su preko ILI sklopa: goreoutdoljeoutgoreoutdoljeout DDDD ,,,, +=⋅ Naime, ti su izlazi izvedeni s otvorenim kolektorom, a njihovim kratkim spajanjem i pritezanjem na napajanje ostvarili smo I logičku funkciju komplemenata izlaza. Kada to na kraju invertiramo, dobivamo ILI logičku operaciju. Kada je A8 jednak 0, donji moduli su onemogućeni (CE=0), a gornji su omogućeni. Zbog toga na izlaz prolaze podaci pohranjeni u gornjim modulima. Kada je A8 jednak 1, gornji moduli su onemogućeni (CE=0), a donji su omogućeni. Zbog toga na izlaz prolaze podaci pohranjeni u donjim modulima. ZADACI ZA VJEŽBU 1. Objasnite organizacije memorijskih čipova kod statičkih i dinamičkih poluvodičkih memorija. Navedite i objasnite tipične predstavnike istih. 2. Na raspolaganju je potreban broj modula ispisne memorije kapaciteta 16 4-bitnih riječi. Nacrtajte izvedbu memorije za pohranu 64 okteta (bajtova). Na raspolaganju je još i potreban broj multipleksora 2/1. 3. Kod jednotranzistorske MOSFET DRAM ćelije poznato je da CS iznosi 100 fF, kapacitet linije bita CB = 25⋅CS a logičkoj jedinici odgovara napon od 5V. Izračunati napon na liniji BL prilikom čitanja pohranjene logičke jedinice. 4. Za jednotranzistorsku MOSFET DRAM ćeliju procijenite vrijeme čuvanja podatka. Pretpostaviti da je IL=1 nA, CS=50 fF a ∆US=1V. 5. Prikazati permanentnu memoriju tipa 4×8 izvedenu diodnim poljem, u koju je upisan tekst "ABBA" (odnosno ASCII kodovi). 6. Prikazati permanentnu memoriju tipa 4×8 izvedenu MOSFET-om, u koju je upisan tekst "ABBA" (odnosno ASCII kodovi).