-
DIGITALNE STRUKTUREZapiski predavanj
Branko Šter, Ljubo Pipan
1 Izbiralniki
Izbiralnik (selektor; multipleksor) je kombinacijsko MSI1 vezje,
ki ima nadresnih oz. naslovnih vhodov an−1, .., a0; 2n podatkovnih
vhodov d0, .., d2n−1,pogosto pa tudi vhod “omogoči” oz. “Enable”.
Izhod y dobi logično vred-nost z adreso izbranega vhoda. Slika
prikazuje n-adresni (2n/1) ter 2-adresniizbiralnik (4/1) s
pripadajočo pravilnostno tabelo:
E an−1 ... a1 a0 y0 X ... X X 0 (ali Z)1 0 ... 0 0 d01 0 ... 0 1
d11 ... ... ...1 1 ... 1 1 d2n−1
E a1 a0 y0 X X 01 0 0 d01 0 1 d11 1 0 d21 1 1 d3
1MSI vezja so vezja srednje stopnje integracije: izbiralniki,
dekodirniki, seštevalniki,registri, števniki itd.
1
-
DIGITALNE STRUKTURE 2
Izhod izbiralnika lahko zapǐsemo v obliki y = E&(V 2n−1
i=0 midi), če je mi i-ti minterm nad spremenljivkami an−1, ...,
a0, tj. m0 = a′n−1...a
′1a′0, m1 =
a′n−1...a′1a0, itd.
Npr. n=2:
y = E(∑3
i=0 midi) = E(a′1a′0d0 ∨ a′1a0d1 ∨ a1a′0d2 ∨ a1a0d3)
Na sliki je realizacija z vrati ter dejanska realizacija na
primeru 74HC253(zelo podobno):
Namesto PDNO (IN-ALI) ima PSNO (NAND-NAND).
-
DIGITALNE STRUKTURE 3
Realizacija logičnih funkcij z izbiralniki
Teoretično gre za razčlenjevanje funkcij (Shannonov teorem,
glej Preklopnavezja). Npr., razčlenjevanje po dveh spremenljivkah
izgleda takole
f(.., xi, .., xj, ..) = x′ix′jf(.., 0, .., 0, ..) ∨ x′ixjf(..,
0, .., 1, ..) ∨
xix′jf(.., 1, .., 0, ..) ∨ xixjf(.., 1, .., 1, ..),
izrazi f(...) pa so ravno podatkovni vhodi izbiralnika 4/1.
Realizacija logične funkcije n spremenljivk z r-adresnim
izbiralnikom:
n adresni vhodi podatkovni vhodi
r r spremenljivk 0, 1 (t.i. trivialna realizacija)r + 1 r
spremenljivk funkcije preostale spremenljivke:
0, xj, x̄j, 1r + 2 r spremenljivk funkcije preostalih dveh
spremenljivk:
0, xi, x̄i, xj, x̄j, xixj, ..., 1...
Primer 1.
Realiziraj funkcijo n = 4 spremenljivk
f(x1, x2, x3, x4) = V (0, 3, 5, 7, 10, 14, 15)
z izbiralniki različnih
velikosti.—————————————————————————–
a) n-adresni izbiralnik (r = n)V našem primeru imamo torej 4
adresne spremenljivke. Realizacija je triv-ialna; na podatkovnih
vhodih izbiralnika je kar pravilnostna tabela funkcije:
-
DIGITALNE STRUKTURE 4
b) (n− 1)-adresni izbiralnik (r = n− 1)Spremenljivka, ki je ni
na adresnih vhodih, je na podatkovnih vhodih: vsemožne funkcije
ene spremenljivke: 0, x, x̄, 1.
Katere spremenljivke so na adresnih vhodih? Imamo
(n
r
)=
(n
n− 1
)=
n!
(n− 1)!(n− (n− 1))! =n!
(n− 1)! = n
možnosti.
V našem primeru so 3 adresne spremenljivke in
(4
3
)=
4!
3!(4− 3)! =4!
3!1!= 4
možnosti.
Poglejmo dve: x1, x2, x3 ter x1, x2, x4 na adresnih vhodih.
Slika prikazuje tidve realizaciji ter razlago s pomočjo
Veitchevega diagrama:
-
DIGITALNE STRUKTURE 5
Preostala spremenljivka nastopa na podatkovnih vhodih, skupaj s
konstan-tama 0 in 1. Pri preostalih dveh možnostih sta še x2 oz.
x1 na podatkovnihvhodih, ostale spremenljivke pa seveda na
adresah.
c) (n− 2)-adresni izbiralnik (r = n− 2)Imamo torej dve adresni
spremenljivki, preostali spremenljivki pa nastopatana podatkovnih
vhodih: vseh možnih funkcij dveh spremenljivk (k = 2) je
22k
= 222
= 16.
V tem primeru imamo
(4
2
)=
4!
2!(4− 2)! =4!
2!2!= 6
možnosti. Slika prikazuje varianto z x2 in x3 kot adresama:
IN, ALI in XOR pa lahko realiziramo tudi z izbiralniki: lahko z
1-adresnimi,lahko pa tudi z 2-adresnimi (trivialna
realizacija).
Če si izberemo 1-adresne:
-
DIGITALNE STRUKTURE 6
Na zadnjem podatkovnem vhodu je x′1x4 ∨ x1 = x1 ∨ x4, v kar se
lahkoprepričamo z minimizacijo levega izraza.
Če bi pregledali še ostalih pet možnosti, se izkaže, da te
funkcije ni mogočerealizirati z enim samim izbiralnikom 4/1.
Preverite.
S primerno izbiro adresnih spremenljivk pa običajno lahko
vplivamo na številoporabljenih elementov.
Primer 2.
Realiziraj funkcijo
f 4 = V (0, 1, 3, 7, 8, 12, 15), V x(10, 14)
s čimmanj izbiralniki 4/1. Z x so označene redundance.
Poglejmo prvo od 6 možnosti, tj. x1 in x2 kot adresi (a1,
a0):
-
DIGITALNE STRUKTURE 7
Vidimo, da potrebujemo še dodatna logična vrata, ali pa
dodatne izbiralnike:
Ker so v nalogi na voljo samo izbiralniki 4/1, je potrebno
izbiralnike 2/1nadomestiti s čimmanj 4/1.
Druga možnost je uporaba x1 in x3 kot adresnih spremenljivk. V
tem primerupa zadostuje že en sam izbiralnik 4/1:
-
DIGITALNE STRUKTURE 8
Redundance pri x1x3 = 11 si izberemo tako, kot nam ustreza: x10x
→ 1100.
Ravno tako porabimo le en izbiralnik pri kombinaciji z x2 in x4
na adresah.Poskusite. (Rešitev: na podatkovnih vhodih so x′3,
x
′1, x1, x3.)
Realizacija večjih izbiralnikov z manǰsimi
Če potrebujemo večji izbiralnik, ga lahko vedno sestavimo iz
manǰsih. Nasliki je realizacija izbiralnika 16/1 z izbiralniki
4/1:
-
DIGITALNE STRUKTURE 9
Seveda je več možnosti, katere od manǰsih izbiralnikov
uporabiti. Tako lahkosestavimo izbiralnik 8/1 iz
a) 4/1 modulov oz. izbiralnikovb) 2/1 modulovc) 4/1 na vǐsjem
in 2/1 na nižjem nivojud) 2/1 na vǐsjem in 4/1 na nižjem
nivoju
8/1 v diskretni (MSI) izvedbi obstaja, npr. 32/1 pa ne (imel bi
32+1+5+1+2=41pinov).
Izbiralnik v VHDL-u
VHDL in Verilog sta standardna jezika za opis digitalnih vezij.
Takimjezikom rečemo tudi jeziki HDL (Hardware Description
Language). Pri tem
-
DIGITALNE STRUKTURE 10
predmetu bomo spoznali osnovne konstrukte VHDL-a, ki nam
omogočajobazično uporabo, ne bomo pa se poglabljali v jezik.
Eden osnovnih tipov jezika VHDL je bit, ki ima logični
vrednosti ’0’ in’1’. Namesto bita pa se običajno uporablja tip std
logic, ki predstavljarazširjavo; vključuje namreč še nekaj
drugih možnih vrednosti, kot so neznanavrednost (’X’), stanje
visoke impedance (’Z’), redundanca (’-’) ter še nekajdrugih.
Vsak VHDL program je sestavljen iz entitete in arhitekture.
Entiteta opisujezunanje signale, tj. vhode in izhode vezja,
arhitektura pa opisuje delovanjevezja.
Prvi dve vrstici praktično vsakega VHDL programa sta
library ieee;
use ieee.std_logic_1164.all;
Gre za navedbo standardne knjižnice.
Kot primer poglejmo, kako opǐsemo v VHDL-u izbiralnik 4/1 na
tri različnenačine. Entiteta se imenuje mux, navajamo pa tri
različne arhitekture.
-- Multipleksor 4/1
library ieee;
use ieee.std_logic_1164.all;
entity mux is
port( d: in std_logic_vector(0 to 3);
s: in std_logic_vector(1 downto 0);
y: out std_logic);
end entity mux;
architecture mux1 of mux is
begin
y
-
DIGITALNE STRUKTURE 11
’X’;
end architecture mux1;
architecture mux2 of mux is
begin
with s select y
-
DIGITALNE STRUKTURE 12
Tristanjski vmesnik
Tristanjski vmesnik (“3-state buffer”) ter tristanjski elementi
v splošnemimajo tri možna stanja: “0”, “1” ter stanje visoke
impedance Z:
OE A F0 X Z1 0 01 1 1
oz.OE F0 Z1 A
Tristanjski oz. TS-vmesnik se obnaša kot krmiljeno stikalo
(odprto/zaprto).
Možnosti so tudi, da je “Enable” aktivno nizek, da je izhod
negiran, ali oboje:
Izbiralnik lahko naredimo tudi na osnovi TS-vmesnikov:
V vsakem primeru je en TS-vmesnik v stanju visoke impedance,
zato sta sig-nala lahko vezana skupaj. Velja pa tp0Z , tp1Z <
tpZ0, tpZ1, če je tp zakasnitev(npr. tp0Z je zakasnitev prehoda iz
stanja “0” v stanje Z). V stanje Z gretorej hitreje kot obratno!
(Sicer sta “stikali” lahko hkrati sklenjeni.)
-
DIGITALNE STRUKTURE 13
Tudi vrata z OC izhodi (“open collector”) lahko vežemo skupaj,
vendarse dandanes vse manj uporabljajo; predvsem zaradi potreb po
dodatnemohmskem uporu.
Možna uporaba izbiralnikov je tudi izbira med več vodili, npr.
’157 (4x2/1)izbira med dvemi 4-bitnimi vodili (C = S ′A ∨ SB):
Tristanjski vmesnik v VHDL-u:
library ieee;
use ieee.std_logic_1164.all;
-
DIGITALNE STRUKTURE 14
entity tri_state is
port (a, enable: in std_logic;
z: out std_logic);
end entity tri_state;
architecture when_else of tri_state is
begin
z
-
DIGITALNE STRUKTUREZapiski predavanj
Branko Šter, Ljubo Pipan
2 Razdeljevalniki
Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna
funkciji izbi-ralnika. Tisti od 2n izhodov y0, .., y2n−1, ki je
izbran z binarno adreso an−1, .., a0,dobi vrednost vhoda d:
Dekoder (bolj pravilno dekodirnik) n/2n dekodira binarno kodo v
kodo “1-od-N”. Pri kodi “1-od-N” je v danem trenutku aktiven samo
en bit (samoen bit na “1”, ostali “0”; pri aktivno nizkih izhodih
je samo en bit na “0”,ostali “1”).
Običajno gre za en sam element, imenovan
demultipleksor/dekoder, ker stapo delovanju ekvivalentna, v kolikor
ima dekoder vhod “Enable”, ki lahkoprevzame funkcijo vhoda d.
1
-
DIGITALNE STRUKTURE 2
Slika prikazuje, kako dekoder (npr. 1/2) realiziramo z
logičnimi vrati:
Standardne realizacije dekoderjev z integriranimi vezji:- 7442,
dekoder 4/10, tj. BCD-desetǐsko,- 7447 in 7448, BCD-7segment
dekoder/“driver”,- 74138, dekoder 3/8,- 74139, 2 x dekoder 2/4,-
74154, dekoder 4/16.
V čipu 74139 sta dva dekoderja 2/4:
G’ B A y0 y1 y2 y31 x x 1 1 1 10 0 0 0 1 1 10 0 1 1 0 1 10 1 0 1
1 0 10 1 1 1 1 1 0
Zakaj so izhodi aktivno nizki? Razlog je v tehnologiji izvedbe.
Oglejmo sidejansko realizacijo1 dekoderja 74139.
1pri vseh logičnih družinah ni čisto enaka
-
DIGITALNE STRUKTURE 3
Če bi želeli na izhodih namesto NAND vrat IN-vrata, bi
potrebovali npr.v MOS tehnologiji po en dodaten invertor, kar pa bi
upočasnilo delovanje.Razlog je torej v hitrosti. Z dodatnimi
invertorji na vhodih pa dosežemomanǰso obremenitev (nižji
“fan-out”) vhodnih signalov.
Realizacija logičnih funkcij z razdeljevalniki
Z razdeljevalnikom je možno realizirati tudi poljubne logične
funkcije, vendarpotrebujemo še dodatne elemente.
Primer.
Realiziraj funkcijo f 3 = V (1, 2, 4, 7) = m1 ∨m2 ∨m4 ∨m7 z
dekoderjem indodatno logiko.
Realizacija je na Sliki a.
-
DIGITALNE STRUKTURE 4
Če ima dekoder aktivno nizke izhode, uporabimo namesto
operatorja ALIoperator NAND (Slika b). Spomnimo se de Morgan-ovega
teorema: (a∨b)′ =a′b′, torej a ∨ b = (a′b′)′, kar pa je NAND
negiranih spremenljivk. Zatom1 ∨m2 ∨m4 ∨m7 = (m′1m′2m′4m′7)′ (Slika
b).
Realizacija večjih dekodirnikov iz manǰsih
Na sliki a je prikazana realizacija dekodirnika 3/8 iz modulov
2/4.
Na vǐsjem nivoju potrebujemo le dekoder 1/2, zato je 2/4 samo
polovičnoizkorǐsčen. Če ne potrebujemo vhoda “Enable”, je na
vǐsjem nivoju dovoljvzeti negator. Za realizacijo dekodirnika 1/2
brez vhoda E potrebujemonamreč le en negator, glej tabelo:
a y0 y10 1 01 0 1
Poleg večjih dekodirnikov pa je možno realizirati tudi večji
izbiralnik z dekodirnikomin manǰsimi izbiralniki. Npr., izbiralnik
8/1 s pomočjo dekodirnika 2/4,
-
DIGITALNE STRUKTURE 5
katerega izhodi so vezani na vhode “Enable”štirih izbiralnikov
2/1:
Dekodirnik v VHDL-u
Vzemimo primer dekodirnika 2/4:
library ieee;
use ieee.std_logic_1164.all;
entity decoder is
port (a: in std_logic_vector(1 downto 0);
E: in std_logic;
y: out std_logic_vector(0 to 3));
end entity decoder;
architecture when_else of decoder is
signal y_notranji: std_logic_vector(0 to 3);
begin
y_notranji
-
DIGITALNE STRUKTURE 6
"0100" when a = "01" else
"0010" when a = "10" else
"0001" when a = "11" else
"XXXX";
y
-
DIGITALNE STRUKTUREZapiski predavanj
Branko Šter, Ljubo Pipan
3 Prekodirniki
Direktna možnost prekodiranja je preslikovalna (“look-up”)
tabela, ki jolahko realiziramo z bralnim pomnilnikom.
Običajno le 1 gradnik (kodirnik) (npr. BCD v 7seg, ASCII v kod
igličnihtiskalnikov)
V določenih primerih bi bil prekodirnik prevelik in ga je treba
sestaviti izmanǰsih, ki so navadno tudi bralni pomnilniki.
Npr. pri pretvorbi binarne kode v BCD (za 2 BCD mesti) bi
potrebovaliROM velikosti 100*8 (tj. slaba polovica bralnega
pomnilnika 256*8).
Toda pri pretvorbi 32 bitov v BCD imamo 232=4G ≈ 4 · 109
števil, s temtudi 10 BCD mest, tj. 40 bitov. Potrebovali bi ROM
velikosti kar 4G*40 !
Varianta je seveda tudi sekvenčni algoritem (npr. z
mikrokrmilnikom (“mi-crocontroller”)), ki pa je počasneǰsi, pa
še mikrokrmilnik rabimo.
Pretvorba med binarno in BCD kodo
Binarno v BCD:
Bin. št. lahko pǐsemo tudi takole:
B =n−1∑
i=0
bi2i = ((bn−1 × 2 + bn−2)× 2 + bn−3)× 2... + b0.
1
-
DIGITALNE STRUKTURE 2
Množenje z dva pomeni pomik v levo za 1 mesto.
bin → BCD00000 → 00000
. .
. .
. .01001 → 0 100101010 → 1 000001011 → 1 000101100 → 1 001001101
→ 1 001101110 → 1 010001111 → 1 010110000 → 1 011010001 → 1
011110010 → 1 100010011 → 1 100110100∗ → 10 0000
* to pa je že pri 10, zato prekodiranja za 20 ne rabimo
Če gledamo samo gornje 4 bite (ker je zadnji enak), lahko
zapǐsemo prekodirnotabelo:
2i+4 2i+3 2i+2 2i+1 2i
0 0 0 0 X 0 0 0 0 X0 0 0 1 X 0 0 0 1 X0 0 1 0 X 0 0 1 0 X0 0 1 1
X 0 0 1 1 X0 1 0 0 X 0 1 0 0 X0 1 0 1 X 1 0 0 0 X0 1 1 0 X 1 0 0 1
X0 1 1 1 X 1 0 1 0 X1 0 0 0 X 1 0 1 1 X1 0 0 1 X 1 1 0 0 X
Npr., (0)101X je treba prekodirati v 1 000X, kar pomeni (0)1010
v 1 0000ter (0)1011 v 1 0001.
-
DIGITALNE STRUKTURE 3
4-bitni prekodirnik prǐsteje 3 k številom, ki so večja ali
enaka 5.
če ≥5, +3
Vzemimo npr. 8-bitno število 10001100, kar je 14010.
stotice desetice enice(0) 1 0 0 0 1 1 0 0
(0) 1 0 0 0 1 1 0 0(0) 1 0 0 0 1 1 0 0
(0)* 1* 0* 0* 0 1 1 0 01 0 0 0 1 1 0 0
+ 31 0 1 1 1 1 0 0
1 0 1 1 1 1 0 0+ 3
1 1 0 1 0 1 0 01 1 0 1 0 1 0 0
+ 31 1 1 0 0 0 0 0
1 1 1 0 0 0 0 0+ 3
1 0 1 0 0 0 0 0 01 0 1 0 0 0 0 0 0
1 4 0
* tu je že prekodirnik
Vezje, ki realizira pretvorbo:
-
DIGITALNE STRUKTURE 4
To je primer iterativnega kombinacijskega vezja. Le-to izvaja
iterativni algo-ritem, vendar ne v času, kakor sekvenčna vezja,
temveč v prostoru (pri vezjihza aritmetiko je ta način
pogost).
Prekodirnike 4/4 lahko združimo v večje
Npr. 5/5
-
DIGITALNE STRUKTURE 5
Kot vidimo na sliki, lahko shemo razrezujemo tudi na druge
načine.
Komercialne izvedbe: 5/5
Temelj je bil ROM 256*8
Lahko bi imeli 8/8, vendar navadno prekodiramo binarna števila
n < 12.
BCD v binarno:
Ta pretvorba je ravno obratna.
4-bitni prekodirnik odšteje 3 od števil, ki so večja ali
enaka 8.
če ≥8, -3
Večje (ali enako) od binarne 8 v resnici pomeni večje (ali
enako) od 10 vBCD, tj. 1 000X.
1 0000 → 10101 0001 → 10111 0010 → 11001 0011 → 11011 0100 →
11101 0101 → 1111————————–1 0110 → 100001 0111 → 100011 1000 →
100101 1001 → 1001110 0000 → 10100
Npr.:
-
DIGITALNE STRUKTURE 6
Lahko opazimo, da potrebuje pretvorba BCD v bin navadno kak
prekodirnikmanj kot obratna pretvorba (na prvem nivoju nam
zadostuje že eden).
Pretvorba med binarno in Gray-evo kodo
Gray-eva koda ima koristno lastnost, da se dve sosedni števili
vedno razliku-jeta le v enem bitu (Hamming-ova razdalja je 1). To
je ugodno npr. prikodiranju odmikov oz. zasukov (pri binarnem
kodiranju so problem prehodi,pri katerih naj bi se spremenilo več
bitov hkrati, npr. med 3 in 4, pa se zaradirealnih senzorjev ne);
ali pa npr. pri genetskih algoritmih, če želimo, da mu-tacija
bita le malo spremeni številsko vrednost parametra, zakodiranega
vkromosom.
Pretvornik iz binarne v Gray-evo kodo uporablja operatorje
ekskluzivni ALI(XOR), ki ga bomo označevali z ⊕ (2-vhodna XOR
vrata: 7486).
Pretvorba n-bitne binarne kode v Gray-evo:
g0 = b0 ⊕ b1g1 = b1 ⊕ b2g2 = b2 ⊕ b3...
gn−2 = bn−2 ⊕ bn−1gn−1 = bn−1 ⊕ 0 = bn−1
-
DIGITALNE STRUKTURE 7
Pretvornik iz binarne v Gray-evo kodo za npr. n = 4:
V Tabeli so Gray-evi ekvivalenti 4-bitnih binarnih števil:
b3 b2 b1 b0 g3 g2 g1 g00 0 0 0 0 0 0 0 00 0 0 1 0 0 0 1 10 0 1 0
0 0 1 1 20 0 1 1 0 0 1 0 30 1 0 0 0 1 1 0 40 1 0 1 0 1 1 1 50 1 1 0
0 1 0 1 60 1 1 1 0 1 0 0 71 0 0 0 1 1 0 0 81 0 0 1 1 1 0 1 91 0 1 0
1 1 1 1 101 0 1 1 1 1 1 0 111 1 0 0 1 0 1 0 121 1 0 1 1 0 1 1 131 1
1 0 1 0 0 1 141 1 1 1 1 0 0 0 15
Pretvorba iz Gray-eve v binarno kodo:
bn−1 = gn−1bn−2 = gn−2 ⊕ bn−1 = gn−2 ⊕ gn−1bn−3 = gn−3 ⊕ bn−2 =
gn−3 ⊕ gn−2 ⊕ gn−1
...
b1 = g1 ⊕ b2 = g1 ⊕ g2 ⊕ ...⊕ gn−1b0 = g0 ⊕ b1 = g0 ⊕ g1 ⊕ g2 ⊕
...⊕ gn−1
-
DIGITALNE STRUKTURE 8
Ker so v diskretni izvedbi standardno na voljo le 2-vhodna XOR
vrata, jetreba večvhodni XOR operator sestaviti iz le-teh. Za
operacijo XOR veljazakon o združevanju:
(x1 ⊕ x2)⊕ x3 = x1 ⊕ (x2 ⊕ x3) = x1 ⊕ x2 ⊕ x3 .
Zato lahko večvhodni XOR operator sestavimo bodisi
iterativno
x1 ⊕ x2 ⊕ x3 ⊕ x4 = ((x1 ⊕ x2)⊕ x3)⊕ x4 ,
kot v primeru pretvorbe Gray→binarno, ali pa z drevesno
strukturo
x1 ⊕ x2 ⊕ x3 ⊕ x4 = (x1 ⊕ x2)⊕ (x3 ⊕ x4) ,
ki ima v splošnem manj nivojev in torej manǰso zakasnitev. Na
sliki starazlični izvedbi 4-vhodne XOR operacije: iterativna (na
sredini) in drevo (nadesni):
Seveda lahko tudi prekodirnik Gray-bin. realiziramo z ROM
(naslov pred-stavlja Gray-evo kodo, vsebina lokacije pa ustrezno
binarno).
Kodirnik
Kodirnik (“encoder”) ima nasprotno funkcijo kot dekodirnik.
Npr., kodirnik 4/2 kodira kodo “1-od-N” v binarno:
b0 b1 b2 b3 y0 y11 0 0 0 0 00 1 0 0 0 10 0 1 0 1 00 0 0 1 1
1
-
DIGITALNE STRUKTURE 9
y0 = b2 ∨ b3y1 = b1 ∨ b3To bi delovalo, če bi bil aktiven vedno
samo en vhod. V nasprotnem primeruse lahko zgodi, da npr. pri
b=0110 dobimo y=11, česar ne želimo. Zato imajokodirniki navadno
mehanizem, imenovan prioriteta.
h3 = b3 (najvǐsja prioriteta)h2 = b2b
′3
h1 = b1b′2b′3
h0 = b0b′1b′2b′3
y0 = h2 ∨ h3 = b2b′3 ∨ b3y1 = h1 ∨ h3 = b1b′2b′3 ∨ b3V
preǰsnjem primeru je h2 aktiven, h1 pa ne, ker ima nižjo
prioriteto.
Dva standardna kodirnika sta:
• 74147, kodirnik 10-4 (“1-od-10” v BCD) s prioriteto,• 74148,
kodirnik 8-3 (glej naslednjo Tabelo).
Kodirnik 74148:
Vhodi IzhodiEI 0 1 2 3 4 5 6 7 A2 A1 A0 GS EO1 X X X X X X X X 1
1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 00 X X X X X X X 0 0 0 0 0 10 X X
X X X X 0 1 0 0 1 0 10 X X X X X 0 1 1 0 1 0 0 10 X X X X 0 1 1 1 0
1 1 0 10 X X X 0 1 1 1 1 1 0 0 0 10 X X 0 1 1 1 1 1 1 0 1 0 10 X 0
1 1 1 1 1 1 1 1 0 0 10 0 1 1 1 1 1 1 1 1 1 1 0 1
-
DIGITALNE STRUKTURE 10
Generator paritete
XOR operacijo večih spremenljivk se uporablja tudi kot
generator paritete.Npr., 74280 je 9-bitni MSI generator paritete.
Realizira XOR in XNOR(negacija XOR; le pri dveh spremenljivkah je
to tudi ekvivalenca) 9 spre-menljivk. Funkcija XOR n spremenljivk
vrne logično 1, če je št. enic liho,sicer vrne logično 0.
f = x1 ⊕ x2 ⊕ ...⊕ xnKer imajo vsi vhodi enako vlogo, je to
simetrična funkcija f(1,3,5,...)(x1, x2, ..., xn).Funkcija XOR pa
je tudi najneugodneǰsa funkcija n spremenljivk v
smisluminimizacije (se ne da minimizirati).
Pri 74280 so interno realizirane 3 XOR funkcije po treh vhodnih
spremenljivkdvonivojsko (DNO: PDNO seveda, ker se XOR ne da
minimizirati), ter naisti način še XOR teh treh funkcij.
Pomikalnik (shifter)
Pomikalnik je kombinacijsko vezje za pomikanje podatkov. S
krmilnimavhodoma S1 in S0 določimo tip pomika. Vhod E določa
”omogoči izhod”.
S1 S0 funkcija0 0 ni pomika0 1 pomik za 1 mesto1 0 pomik za 2
mesti1 1 pomik za 3 mesta
-
DIGITALNE STRUKTURE 11
Več pomikalnikov lahko vežemo v kaskado. Pomikanje vsebine
pomeni varitmetiki množenje oz. deljenje z večkratniki števila
2.
Komparatorji
Komparator (primerjalnik) je kombinacijsko vezje, ki primerja
dva večbitnavektorja A in B in indicira enakost, pogosto pa tudi
urejenost A > B, oz.A < B. To vezje bi lahko šteli med vezja
za aritmetiko. Najmanǰsi, enobitnikomparator je kar operator
ekvivalence oz. XNOR. Že po imenu sodeč namle-ta pove, ali sta
vhodna bita enaka. Prav tako lahko uporabimo XORoperator, ki pove,
ali sta bita različna, kar je dobro znano že iz
Preklopnihvezij.
Oglejmo si dve možnosti. Prva je vzporedni oz. paralelni
komparator, kiprimerja istoležne bite z enobitnimi komparatorji in
vse izhode združi z us-treznimi vrati:
V primeru enakosti vektorjev gre izhod
f = (a0 ⊕ b0) ∨ (a1 ⊕ b1)... ∨ (an ⊕ bn)
v logično ničlo.
Iterativni komparator:
-
DIGITALNE STRUKTURE 12
deluje na enakem principu, le da se informacija o enakosti širi
serijsko in jeseveda počasneǰsi. Seveda bi lahko tudi tukaj imeli
XOR in ALI operatorje,kakor tudi v preǰsnjem primeru XNOR in IN
operatorje.
7485 je 4-bitni MSI komparator z vhodi a0..a3, b0..b3, IAB,
terizhodi OAB, ki so
OA B) ∨ (A = B)IA>B
Pri tem je
(A > B) = A3.B′3 ∨
(A3 ⊕B3)′A2.B′2 ∨(A3 ⊕B3)′(A2 ⊕B2)′A1.B′1 ∨(A3 ⊕B3)′(A2 ⊕B2)′(A1
⊕B1)′A0.B′0
-
DIGITALNE STRUKTUREZapiski predavanj
Branko Šter, Ljubo Pipan
4 Seštevalniki
Tukaj začnemo z obravnavo kombinacijskih vezij za aritmetiko.
Le-ta pravtako spadajo med kombinacijska vezja, vendar jih zaradi
specifičnosti obrav-navamo posebej.
Zapis števil
Za osvežitev znanja na kratko ponovimo predstavitve
predznačenih binarnihštevil. Izmed različnih predstavitev
omenimo:
- predznak-veličinsko- enǐski komplement,- dvojǐski
komplement.
Vzemimo zaradi enostavnosti kar 3-bitna predznačena števila
(n=3). VTabeli so vse tri predstavitve:
b2 b1 b0 SM 1’K 2’K0 0 0 +0 +0 +00 0 1 1 1 10 1 0 2 2 20 1 1 3 3
31 0 0 -0 -3 -41 0 1 -1 -2 -31 1 0 -2 -1 -21 1 1 -3 -0 -1
1
-
DIGITALNE STRUKTURE 2
Kljub tem, da SM izgleda najbolj naravno, je zelo neroden za
seštevanje/odštevanje.V računalnǐskih sistemih se najpogosteje
uporablja dvojǐski komplement (2’K),ki je za
seštevanje/odštevanje zelo primeren.
Dvojǐski komplement
Z n-bitnim zapisom v dvojǐskem komplementu (2’K) lahko
predstavimo številav območju oz. rangu od -2n−1 do 2n−1-1. Pri
n=3 torej od -4 do 3; pri n=16pa od -32768 do 32767. Če številu
32767 prǐstejemo 1, dobimo -32768, karje seveda neveljaven
rezultat, ker je prǐslo do preliva (“overflow”). Številalahko
zapǐsemo v krogu. Na Sliki je krog za n=3:
Negativna števila dobimo tako, da enǐskemu komplementu
pozitivnega številaprǐstejemo ena. Npr. število -2 pri 4-bitnih
predznačenih številih v dvojǐskemkomplementu dobimo takole:
0 0 1 0 (2)1 1 0 1 (-2 v 1’K)
+ 11 1 1 0 (-2 v 2’K)
Na popolnoma enak način pretvarjamo tudi v drugo smer, npr. 2
iz -2.
Preliv pri dvojǐskem komplementu:
Do preliva (“overflow”) pride, če vsota preseže rang. Potreben
pogoj je enakpredznak obeh števil, zadosten pa, da ima “vsota”
drugačen predznak kotštevili. Če označimo z an−1, bn−1, cn−1 in
sn−1 oba operanda, vhodni prenos
-
DIGITALNE STRUKTURE 3
in vsoto zadnje stopnje ter z cn izhodni prenos zadnje stopnje,
je signal OF,ki označuje preliv, enak
OF = an−1 bn−1 sn−1 ∨ an−1 bn−1 sn−1Glede na vhodni prenos cn−1
sta dve možnosti
OF (pri cn−1 = 1) = 0 ∨ an−1 bn−1 sn−1 = 0 ∨ cn = cn ,
inOF (pri cn−1 = 0) = an−1 bn−1 sn−1 ∨ 0 = cn ∨ 0 = cn .
Zato jeOF = cn−1 cn ∨ cn−1 cn = cn ⊕ cn−1 .
Polovični seštevalnik
Osnovni enobitni seštevalnik je polovični seštevalnik (“Half
Adder” - HA).Sešteje 2 (enakovredna) bita ter vrne vsoto (S,
“sum”) in prenos (C, “carry”):
A B C S0 0 0 00 1 0 11 0 0 11 1 1 0
C in S zapǐsemo v takem vrstnem redu, ker je C za eno mesto
“težji”; zatonam CS pomeni kar binarno vsoto vhodov A in B.
Funkciji C in S sta
C = AB , S = A⊕B
Simbol polovičnega seštevalnika in realizacija z vrati:
-
DIGITALNE STRUKTURE 4
Polni seštevalnik
Enobitni seštevalnik, ki ga lahko uporabimo pri tvorbi
večbitnega seštevalnika,je polni seštevalnik (“Full Adder” -
FA). Ima tri enakovredne (simetrične)vhode, od katerih lahko enega
uporabimo za vhodni prenos Cin iz preǰsnjestopnje:
A B Cin Cout S0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1
1 01 1 0 1 01 1 1 1 1
Ravno tako nam zapis CoutS da kar binarno vsoto vseh treh
vhodov. S inCout kot funkciji vhodov sta
S = A⊕B ⊕ Cin , Cout = AB ∨ ACin ∨BCin
Polni seštevalnik v standardni IC izvedbi je 7480. Ima tudi
vhode Ac in Bc zakomplement, kar lahko uporabimo pri odštevanju:
A−B = A + B + 1(Cin).
Oglejmo si še 1-bitni polni seštevalnik v jeziku VHDL:
library ieee;
use ieee.std_logic_1164.all;
entity FA is
port ( a, b, cin: in std_logic;
cout, s: out std_logic);
-
DIGITALNE STRUKTURE 5
end;
architecture FA1 of FA is
begin
s
-
DIGITALNE STRUKTURE 6
Paralelni seštevalnik lahko realiziramo dvonivojsko (5 funkcij
(s3..s0,cout) 9-ihspremenljivk (a3..a0,b3..b0,cin), kar je hitro,
pa tudi potratno z logiko).
Če večbitni seštevalnik razširimo še z dodatnimi
funkcijami, dobimo arit-metično-logično enoto.
Aritmetično-logična enota
Aritmetično-logična enota (ALE, “ALU”) je večnamensko
kombinacijsko vezje,ki je zmožno izvajanja različnih
aritmetičnih in logičnih operacij.
ALE 74181
SLIKA ALE’181 (vhodi: A, B, cvh, S, M; izhodi: F, cizh, P, G,
EQU)
74181 je najbolj standardna izvedba aritmetično-logične enote.
Vhod Mdoloča tip operacije: M=0 za aritmetične in M=1 za logične
operacije. Zdodatnimi štirimi vhodi S3,..,S0 pa določimo
konkretno operacijo. Tako jena voljo okoli 40 različnih operacij
(ki pa niso enako uporabne). Tabelaprikazuje operacije, ki jih
lahko izvaja ’181:
Cn=0 Cn=1S3S2S1S0 M=1 (log. f.) M=0 (aritm. oper.)0 0 0 0 F = A’
F = A minus 1 F = A0 0 0 1 F = (AB)’ F = AB minus 1 F = AB0 0 1 0 F
= A’∨B F = AB’ minus 1 F = AB’0 0 1 1 F = 1 F = minus 1 (2’K) F =
00 1 0 0 F=(A∨B)’ F=A plus (A∨B’) F = A plus (A ∨ B’) plus 10 1 0 1
F = B’ F=AB plus (A∨B’) F = AB plus (A ∨ B’) plus 10 1 1 0 F=A≡B
F=A minus B minus 1 F = A minus B0 1 1 1 F=A∨B’ F = A ∨ B’ F = (A ∨
B’) plus 11 0 0 0 F = A’B F=A plus (A∨B) F = A plus (A ∨ B) plus 11
0 0 1 F=A⊕B F = A plus B F = A plus B plus 11 0 1 0 F = B F=AB’
plus (A∨B) F = AB plus (A ∨ B) plus 11 0 1 1 F = A∨B F = A ∨ B F =
(A ∨ B) plus 11 1 0 0 F = 0 F = A plus A F = A plus A plus 11 1 0 1
F = AB’ F = AB plus A F = AB plus A plus 11 1 1 0 F = AB F = AB’
plus A F = AB’ plus A plus1 1 1 1 F = A F = A F = A plus 1
Ker imamo 4 vhode S, lahko realiziramo 16 logičnih funkcij, kar
so tudi vse
-
DIGITALNE STRUKTURE 7
funkcije dveh spremenljivk:
22n → 222 = 16 .
Na vseh 4 bitih je ista funkcija
Fi = f(Ai, Bi) i = 0, .., 3 .
Izvedbi 74381 in 74382 pa imata samo 8 najbolj uporabnih
funkcij.
74181 ima negirane vhode in izhode, kot kaže slika:
Uporabi dodatnih negatorjev na vhodih in izhodih se lahko
izognemo nasledeč način:
1. pri logičnih funkcijah uporabimo dualno funkcijo. Dualna
funkcija (glejPreklopna vezja) k funkciji f(x1, x2, ..., xn) je fd
= f(x1, x2, ..., xn).Npr., dualna funkcija konjunkciji je
disjunkcija, in obratno. Podobnovelja za XOR in ekvivalenco.
Pokaži.
2. pri aritmetičnih funkcijah negiramo Cn in Cn+4. Npr., pri
seštevanjuvzamemo S=1001, toda Cn=1, namesto 0.
Na ta način lahko odmislimo, da so vhodi in izhodi
negirani.
Primer.
Seštevanje 3 in 2 z ALE 74181. Na levi je običajna operacija,
na desni paoperacija, ki jo izvede ALE. Sešteje obe negirani
števili (enǐski komplement),prǐsteje Cn = 1, izhod pa je spet
negiran, tako da dobimo pravi rezultat.
0011 3+ 0010 +2
0101 5
1100+ 1101+ 1 Cn1 1010
(Cn+4) 0 0101 = 5
-
DIGITALNE STRUKTURE 8
Vidimo, da omenjeni princip deluje.
Seštevanje in odštevanje z ALE
Seštevanje z ALE ’181:
Odštevanje z ALE’181:
Večbitni seštevalnik v VHDL-u:
library ieee;
use ieee.std_logic_1164.all, ieee.numeric_std.all;
-
DIGITALNE STRUKTURE 9
entity NBitAdder is
generic (n: natural := 4);
port( A, B: in std_logic_vector(n-1 downto 0);
Cin: in std_logic;
Sum: out std_logic_vector(n-1 downto 0);
Cout: out std_logic);
end entity NBitAdder;
architecture unsgned of NBitAdder is -- unsigned je
rezervirano
signal result: unsigned(n downto 0);
signal carry: unsigned(n downto 0);
begin
carry Cin, others => ’0’);
result
-
DIGITALNE STRUKTURE 10
cizh = ab ∨ acvh ∨ bcvh = ab ∨ cvh(a ∨ b),
vidimo, da imamo izhodni prenos, kadar- a = b = 1, (se generira)
oz.- cvh=1, in a = 1 ali b = 1 (se razširja)
Vpeljemo signala
Gi = aibi (“generate”), ter
Pi = ai ∨ bi (“propagate”).
Prenos v i-ti stopnji je torej
ci+1 = aibi ∨ ci(ai ∨ bi) = Gi ∨ ciPi.
Za n = 4 stopnje:
c1 = G0 ∨ P0c0c2 = G1 ∨ P1c1
= G1 ∨ P1(G0 ∨ P0c0)= G1 ∨ P1G0 ∨ P1P0c0
c3 = G2 ∨ P2c2= G2 ∨ P2(G1 ∨ P1G0 ∨ P1P0c0)= G2 ∨ P2G1 ∨ P2P1G0
∨ P2P1P0c0
c4 = ...
= G3 ∨ P3G2 ∨ P3P2G1 ∨ P3P2P1G0 ∨ P3P2P1P0c0
Splošen zapis:
ci+1 = Gi ∨ PiGi−1 ∨ PiPi−1Gi−2 ∨ ... ∨ PiPi−1..P0c0= Gi ∨
i−1∨
j=0
(&ik=j+1Pk)Gj ∨ c0&ik=0Pk
-
DIGITALNE STRUKTURE 11
Carry look-ahead generator (CLG) 74182 je bil zasnovan za
ALE’181 (vsisignali P in G so invertirani).
-
DIGITALNE STRUKTURE 12
CLG:
P = P0P1P2P3
G = G3 ∨ P3G2 ∨ P3P2G1 ∨ P3P2P1G0
Vmesni prenosi:
Cn+x = G0 ∨ P0c0Cn+y = G1 ∨ P1G0 ∨ P1P0c0Cn+z = G2 ∨ P2G1 ∨
P2P1G0 ∨ P2P1P0c0
Npr. Cn+x ima zakasnitev 4, ker ima G0 zakasnitev 3 ter P0c0
zakasnitev 3(P0 zakasnitev 2), tj. 3 + 1(ALI vrata).
-
DIGITALNE STRUKTURE 13
P in G služita za večnivojski “carry-lookahead”.
-
DIGITALNE STRUKTUREZapiski predavanj
Branko Šter, Ljubo Pipan
Koraki pri načrtovanju vezij na osnovi VHDL (in drugih HDL
jezikov):
• bločni diagrami / hierarhija• kodiranje v VHDL• prevajanje
kode, preverjanje pravilnosti sintakse• simulacija: funkcionalna
verifikacija (brez zakasnitev)• sinteza - VHDL opis mapira v ciljno
tehnologijo (npr. PLD, FPGA,
ASIC)
• razmestitev in povezovanje (placement / routing)• simulacija:
časovna verifikacija (z zakasnitvami)
5 Kanonske logične ureditve
Bralni pomnilniki
Bralni pomnilnik (ROM) običajno obravnavamo kot kombinacijsko
vezje.ROM celici navadno ne rečemo pomnilna celica, ker ni
registrskega tipa,tj. med delovanjem vanjo ne moremo vpisovati.
Bralni pomnilnik realizira funkcijski mnogopol (FM):
1
-
DIGITALNE STRUKTURE 2
FM je n poljubnih funkcij m spremenljivk (v PDNO obliki)
Naslovni vhodi ROMa pripadajo neodvisnim spremenljivkam, izhodi
pa želenimfunkcijam.
m ... dolžina naslova, 2m ... število pomnilnǐskih lokacijn
... velikost pomnilnǐske lokacije v bitih
Pri programabilnih logičnih vezjih PLD se običajno uporablja
pri risanjushem poseben, bolj zgoščen zapis:
Povezave, ki so na sliki označene s križci, označujejo
varovalke. Tak zapisbomo uporabili tudi tukaj.
Npr. PROM 4*2 lahko realizira dve funkciji dveh
spremenljivk:
-
DIGITALNE STRUKTURE 3
Struktura na levi predstavlja dekodirnik. Križec je vezni
element, ki je pro-gramabilen.
Pomnilnǐskim naslovom, ki ustrezajo mintermom nad m
spremenljivkami, us-treza IN-matrika. Vsebina pomnilnǐskih lokacij
pa predstavlja zapis funkcije,kakor v pravilnostni tabeli.
IN-matrika je fiksna; naslovov seveda ne moremo programirati,
ALI-matrikapa je programabilna; vsebino lahko vpǐsemo (vsaj
enkrat).
V splošnem lahko bralni pomnilnik shematsko predstavimo
takole:
-
DIGITALNE STRUKTURE 4
Vezni element (VE) “ALI“ matrike je lahko dioda, bipolarni ali
MOS tran-sistor. VE mora prevajati samo v eno smer.
Dodana mu je lahko:- serijsko vezana “varovalka“, ki jo ob
programiranju raztalimo, ali pa- v primeru MOS transistorja posebna
topologija, vezana na gate elektrodo.
Dioda (včasih): varovalka pri diodi pomeni “1“. B-linije so na
nizki napetosti.Izbrana w-linija dvigne bitno linijo preko diode na
“1“. Zato so v začetnemstanju same enice.
Transistor: b-linija je vezana preko “pull-up“ transistorja na
napajanje, zatoje na njej “1“. Z adreso izberemo eno w-linijo.
Napetost na w-liniji povzroči,da začne transistor prevajati in s
tem povzroči določen padec napetosti nab-liniji (ne prav velik
zaradi kapacitivnosti b-linije).
Mask ROM
Proizvajalec naredi masko glede na kupčevo specifikacijo
vsebine ROMa - indrago zaračuna. Zato se izplača samo za zelo
velike serije.
-
DIGITALNE STRUKTURE 5
PROM
Tipično je bipolaren; to pomeni, da je VE bipolarni
transistor.
Ima k transistorju zaporedno vezano varovalko, ki jo uporabnik
prežge zdovolj velikim tokom, tako da da gor zadosti veliko
napetost. Take izvedbese danes zelo redko uporabljajo.
Danes so PROM-i večinoma EPROM-i v ceneǰsem ohǐsju brez
kvarčnegaokna (OTP).
EPROM
tudi UV-EPROM
- E: izbrisljiv (“erasable“), večkratno
- Tudi večkrat zapisljiv.
- MOS tehnologija.
- Ima plavajočo plast (floating gate, plavajoča vrata), tj.
dodatno krmilnoelektrodo, ki je na vse strani na debelo obkrožena
z dielektrikom: visokaupornost. Struktura izkazuje efekt
kondenzatorja. Zato EPROM celicopogosto označimo tudi takole:
- Programiranje: Pri visoki napetosti na krmilni (gate)
elektrodi (10V aliveč) in ponoru proti substratu in izvoru pride
do preboja dielektrika (pla-zovit (ali vroč) preboj, “avalanche
injection“, “hot electron injection“) izsmeri substrata. Elektroni
morajo dobiti dovolj energije, da preskočijo 3.2eVenergijsko
bariero med substratom in SiO2.
-
DIGITALNE STRUKTURE 6
Majhen neg. naboj (106 elektronov) pa ostane v plavajoči plasti
tudi, koni več napetosti. Nima kam odteči, ker je naokrog močan
izolator. “Kon-denzator“ se ne prazni, ker so elektroni ujeti v
potencialno luknjo (časovnakonstanta τ ≈ nekaj sto let). Neg.
naboj na plavajoči plasti onemogoča, dabi transistor prevajal, ko
je izbran. Naboj v bistvu znatno poveča pragovnonapetost MOS
transistorja.
Proces programiranja celice je samo-omejujoč, tj. ni bojazni,
da bi celico“preveč“ sprogramirali. Elektroni v plavajoči plasti,
ki jih je vedno več,vedno bolj omejujejo prihod novih elektronov
iz substrata.
EPROM programator priskrbi določene napetosti, ki jih konkreten
EPROMpotrebuje. Programiranje npr. 512K*8 traja kako minuto.
Pri izbrisani celici transistor prevaja. Ko je izbran, se
b-linija (ki je običajnoprednabita) prazni skozenj in s tem ji
pade napetost. B-linija je prekostikalnega transistorja s tipalno
linijo povezana s tipalnim ojačevalnikom(“sense amplifier“), ki
primerja to napetost z referenčno napetostjo. Če jemanǰsa od
referenčne, to običajno tolmači kot logično 1 (“1“), in
obratno.Logična 1 je torej, kadar transistor prevaja. Zato ima
običajno prazen
-
DIGITALNE STRUKTURE 7
EPROM same “1“.
EPROM je treba vzeti iz vezja in ga s posebno napravo (EPROM
eraser)osvetljevati z UV svetlobo določene valovne dolžine
(253.7nm) 10-30 minut,da se vsebina izbrǐse (fototok). Elektroni
dobijo dovolj energije (3.2eV) dapreskočijo iz plavajoče plasti
proti gate in substratu.
Ker ta frekvenca ne prodre skozi večino vrst plastike ali
stekla, ima EPROMčip na vrhu kvarčno okence. Čip mora biti pri
brisanju dovolj blizu UV-izvoru(nekaj cm).
Treba je izbrisati celoten čip (ne gre po delih) in ga nato
sprogramirati tervložiti nazaj v vezje.
EPROM pa lahko “preveč“ zbrǐsemo; pri tem postane plavajoča
plast takonabita, da sploh ne more več sprejeti elektronov.
Na sončni svetlobi se izbrǐse v kakem tednu (z neprozorno
nalepko čez okenceto lahko preprečimo).
Max. število brisanj in pisanj proizvajalci neradi deklarirajo,
je pa vsaj 100.
Hiba je tudi potreba po večji napetosti pri programiranju.
EEPROM
Tunelski efekt oz. hladen preboj elektronov (Fowler-Nordheim
tunneling,“cold electron“ tunneling, tunneling): elektroni
prebijejo energijsko barieroSi-SiO2 z manj kot 3.2eV.
EEPROM ima tanek dielektrik med plavajočo plastjo in ponorom in
ga lahkobrǐsemo z napetostjo na gate elektrodi, ki ima nasprotno
polariteto kot pri“pisanju“.
Pri pozitivni napetosti med ponorom in vrati tunelirajo
elektroni skozi tankoplast oksida iz plavajoče plasti v ponor. S
tem se zmanǰsa pragovna napetostin transistor prevaja. Pri
brisanju je napetost nasprotne polaritete in elek-troni tunelirajo
iz ponora v plavajočo plast. Pragovna nap. se poveča, tran-sistor
ne prevaja.
Brisati in reprogramirati ga je možno le v celoti, vendar po
bytih.
-
DIGITALNE STRUKTURE 8
EEPROM-a ni treba vzeti iz vezja, če ga hočemo
reprogramirati.
Ne rabimo niti dodatne opreme; brǐse se z lokalizirano uporabo
E-polja zavsako celico. Spreminjamo 1 byte naenkrat, kar je po
svoje dobro, vendarpočasno.
EEPROM ni zamenjava za RAM- pisanje je počasno ∼ 30us/byte-
št. vpisov je omejeno ∼ 10000, ker je plast dielektrika zelo tanka
in seobrabi.
Pomnilnik Flash
Včasih se reče tudi Flash EEPROM, čeprav je njegova pomnilna
celica vresnici kombinacija EPROM in EEPROM celice.
Flash se imenuje zato, ker je možno bliskovito brisati po
blokih (vnaprejdoločeni deli čipa), ki vsebujejo več deset KB.
Zato je mnogo hitreǰsi kotobičajen EEPROM, ki procesira po 1 byte
naenkrat.
Obstajata NOR in NAND Flash.NOR Flash lahko deluje, vsaj kar se
branja tiče, kot običajen pomnilnik:naslovimo lokacijo in
preberemo vsebino (random-access). Zato lahko služikot zamenjava
za ROM. Za brisanje oz. vpis pa potrebuje posebne ukaze,
zatouporablja SW gonilnik. NOR Flash zavzame večjo površino
zaradi fizičneprisotnosti bitne linije. Tudi vpisujemo lahko
posamezne lokacije (iz ’1’ v’0’), brǐsemo pa lahko le po
blokih.NAND Flash zavzame manǰso površino, ker bitne linije v
bistvu ni. Dopodatkov pa se da dostopati le sekvenčno. Brati in
vpisovati je mogoče le postraneh (pages); stran ima tipično 512
bytov. Izbris je možen le po blokih, kivsebujejo 32 (64, 128)
strani, tj. od 16KB navzgor. Zaradi dostopa na nivojustrani in
blokov deluje podobno kot npr. hard disk. Tudi sicer se uporablja
zanamene shranjevanja podatkov (mass storage). NAND Flash potrebuje
SWgonilnik še bolj kakor NOR Flash zaradi upravljanja z defektnimi
bloki (badblock management). NAND Flash se uporablja za USB ’diske’
in pomnilnǐskekartice.
Pomnilniki Flash uporabljajo (eksterno) normalne napetosti,
vǐsje napetosti(npr. za programiranje) pa dobijo na osnovi
”črpanja naboja”(charge pump-ing).
-
DIGITALNE STRUKTURE 9
Flash pomnilnik se uporablja v- mobilnih telefonih,- digitalnih
kamerah,- LAN stikalih (switches),- USB pogonih, - PC karticah za
prenosne rač.,- digital set-up boxes,- vgradnih (embedded)
napravah,- igralnih konzolah,itd.
Zaključek
Bralne pomnilnike uporabljamo za:- računalnǐske programe (npr.
BIOS v računalnikih)- množenje manǰsih števil (naslov
sestavljata faktorja, vsebina pa je produkt)- preslikovalne oz.
”look-up” tabele funkcij- razne korekcijske tabeleitd.
Dva problema kanonskih realizacij z bralnimi pomnilniki sta:
• veliko število veznih elementov, potrebnih za realizacijo
funkcij. ŠteviloVE narašča eksponentno glede na števila
spremenljivk (zaradi PDNOoblike), kar pa ne velja za število
operatorjev, potrebnih za realizacijo“tipične“ MNO. Število
izhodov je zaradi masovne uporabe teh grad-nikov za potrebe
permanentnega pomnjenja omejeno na 4, 8 (naj-pogosteje) in 9.
• Velike dimenzije ALI-matrike in zahtevne izhodne stopnje ne
omogočajorealizacij, ki bi bile po času razširjanja signala od
vhoda do izhodablizu preklopnim časom stikal v izbrani
tehnologiji. Poleg že omen-jenih gradnikov povzroča pomembno
zakasnitev signala in povečanještevila elementov tudi dekodirnik
naslova, katerega kompleksnost tudiraste eksponentno v odvisnosti
od števila spremenljivk.
Torej, število veznih elementov in kompleksnost dekodirnika
naslova naraščataeksponentno s številom vhodnih
spremenljivk.
Veliki bralni pomnilniki so počasneǰsi (dolge linije (velike
parazitne C), počasnorazširjanje signala); majhni (tipično so
bipolarni) so hitreǰsi.
-
DIGITALNE STRUKTURE 10
Programabilna logična vezja PLD
Tukaj bomo obravnavali le klasična programabilna logična vezja
oz. PLDvezja (“Programmable logic devices”). Le-ta realizirajo
normalne (kanonske)oblike logičnih funkcij.
PLA
Da bi se ognili omenjenim problemom, sta Philips in Signetics
že v prvipolovici sedemdesetih let ponudila vezje pod kratico PLA
(“ProgrammableLogic Array“) - programabilna logična ureditev.
Spada v generično skupinovezij, ki realizirajo različne kanonske
(normalne) oblike funkcij.
Pri PLA sta obe matriki, IN in ALI, programabilni.
Primer: PLA z 2 vhodoma, 4 produkti (IN) ter 2 izhodoma
(ALI):
Prednost PLA pred ROM je v tem, da ni potrebno pisati funkcije v
PDNOobliki (z mintermi), ampak lahko v minimizirani obliki. To
pride do izraza prifunkcijah velikega števila spremenljivk, ki
imajo v minimizirani obliki pogostorelativno malo produktnih
členov, in je torej realizacija s ROM zelo potratna.
-
DIGITALNE STRUKTURE 11
V takem primeru je bolj smiselno realizirati samo obstoječe
produkte, karzmore PLA na osnovi svojih “programabilnih
naslovov“.
Od ROM vezja se razlikuje v tem, da ne vsebuje zahtevnega
naslovnegadekodirnika. Vsebuje pa zato posebno dodatno “IN“
matriko. število potreb-nih veznih elementov se pomembno
zmanǰsa.
Posamezen produktni člen si lahko deli več izhodov oz.
funkcij, kar je pogostomožno koristno uporabiti.
Poglejmo nekaj PLA elementov. Npr.- PLA 82S200 (Mullard) s 16
vhodi, 48 produkti, ter 8 izhodi ima 48 32-vhodnih IN vrat in 8
48-vhodnih ALI vrat. V primerjavi z MSI elementi jeto mnogo, zato
vezja PLA spadajo v skupino LSI vezij.- PLA PLUS153 (Philips): 8
vhodov, 32 36-vhodnih konjunkcij ((8+10)*2),10 vhodov/ izhodov (s
TS-vmesniki) in programabilno izhodno polariteto (zXOR vrati). Ima
20 pinov. 24-pinski PLUS173 ima 12 vhodov, ostalo papodobno.
Povejmo še, da PLA običajno ni realiziran v dvonivojski IN-ALI
izvedbi,temveč v NOR-NOR izvedbi (popolna Pierce-ova normalna
oblika (PPNO),spomnite se tudi na funkcijsko polnost operatorja
NOR). Razlog, zakaj Shef-ferjeva oblika ni ugodna, je sledeč. Ker
ima PLA veliko število vhodov, bi se vMOS tehnologiji pri NAND
izvedbi produktnih členov upornost zelo povečalain s tem razmerje
upornosti med bremenskim transistorjem in transistorji na“besedni“
liniji. Da bi ohranili ustrezno razmerje, je treba spremeniti
ge-ometrijo bremena, s tem pa se poveča RC konstanta, kar
upočasni vezje.Prednost NOR-NOR pred NAND-NAND obliko je v tem, da
so pri NORvratih transistorji na linijo vezani vzporedno.
Obširne analize različnih realizacij v SSI in MSI tehnologiji
in analize naključnogeneriranih funkcij so dale proizvajalcem
odgovor kako izbrati parameter k,da je možno realizirati večino
danih funkcij.
Ob takratnem stanju tehnologije je bilo možno število izhodov
(n) še zelonizko (
-
DIGITALNE STRUKTURE 12
Potrebno število členov za realizacijo MDNO je v večini
praktičnih primerovomejeno na sorazmerno majhne vrednosti (
-
DIGITALNE STRUKTURE 13
vezju prihranimo precej prostora, in obenem povečamo
fleksibilnost, ker jePAL mnogo lažje spremeniti kakor tiskano
vezje.
Disjunkcija ne uporablja vseh produktov, ampak samo nekaj
(tipično 2, 4,8, 16); manj, kot jih je, več neodvisnih funkcij je
lahko. PAL je hitreǰsikot PLA, ker imajo povezave z varovalkami
pri PLA večjo upornost kot žesklenjene povezave pri PAL-u.
Prvi PAL na tržǐsču je bil PAL16L8; L označuje aktivno nizke
izhode. Nasliki je četrtina vezja PAL16L8:
Vidimo, da ima programabilne vhode/izhode, tj. izhodi lahko
služijo tudi kotvhodi. V ta namen mora biti tristanjski vmesnik v
stanju visoke impedance;kadar ni, so izhodi tudi interno vezani
nazaj in jih lahko po potrebi upora-bimo. To je koristno v primerih
realizacije kompliciranih funkcij, ki jih jepotrebno razstaviti
(dekompozicija).
Nekaj primerov PAL-a:
• PAL10H8 (PAL10L8, PAL10R8): 10 vhodov, 8 izhodov (ALI), po
2produkta na ALI operator
• PAL12H6 (PAL12L6, PAL12R6): 12 vhodov, 6 izhodov,
(4,2,2,2,2,4)produkti na ALI operator
-
DIGITALNE STRUKTURE 14
• 14H4: 14 vhodov, 4 izhodi, po 4 produkti na ALI• 16H2: 16
vhodov, 2 izhoda, po 8 produktov na ALI• 16H1: 16 vhodov, 1 izhod,
16 produktov na edinem ALI
Število produktov iz oznake ni razvidno.
Pri PAL16R8 oznaka R pomeni, da so izhodi registrski, tj.
vsakemu od osmihizhodov je dodan D flip-flop, kar pa delno že
pripelje do naslednje razvojnestopnje, GAL vezij.
GAL
Gre za noveǰsi (relativno gledano) PAL z dvema pomembnima
dodatkoma:
1. OLMC (“Output logic macrocell”), kar v prvi vrsti pomeni
dodanopomnilno celico
2. reprogramabilnost na osnovi EECMOS tehnologije
Ker je GAL zaščiteno ime, ima tudi druge oznake (npr. PALCE,
ki pa gre izuporabe); odvisno od proizvajalca.
GAL16V8 (oz. PALCE16V8) ima- največ 16 vhodov, največ 8
izhodov (ne oboje naenkrat),- 20 pinov (8 I, 8 I/O/Q, Clk/I, OE/I,
Vcc, Gnd),- v vsako od 8 disjunkcij gre po 8 32-vhodnih produktov
(16*2),- 8 flip-flopov.
GAL22V10 (PALCE22V10) ima- 24 pinov (11 I, 10 I/O/Q, Clk/I, Vcc,
Gnd),- v vsako od 10 disjunkcij gre po 8 do 16 44-vhodnih produktov
(22*2),- 10 flip-flopov,- IN-matrika je velikosti 132*44. - 4ns
delay
Še večji čip je GAL26V12.
Funkcionalni blok diagram vezja GAL22V10:
-
DIGITALNE STRUKTURE 15
“V“ pomeni “variable output configuration“.
Izhodna makrocelica OLMC pa pri GAL22V10 izgleda takole:
-
DIGITALNE STRUKTURE 16
S pomočjo programabilnih stikal (izbiralniki) v OLMC so možni
različninačini delovanja:
• kombinacijski izhod (negiran ali nenegiran)• registrski izhod
(negiran ali nenegiran)• vhod (kadar je TS-vmesnik onemogočen)•
kombinacijski izhod nazaj• registrski izhod nazaj
GAL16V8 ima za nastavitev izhodne polaritete kar XOR vrata in
posebenbit.
Izhod nazaj se uporabi, če je potrebno realizirati funkcijo
večjega številaspremenljivk, kot jih je na voljo, predvsem pa,
če število produktov, ki jihželimo peljati v ALI-vrata, preseže
maksimalno dovoljeno vrednost.
Omenimo še dve dobri lastnosti PLD vezij:
1. Zelo pomembna lastnost kanonskih vezij, kot so PLD, je, da
omogočajo(še posebej v primerih, ko so vezni elementi
reprogramabilni) 100% testiranjevezja v proizvodnji. Če v zasnovi
funkcij ni napak, ni odpovedi ob začetkudelovanja. Ta lastnost pa
je dovolj pomembna pri številnih aplikacijah (npr.vesoljska
tehnika).
-
DIGITALNE STRUKTURE 17
2. Kanonske realizacije vezij se odlikujejo v primeri z
realizacijami na os-novi polja vrat (gate array, FPGA) tudi po tem,
da zagotavljajo enak časrazširjanja signala od vhodov do izhodov
za vse funkcije (GAL: 5ns). Sig-nal mora le enkrat ali dvakrat
(kadar je v makrocelici vezan nazaj) skozivhodno “IN“ matriko, vsi
ostali časi zamuditve signala pa so isti in pred-vsem
napovedljivi. To je zelo pomembna lastnost.
CPLD
Kompleksni (“complex“) PLD je razširitev GAL-a in ima večjo
gostoto logikev čipu.
CPLD sestavlja več osnovnih blokov tipa PAL/GAL, ki so povezani
s stikalnomatriko.
Primer. Altera MAX3000A:- osnovni blok se imenuje LAB (Logic
Array Block; enakovredno enemuGALu)- stikalna matrika oz.
povezovalni snop se imenuje PIA (Programmable In-terconnection
Array) in skrbi za vse povezave v čipu, v posamezen LAB pavodi le
tiste signale, ki jih LAB potrebuje
Slika prikazuje bločni diagram MAX3000A:
-
DIGITALNE STRUKTURE 18
Če pogledamo makrocelico (MC) na sliki:
-
DIGITALNE STRUKTURE 19
vidimo, da imamo dve vrsti razširitev:
- Razširitve, ki si jih makrocelice v LAB-u delijo (“Shareable
Expanders“):to so produkti, ki gredo direktno nazaj v vhodni snop
(ne izhod makro-celice, kakor pri GAL-u, ampak še pred
ALI-operatorjem).
- Paralelne razširitve: to so produkti, ki si jih makrocelica
“izposodi“od sosednih makrocelic. Kadar MC potrebuje več kot 5
produktov, jihlahko dobi 3*5=15 od vǐsje ležečih MC.
MAX3000A lahko programiramo “in-system“ (In-System
Programmability,ISP) na osnovi JTAG vmesnika, ki danes predstavlja
standard.
-
DIGITALNE STRUKTUREZapiski predavanj
Branko Šter, Ljubo Pipan
6 Registri
Register sestavlja več pomnilnih celic, tipično s skupnimi
krmilnimi sig-nali (ura, brisanje, nalaganje, pomik). Prevladujejo
pomnilne celice dvehtipov:
- robno prožene (“edge-triggered flip-flop“) in- nivojsko
prožene (zapah oz. zatič, “latch“).
Običajno označba flip-flop pomeni, da gre za robno proženo
pomnilno celico.Večina registrov je sestavljena iz flip-flopov.
Le-ti so navadno D-tipa; za JK-celice bi potrebovali mnogo več
priključkov (pinov). To je glavni problem,ne pa gostota
logike.
Običajen register le začasno shranjuje več bitov, nas pa bodo
v tem poglavjuzanimali predvsem registri z dodatno lastnostjo, da
so pomnilne celice med-sebojno zaporedno povezane, kar omogoča
pomik (“shift“) vsebine registra.
Registri v VHDL-u
VHDL pozna poseben konstrukt, ki se imenuje proces, in se
uporablja za vi-sokonivojski opis določene digitalne strukture ali
pa celotnega vezja. Običajnose uporablja za opis sekvenčnih
struktur, možno pa je z njim opisati tudikombinacijske
strukture.
Nivojsko občutljivi D zapah:
1
-
DIGITALNE STRUKTURE 2
library ieee;
use ieee.std_logic_1164.all;
entity D_latch is
port (D, Enable : in std_logic;
Q : out std_logic);
end entity D_latch;
architecture behavioural of D_latch is
begin
p0: process (D, Enable) is
begin
if (Enable = ’1’) then
Q
-
DIGITALNE STRUKTURE 3
Pomikalni registri - splošno
Pomikalni registri (PR) se uporabljajo za začasno shranjevanje
in pomikanjepodatkov. Pomnilne celice v pomikalnih registrih so med
sabo povezane tako,da omogočajo “pomik vsebine“ registra v eno ali
v obe smeri.
Izvedbe pomikalnih registrov lahko razdelimo glede na možnost
vzporednegavpisa ter glede na dostopnost izhodov celic (vse ali
samo zadnja).
- zaporedni vhod, zaporedni izhod (ZZ), slika a. Osnovna izvedba
jetorej kar zaporedna vezava D-celic.
- zaporedni vhod, vzporedni izhod (ZV) (kot ZZ, le izhodi so
dostopnina izhodnih pinih), slika b.
- vzporedni vhod, zaporedni izhod (VZ), slika c.Možnost
vzporednega vpisa v register dosežemo tako, da s krmilnimsignalom
SH/LD’ in izbiralniki 2/1 določimo, ali gredo na D vhodecelic
izhodi preǰsnjih celic ali pa vrednosti, ki jih želimo vpisati
(slikac).
- vzporedni vhod, vzporedni izhod (VV) (najbolj univerzalen),
slika d.
-
DIGITALNE STRUKTURE 4
Tipa z različno strukturo vhodnega dela in izhodnega dela (VZ
in ZV) senajbolj pogosto uporabljata za paralelno-serijsko (VZ) in
serijsko-paralelnopretvorbo (ZV).
Standardne MSI izvedbe pomikalnih registrov:- ’164: 8-bitni ZV-
’165: 8-bitni VZ (ima seveda tudi serijski vhod), asinhroni vpis-
’194: 4-bitni VV, dvosmerni, univerzalni, as. reset- ’195: 4-bitni
VV
-
DIGITALNE STRUKTURE 5
- ’299: 8-bitni univerzalni, s TS izhodi (vzp. vhodi in vzp.
izhodi so lahkokar na istih priključkih)- ’40105: 4-bit x 16-
4731B: 4 x 64-bitni ZZ
Univerzalni (pomikalni) registri
Z univerzalnimi registri lahko zgradimo poljuben drug register.
Univerzalnostpa pomeni dodatna kombinacijska vezja, kar ceno in
kompleksnost rešitveoddalji od rešitve s specializiranim
registrom.
Univerzalni 4-bitni pomikalni register 74194:
Delovanje prikazuje tabela:
S1 S0 operacija0 0 hold0 1 shr (QA → QD)∗1 0 shl (QD → QA)†1 1
vzporedni vpis∗ pomik v desno oz. deljenje z 2† pomik v levo oz.
množenje z 2
Če želimo večji pomikalni register, kaskadno vežemo dva ali
več pomikalnihregistrov. Npr. 8-bitni PR sestavimo, kot na
sliki:
-
DIGITALNE STRUKTURE 6
Aplikacije pomikalnih registrov
- Zakasnitev- Serijsko/paralelna ter paralelno/serijska
pretvorba- FIFO in LIFO pomnilniki- Števniki na osnovi PR- LFSR
(“Linear feedback shift register”) in različne aplikacije: npr.
psev-donaključni generatorji, vezja za izračun ostanka v
XOR-aritmetiki (tvorbaCRC), itd.
Johnsonov števnik
Če zaporedni izhod pomikalnega registra preko negatorja vežemo
na za-poredni vhod, dobimo Johnsonov (oz. Moebius-ov) števnik.
Števnik murečemo zato, ker periodično ponavlja isto zaporedje;
seveda pa ne šteje bina-rno.
Zaporedje oz. sekvenca je dolžine 2n, če je n število
pomnilnih celic oz.dolžina registra. Npr. pri n = 4 dobimo na
izhodih registra sledeč časovnipotek:
-
DIGITALNE STRUKTURE 7
CLK
............................................................................................................................
........
........
........
................................................................................................................................................................................................................
........
........
........
................................................................................................................................................................................................................
........
........
........
................................................................................................................................................................................................................
........
........
........
................................................................................................................................................................................................................
........
........
........
................................................................................................................................................................................................................
........
........
........
..............................................................
Q1
.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
........
........
........
...............................................
Q2
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
........
........
........
...............................................
Q3
.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
........
........
........
....
Q4
...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Dobre lastnosti Johnsonovega števnika:
- vezja za detekcijo stanja ne izkazujejo hazarda (ker se ob
vsakem pomikuspremeni le vsebina ene pomnilne celice),
- detekcija stanj pri poljubnem modulu štetja je možna na
osnovi opa-zovanja samo dveh mest v registru,
- izhodi posameznih pomnilnih celic v registru so fazno
pomaknjeni z mdeljeni poteki urinega signala.
Slabe lastnosti Johnsonovega števnika:
- za večje module štetja so pomnilne celice neracionalno
izrabljene; od2n možnih stanj je izkorǐsčenih le 2n. Pri n=2
nimamo neizkorǐsčenihstanj, pri n=3 sta takšni stanji dve, pri
n=4 že osem in pri n=5 dvaind-vajset.
- če se zaradi napake pojavi vrednost, ki ni v števni
sekvenci, je potrebnoizvršiti korekcijo z dodatno logiko.
Oglejmo si, kaj se dogaja, če se v registru pojavi vrednost, ki
ni del števnesekvence. V tabelah so prikazane osnovne sekvence
stanj in preostale sekvenceza n = 3, 4, 5.
-
DIGITALNE STRUKTURE 8
Q1 Q2 Q3 Q1 Q2 Q30 0 0 0 1 01 0 0 1 0 11 1 0 0 1 01 1 10 1 10 0
10 0 0
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q40 0 0 0 0 1 0 11 0 0 0 0 0 1 01 1 0 0 1 0
0 11 1 1 0 0 1 0 01 1 1 1 1 0 1 00 1 1 1 1 1 0 10 0 1 1 0 1 1 00 0
0 1 1 0 1 10 0 0 0 0 1 0 1
Q1 Q2 Q3 Q4 Q5 Q1 Q2 Q3 Q4 Q5 Q1 Q2 Q3 Q4 Q50 0 0 0 0 0 1 0 1 0
0 1 0 0 01 0 0 0 0 1 0 1 0 1 1 0 1 0 01 1 0 0 0 0 1 0 1 0 1 1 0 1
01 1 1 0 0 1 1 1 0 11 1 1 1 0 0 1 1 1 01 1 1 1 1 1 0 1 1 10 1 1 1 1
0 1 0 1 10 0 1 1 1 0 0 1 0 10 0 0 1 1 0 0 0 1 00 0 0 0 1 1 0 0 0 10
0 0 0 0 0 1 0 0 0
Prehod v neosnovno sekvenco (n.pr. zaradi motnje)
- lahko spremeni modul štetja,- ne velja več pravilnost
detekcije stanja na osnovi opazovanja le dveh
pomnilnih celic,- ni več delitve urine frekvence.
-
DIGITALNE STRUKTURE 9
Prehajanju stanj po neosnovni sekvenci bi se radi izognili. Do n
= 5 senam ponuja možnost enostavnega korekturnega vezja. Namesto,
da na vhodvodimo negiran izhod pomikalnega registra, opazujemo prvo
in zadnji dvemesti pomikalnega registra. Vrednost 1 vpǐsemo v prvo
celico le v primeru,če ima vrednost 1 izraz
Q′n(Q1 ∨Q′n−1) .
Torej
Q1(t + 1) = Qn(t)′(Q1(t) ∨Q′n−1(t)
).
Na treh mestih pomikalnega registra kontroliramo ali so
vrednosti takšnekot jih zahteva osnovna sekvenca. Korekturno vezje
torej tudi še v primerun=5 zagotavlja prehod iz neosnovnih sekvenc
v osnovno sekvenco. Tabelapodaja obnašanje pomikalnega registra,
ki ima v povratni zvezi realiziranoto funkcijo za primer n=4.
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q40 0 0 0 1 0 1 1 1 0 0 11 0 0
0 0 1 0 1 0 1 0 01 1 0 0 0 0 1 0 1 0 1 01 1 1 0 0 0 0 1 1 1 0 11 1
1 1 0 1 1 00 1 1 1 0 0 1 10 0 1 10 0 0 10 0 0 0
Še korekcija za n = 5
Q1(t + 1) = Q5(t)′(Q1(t) ∨Q4(t)′)
in primer prehoda v osnovno frekvenco
-
DIGITALNE STRUKTURE 10
Q1 Q2 Q3 Q4 Q50 1 0 0 10 0 1 0 01 0 0 1 01 1 0 0 10 1 1 0 01 0 1
1 01 1 0 1 10 1 1 0 10 0 1 1 00 0 0 1 10 0 0 0 10 0 0 0 01 0 0 0 01
1 0 0 0
Lihi modul štetja pa lahko realiziramo tako, da izločimo eno
stanje. Vred-nost 1 (ali 0) mora preskočiti eno mesto v pomikalnem
registru. Najboljenostavno je, da ne opazujemo samo izhoda, ampak
tudi pomnilno celicopred njim. Vpis v vhod je sedaj odvisen od
obeh. Ena izmed možnih rešitev:
t t+1Qn−1 Qn Q1
0 0 10 1 01 0 01 1 0
Delovanje tako izvedenega števnika za n = 3 podaja tabela:
Q1 Q2 Q30 0 01 0 00 1 00 0 10 0 00 0 0
Zanimivo je dejstvo, da vezje, ki zagotavlja štetje po lihem
modulu, zago-tavlja tudi prehod iz neosnovne sekvence v osnovno
sekvenco.
-
DIGITALNE STRUKTURE 11
Krožni števnik
Krožni števnik (“ring counter”) dobimo kar z povratno vezavo
pomikalnegaregistra:
CLK
............................................................................................................................
........
........
........
................................................................................................................................................................................................................
........
........
........
................................................................................................................................................................................................................
........
........
........
................................................................................................................................................................................................................
........
........
........
................................................................................................................................................................................................................
........
........
........
..............................................................
Q1
.......................................................................................................................................................................................................................................................................................................
........
........
........
........................................................................................................................................................................................................................................................
Q2
..................................................................................................................................................................................................................................................................................................................................................
........
........
........
.........................................................................................................................................................................
Q3
.............................................................................................................................................................................................................................................................................................................................................................................................
........
........
........
..............................................................................................................................
Q4
.......................................................................................................................................................................................................................................................................................................................................................................................................................................
........
........
........
...................................................................................
Dobimo zaporedje dolžine n, če je n dolžina registra. Navadno
se uporabljakodiranje 1-od-N (“one-hot”), tako da ni potrebno
dekodiranje.
Slaba lastnost krožnega števnika je, da je začetno stanje
treba naložiti, medtemko je Johnsonov števnik potrebno le
resetirati.
Ciklični pomikalni registri
Ciklični PR se uporabljajo kot FIFO pomnilniki (pomnilnik z
zaporednimdostopom). Običajne dolžine so 32, 64, 128, 256, 512,
1024. Na sliki
-
DIGITALNE STRUKTURE 12
vidimo, da s krmilnim signalom RC določimo, ali biti prihajajo
iz vhoda Din(RC=0), ali pa je register vezan ciklično (RC=1),
kakor krožni števnik.
Navadno jih je v čipu več, npr. štirje. Vsak od njih porabi
le 3 priključke.Enostavno jih je tudi združevati v večje
ciklične PR, npr. 32 + 32 → 64.
Poseben način uporabe omogočajo dvosmerni pomikalni registri.
Z ustreznimštevilom takih registrov lahko zgradimo posebno
pomnilnǐsko strukturo, kiji rečemo sklad (“stack“ ali LIFO
(“last-in-first-out“)). En register upora-bimo kot “krmilni“
register, ostali pa hranijo posamezne binarne vrednosti.Izvedbo za
hranjenje oktetov (bytov) prikazuje slika:
LFSR in psevdonaključni generatorji
Eden od primerov uporabe pomikalnih registrov je seštevanje
izbranih mest(linearna kombinacija) po modulu 2 (seštevanje po
modulu 2, ekskluzivni
-
DIGITALNE STRUKTURE 13
ALI, XOR) in vpis vsote v vhod pomikalnega registra (LFSR -
“linear feed-back shift register”). V vsakem primeru dobimo
periodično zaporedje. Obprimerni izbiri mest pa dobimo pri
dolžini registra n zaporedje maksimalnedolžine, to je 2n−1. Kako
pridemo do tega, nam sicer pove teorija Galois-ovihpolj, ki jo je
razvil francoski matematik Evariste Galois v 19. stoletju.
Za dovolj velik n lahko tak register uporabljamo kot generator
psevdo-naključnegazaporedja dolžine 2n − 1. Kot izhod opazujemo
eno od celic (katerokoli). Vkolikor se zmotimo in ne vežemo
ustreznih bitov, je možno, da bo zaporedjebistveno kraǰse. Lahko
vežemo XOR:
n 3 4 5 6 7 8 9 101,3 1,4 2,5 1,6 1,7 1,2,7,8 4,9 3,102,3 3,4
3,5 5,6 3,7 5,9 7,10
4,76,7
ali pa XNOR operator:
n 3 4 5 6 7 8 9 15 16 31 63 1272,3 3,4 3,5 5,6 6,7 4,5,6,8 5,9
14,15 4,13,15,16 28,31 62,63 126,127
V prvem primeru je edino stanje, ki ni v sekvenci, stanje s
samimi ničlami,v drugem pa stanje s samimi enicami.
Na sliki
je primer vezave 7-bitnega PR, kjer tretjo in sedmo (oz. zadnjo)
celico pel-jemo preko XOR operatorja na vhod PR. Za “dober”
naključni generatorvzamemo bistveno večji register, npr. 63- do
127-bitni.
-
DIGITALNE STRUKTURE 14
Kako vemo, da je zaporedje sploh (psevdo-)naključno:
- verjetnost pojavljanja ničel in enic je približno enaka,-
verjetnost ničle oz. enice ni odvisna od preǰsnje vrednosti, tj.
vrednosti
v zaporedju medsebojno niso korelirane.
To sta dva bistvena pogoja za “naključnost“.
Ciklično redundančno kodiranje (CRC)
To je družina algoritmov za ugotavljanje napak pri prenosu
podatkov. Temeljina LFSR za izračunavanje ostankov pri deljenju v
XOR-aritmetiki. Ostankesicer lahko računamo tudi drugače, vendar
je realizacija z LFSR strojno na-jugodneǰsa.
Uporaba CRC preverjanja je zelo pogosta (npr. PkZip, Ethernet,
...)
Princip CRC si oglejmo kar na primeru:
Sporočilo, ki ga želimo poslati (npr. po serijski
komunikaciji) naj bo M =1101011011, kar lahko zapǐsemo kot polinom
M(x) = x9+x8+x6+x4+x3+x+1. CRC polinom pa naj bo P (x) = x4+x+1,
kar ustreza binarnemu nizu P =10011. Prva 1 je implicitna, zato
lahko rečemo kar 0011. Stopnja polinoma jen=4 (dolžina(P) - 1). V
praksi ni vseeno, kakšen je CRC polinom. Npr., zelopogosto je
uporabljan 32-biten CRC polinom 04C11DB7 (heksadecimalno).
Izračunati je potrebno ostanek pri deljenju M(x)∗xn/P (x). Pri
tem M(x)∗xnpredstavlja M, pomaknjen za n mest v levo, torej dodamo
n ničel. Ostanek,imenujmo ga R(x), dobimo z deljenjem. Upoštevati
je treba le pravila arit-metike po modulu 2 (XOR aritmetika):
seštevanje in odštevanje nam nado-mesti operator ekskluzivni ALI
(XOR), prenosov pa ni. V našem primerudobimo:
-
DIGITALNE STRUKTURE 15
11010110110000 : 10011 = ... (rezultat deljenja (kolicnik) nas
na zanima)
-10011
-----
10011
10011
-----
000010110
10011
-----
10100
10011
-----
1110 = R
Oddajnik pošlje M(x) ∗ xn + R(x), v konkretnem primeru torej
11010110111110. Sprejemnik izračuna ostanek pri deljenju ( M(x) ∗
xn + R(x) )/P (x).V kolikor pri prenosu ni prǐslo do napake, mora
biti ostanek seveda enak nič.Če je izračunan ostanek enak nič,
pomeni, da je verjetnost, da ni prǐslo donapake, zelo velika (tj.
obstaja majhen delež (v območju promilov) napak,pri katerih je
ostanek vseeno enak nič). Če je od nič različen, pa je
gotovoprǐslo do napake. S 100% verjetnostjo CRC torej ne more
odkriti napake, jepa blizu. V primerjavi z bolj preprostimi
metodami, kot je npr. pariteta, jeCRC neprimerno bolj
zanesljiv.
Alternativni način izračunavanja ostanka v XOR-aritmetiki, ki
nas predvsemzanima, pa uporablja pomikalni register in XOR
operatorje. Konkretni CRCpolinom določa, kako vežemo XOR
operatorje. Koeficienti CRC polinoma (zizjemo najvǐsjega in
najnižjega) določajo prisotnost XOR na sledeč način:- če je xi
prisoten (koeficient je 1), je na i-tem mestu prisoten XOR
operator,- če xi ni prisoten (koeficient je 0), je na i-tem mestu
samo pomik.
V vezje na sliki vodimo Mxn, tj. M in n ničel:
Vse D-celice so na začetku v stanju 0. Po 14 (dolžina(M) + n)
urinih ciklih
-
DIGITALNE STRUKTURE 16
je vsebina registra enaka ostanku (R) pri deljenju Mxn s P. V
našem primerudobimo R = 1110, kar lahko preverimo.
Oddajnik izvede izračun:
0 0000 ← 1101011011 00001 00012 00113 01104 11015 10016 00007
00018 00109 010110 101111 010112 101013 011114 1110 = R
sprejemnik pa izračun:
0 0000 ← 1101011011 11101 00012 00113 01104 11015 10016 00007
00018 00109 010110 101111 010012 100113 000014 0000
-
DIGITALNE STRUKTURE 17
To je strojna implementacija izračunavanja ostanka pri deljenju
(s P) v XORaritmetiki. Sprejemnik računa torej na isti način (z
enakim vezjem, ker je Pisti).
V primeru, da je prǐslo pri prenosu do okvare (enega ali več
bitov), bo ostanekz zelo veliko verjetnostjo različen od nič.
R = 0: (zelo verjetno) ni okvare
R != 0: je okvara
Ravno velika zanesljivost ugotavljanja napak je ena temeljnih
lastnosti CRCalgoritmov.
-
DIGITALNE STRUKTUREZapiski predavanj
Branko Šter, Ljubo Pipan
7 Števniki
Splošno
Števniki (ali tudi števci) so strukture, ki omogočajo
štetje. Preštejemo lahko,kolikokrat se je števni (urin) signal
spremenil iz ene logične vrednosti v drugo(”urina fronta”).
Števni signal označujemo običajno s CLK, CP ali α.
Števnik kot delilnik frekvence: števnik tudi deli frekvenco
urinega signala zrazličnimi delitelji.
Po izvedbi ločimo števnike v dve osnovni skupini:
- sinhroni števniki: vse spremembe vrednosti pomnilnih celic,
ki sestavl-jajo števnik, se dogajajo ”istočasno”, in
- asinhroni števniki: sprememba vrednosti ene pomnilne celice
povzročispremembo v drugi.
Možna je tudi kombinacija obeh izvedb, deli števnika delujejo
sinhrono, medsabo pa se krmilijo asinhrono.
Število sprememb na števnem vhodu, ki so potrebne, da se
števnik vrne vzačetno stanje, imenujemo modul štetja m.
1
-
DIGITALNE STRUKTURE 2
Asinhroni števniki
Pomnilne celice asinhronega števnika so prožene z izhodi
drugih celic in torejnimajo skupnega urinega signala.
Asinhroni števnik v najbolj preprosti obliki je veriga
T-pomnilnih celic (oz.JK).
T ... toggle (primerno za števnike)
To je idealiziran potek.
Vidimo, da šteje binarno navzdol.
Za povezave med pomnilnimi celicami bi lahko uporabili tudi-
negirani izhod pomnilne celice, ali pa- pomnilne celice, ki
spreminjajo svoje stanje ob zadnji fronti signala naurinem
vhodu
Tako imamo 4 kombinacije, glede na izhod (Q, Q’) in urin vhod
(prednja,zadnja fronta).
-
DIGITALNE STRUKTURE 3
Varianta s Q’ šteje torej binarno navzgor.
Sami ugotovite, kako štejeta varianti z zadnjo fronto (s Q oz.
Q’).
Vsak števnik (ne samo asinhroni) prǐsteva in odšteva, odvisno
od tega, katereizhode pomnilnih celic opazujemo: nenegirane ali
negirane. O tem se prepričamo,če pregledamo tabelo za primer
števnika s tremi pomnilnimi celicami:
Q2 Q1 Q0 Q2’ Q1’ Q0’0 0 0 1 1 10 0 1 1 1 00 1 0 1 0 10 1 1 1 0
01 0 0 0 1 11 0 1 0 1 01 1 0 0 0 11 1 1 0 0 0
Pri števnikih pogosto indekse izhodov pomnilnih celic
začenjamo z 0 in ne z1. Taka izbira omogoča ujemanje indeksa s
potenco števila 2 na opazovanemmestu števnika.
Prehod iz vrstice v tabeli v naslednjo vrstico je pogojen z
zahtevano frontosignala na števnem vhodu števnika.
Dobra lastnost asinhronih števnikov je, da ne potrebujejo
dodatne (kombi-nacijske) logike.
-
DIGITALNE STRUKTURE 4
Slaba lastnost pa je širjenje zakasnitev (zato se asinhronemu
števniku rečetudi “ripple counter”) in posledično s tem
pojavljanje nezaželenih “vmes-nih” stanj (trava oz. “glitches”)
ter omejitev frekvence zaradi kopičenjazakasnitev. Največja
možna frekvenca ure je določena s številom celic inzakasnitvijo
posamezne celice.
Potreba po dodatni logiki se pojavi šele, če želimo izvršiti
detekcijo izbranegastanja števnika (dekodiranje). Potrebujemo
operator IN, na njegovem izhodupa se pojavi signal, ki ima poleg
pričakovane vrednosti 1 (v izbranem stanju)še določeno število
kratek čas trajajočih vrednosti, ki so prav tako 1 ali setej
vrednosti približujejo (”trava”).
Razlog za ta pojav je asinhrona izvedba števnika. Predhodne
pomnilne celicev verigi so že spremenile svoje stanje, ko sledeče
pomnilne celice v nizu ševztrajajo v starem stanju. Časovni
diagram na sliki za števnik, sestavljen iztreh pomnilnih celic, ki
upošteva idealizirane zamuditve preklopov pomnilnihcelic, nam daje
odgovor, zakaj prihaja do ”lažnih”vrednosti signalov (trave):
Odvisno od dolžine niza-verige in izbrane konjunkcije dobimo
različno dolgeimpulze z logično vrednostjo 1.
Če proži spremembe vrednosti prednja fronta na izhodu iz
pomnilne celice,potem je največ motilnih signalov v realizaciji
konjunkcije
-
DIGITALNE STRUKTURE 5
z1 = Q0Q1...Qn−1
in nič motilnih signalov v realizaciji konjunkcije
z2 = Q′0Q
′1...Q
′n−1
Bralec se lahko sam prepriča, da imamo obratne razmere, če
prožijo spre-membe zadnje fronte na izhodu iz pomnilne celice.
Signala z1 in z2 stauporabna le kot statična in ju ne moremo
voditi na vhod, ki je dinamičen!
Sinhroni števniki
Na osnovi znanih metod iz sinteze sekvenčnih vezij lahko
zgradimo sinhroneštevnike za poljuben modul štetja in tudi
poljuben način (kodo) štetja.
Oglejmo si najprej takoimenovane čiste binarne števnike.
Štejejo po modulum = 2i in binarni kodi. Pogled na tabelo
t t+1Q2 Q1 Q0 Q2 Q1 Q00 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0
01 0 0 1 0 11 0 1 1 1 01 1 0 1 1 11 1 1 0 0 0
nam pove, kdaj mora naslednja pomnilna celica v verigi
spremeniti svojestanje. To se zgodi takrat, ko so vsebujejo vse
predhodne celice vrednost 1(0).
Idealna za realizacijo bi bila torej sinhrona pomnilna celica s
T-vhodom.Iz JK-celice jo dobimo na že znan način, na sliki pa je
prikazana rešitev zD-celico.
-
DIGITALNE STRUKTURE 6
Ločimo dve izvedbi:
a. realiziramo vhodno funkcijo za vsako pomnilno celico posebej
enonivojsko
b. vhodna funkcija naslednje pomnilne celice je konjunkcija
vhodne funkcijepredhodne pomnilne celice z njenim izhodom
• števnik z razširjanjem prenosa• ognemo se večanju števila
vhodov v vhodno konjunkcijo• vendar moramo to plačati z
zamuditvijo signala• Vsota zamuditev v konjunkcijah od konjunkcije
za prvo pomnilno
celico v nizu do izhoda konjunkcije za zadnjo pomnilno celico
vnizu določa najkraǰso periodo-takt signala, ki ga vodimo na
števnivhod števnika.
• problem pri velikih modulih štetja; zato pri njih posebni
prijeme,ki jih bomo spoznali v nadaljevanju.
74163: sinhroni 4-bitni binarni števnik
___ ____
-
DIGITALNE STRUKTURE 7
CLR | LOAD | ENP | ENT | CLK | A B C D | QA QB QC QD
RCO----|------|-----|-----|-----|---------|--------------------0 |
X | X | X | POS | X X X X | 0 0 0 0 01 | 0 | 0 | 0 | POS | X X X X
| A B C D *11 | 1 | 1 | 1 | POS | X X X X | Count *11 | 1 | 1 | X |
X | X X X X | QA0 QB0 QC0 QD0 *11 | 1 | X | 1 | X | X X X X | QA0
QB0 QC0 QD0 *1
- *1 - RCO goes HIGH at count 15 to 0.- QA LSB
Doseganje nižjih modulov štetja je mogoče z dekodiranjem
določenega stanjain vezavo na vhod reset (CLR’).
Kljub temu, da sinhroni števnik (npr. ’163) na izhodih nima
trave, pridekodiranju stanj števnika lahko dobimo travo zaradi
dekodirnika. To veljaza prehode med stanji, ko se spremeni več kot
1 pomnilna celica, torej jeHammingova razdalja več kot 1. Npr. pri
štetju do 7:
001 v 010 (preko 000 oz. 011)011 v 100 (več možnosti)101 v 110
(2 možnosti)
Kaskada sinhronih števnikov
Da dobimo vǐsji modul štetja, združimo v kaskado dva ali več
števnikov,tako da posamezen števnik s signalom TC (“terminal
count”; tudi RCO- “ripple-carry output”) omogoči naslednji vǐsji
števnik na vhodu CTEN(“count enable”; tudi CNT).
Pri paralelni izvedbi je signal CE posameznega števnika
konjunkcija vsehpreǰsnjih TC (poleg glavnega Enable):
-
DIGITALNE STRUKTURE 8
Problem je lahko veliko število vhodov v konjunkcijo. Temu se
lahko izognemos serijsko izvedbo, kjer pa se signal “omogoči“
širi asinhrono, kar zniža na-jvečjo možno frekvenco
števnika.
Kritična je zakasnitev od spremembe vrednosti prve celice v
nizu do vhoda vzadnjo celico v nizu. Vse ostale celice dosežejo
stanje, ki je pogoj za proženjepomnilne celice, že prej. To
informacijo si bloki posredujejo v verigi prekoizhodov CEO
(omogoči štetje) in vhodov CET (proži štetje). Izhod
prvegabloka CEO pa je vezan dodatno Še na poseben vhod ostalih
blokov CEP(vzporedno dovoli štetje). Bloki v nizu ne štejejo tako
dolgo, dokler nistaizpolnjena oba pogoja CET in CEP.
Kaskadni števniki se pogosto uporabljajo za deljenje urinega
signala visokefrekvence.
Kaskada sinhronih števnikov za modula 3 in 5
Števniki za modula m=3 in m=5 so zanimivi predvsem zaradi
desetǐskegaštevilskega sistema in merjenja časa.
Modul štetja 3 dobimo lahko z dvema JK-celicama brez dodatne
logike. Spomočjo tabele JK-celice poǐsčemo J in K za vse možne
prehode stanj:
J K Q(t+1)0 0 Q(t)0 1 01 0 11 1 Q(t)’
Q(t) → Q(t+1) J K0 → 0 0 x0 → 1 1 x1 → 0 x 11 → 1 x 0
-
DIGITALNE STRUKTURE 9
Aplikacijska tabela:
t t+1Q2 Q1 Q2 Q1 J2 K2 J1 K10 0 0 1 0 x 1 x0 1 1 0 1 x x 11 0 0
0 x 1 0 x1 1 ? ? ? ? ? ?
Iz tabele lahko odberemo različne možnosti za funkcije
J1,K1,J2 in K2. Zznakom ? smo označili poljubno vrednost, izbrali
pa smo ga namesto Xzato, ker želimo poudariti razliko med tema
dvema redundancama. Z izbiroopredeljene vrednosti za X ne vplivamo
na način obnašanja vezja, z izbiro za? pa vplivamo na obnašanje
števnika, ko se zaradi različnih vzrokov znajdev stanju, ki ne
pripada izbrani števni sekvenci (Q1=Q2=1). Težimo sevedak
čimbolj preprostim funkcijam.
Dobimo funkcije, ki ne potrebujejo dodatne logike:
J2 = Q1, K2 = 1,J1 = Q
′2, K1 = 1
Zlahka se prepričamo, da se pri nobeni možni izbiri stanje
Q1=Q2=1 neohrani, celo nasprotno, pri poljubni izbiri navedeno
stanje preide v stanjeQ1=Q2=0.
Vezje:
Pri realizaciji s T-celicami bi rabili dodatna ALI-vrata
(preveri: T2 = Q1 ∨Q2, T1 = Q
′2). Lepo vidimo, da je JK-celica “močneǰsa” od T-celice.
-
DIGITALNE STRUKTURE 10
Oba števnika imata lepo lastnost, da je ena od pomnilnih celic
samo v enemstanju po vrednosti enaka 1. V primeru števnika za
modul m=3 sta toobe pomnilni celici, v primeru števnika za m=5 pa
pomnilna celica Q3. Takacelica služi kot signal TC. Če takega
signala ne bi bilo, bi ga morali generiratiz dodatnimi vrati.
Modul 6 lahko dobimo kot kaskado modulov 3 in 2 (3*2).
Izhod Q2 pri števniku za m=3 (oz. izhod Q3 pri števniku za
m=5) vežemona vhoda J in K dodatne pomnilne celice.
J Q
K Q ’
1
11 1
m=3 m=2
J Q
K Q’
J Q
K Q ’
2
2
CLK
Vhod za uro te celice vežemo na števni vhod števnika za m=3
(oz. m=5).Dobimo števno sekvenco, ki jo prikazuje tabela:
Q Q2 Q10 0 00 0 10 1 01 0 01 0 11 1 00 0 0
Dobili smo števnik za modul štetja m=6(3*2) (oz. m=10).
Q1 in Q2 tvorita modul 3, obenem pa Q2 na vsake tri urine cikle
z enicospremeni stanje celice Q3, ki je vezana kot T-celica in
“šteje” po modulu 2.Q2 je torej uporabljen kot TC; lahko pa bi
tudi Q1 “obračal” celico Q3, ker
-
DIGITALNE STRUKTURE 11
je prav tako le enkrat na enici znotraj števne sekvence m=3. Q3
spremenistanje pri naslednji fronti ure, kajti vezava je
sinhrona.
Zaporedje ni “čisto” binarno (0, 1, 2, 4, 5, 6).
Tako kot modul 6 (3*2) lahko dobimo tudi modul 10 (5*2)
J
Km=5
Q Q Q1 2 3
Q
Q Q3 Q2 Q10 0 0 00 0 0 10 0 1 00 0 1 10 1 0 01 0 0 01 0 0 11 0 1
01 0 1 11 1 0 00 0 0 0
Pogoj je seveda, da je signal, ki spreminja 4.celico, le enkrat
na enici znotrajštevne sekvence. Če števnik m=5 šteje binarno
od 0 do 4, je to izpolnjenoza Q3.
Pomnilno celico Q lahko uvrstimo tudi na zadnje mesto. Števnik
šteje sedajdvakrat po m=3 ali 5. Prvič po sodih številih in
drugič po lihih. Tako kodoimenujemo biternarna (oz. bikvinarna),
način štetja pa je prikazan v tabelisamo za biternarno kodo:
Q2 Q1 Q0 0 00 1 01 0 00 0 10 1 11 0 10 0 0
Šteje 0, 2, 4, 1, 3, 5, 0 ...
-
DIGITALNE STRUKTURE 12
Števniki v VHDL-u
– 4-bitni binarni stevec z reset in dir (smer stetja)
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity stevec is
port( clk: in std_logic;
reset: in std_logic;
dir: in std_logic;
count: buffer unsigned(3 downto 0));
end entity stevec;
architecture arc of stevec is
begin
p0: process (clk, reset)
begin
if reset = ’1’ then -- asinhroni reset
count
-
DIGITALNE STRUKTURE 13
m=3 m=2Q2 Q1 Q00 0 00 1 1*0 1 01 0 11 0 00 0 10 0 0
*Q0 povzroči spremembo na Q2, Q1
Sprememba na krmiljenih celicah je takoǰsnja (tj. ne po 1
ciklu), ker sokrmiljeni urini vhodi celic.
Isti modul (tj. 6) lahko dobimo tudi kot 3*2:
m=2 m=3Q2 Q1 Q00 0 00 0 11 1* 01 0 01 0 10 1 00 0 0
*Q1 povzroči spremembo na Q2
-
DIGITALNE STRUKTURE 14
-
DIGITALNE STRUKTUREZapiski predavanj
Branko Šter, Ljubo Pipan
8 Paralelni števniki
Paralelni števniki (“parallel counters”) so kombinacijske
strukture, ki seštevajoveč sumandov hkrati. Torej ne gre za
sekvenčni števnik oz. števec!
Hitro paralelno seštevanje več sumandov (z mikroprocesorji oz.
mikrokrmil-niki pogosto ni zadovoljivo).
Paralelni števniki - osnove
PŠ (m,k,n)m .. število sumandov k .. dolžina vsote n ..
dolžina sumandov
n 1x ... x x 1...x ... x xx ... x x m
x ... x x x x x xk 1
Npr. PŠ (3,6,4) sešteva tri 4-bitna števila, vsota pa je
lahko največ 45, zatoje 6-bitna:
1
-
DIGITALNE STRUKTURE 2
x x x xx x x xx x x x
x x x x x x
Če je n=1, pǐsemo kar PŠ(m,k). V tem primeru seštevamo
posamezne bite,tj. število enic med temi biti.
Polni seštevalnik (“Full Adder” - FA) je PŠ (3,2):
x 1x 1x 1
x x max: 1 1(c) (s)
Vhodi so enakovredni (zato sta izhoda simetrični funkciji);
cout je izhod zvečjo težo.
Polovični seštevalnik (HA) je PŠ (2,2):
x 1x 1
x x max: 1 0(c) (s)
Zato lahko FA in HA obravnavamo, kot kaže slika:
-
DIGITALNE STRUKTURE 3
Primer.
PŠ (5,3) oz. (5,3,1) sešteva 5 enakovrednih bitov:
x 1x 1x 1x 1x 1
x x x max: 1 0 1
PŠ (5,3) lahko zgradimo kot 3 (simetrične) funkcije 5
spremenljivk:
s0 = f(1,3,5)(x1, ..., x5) ... s0 = 1 pri lihem številu enic na
vhodu (XOR)s1 = f(2,3)(x1, ..., x5) ... s1 = 1 pri 2 ali 3 enicahs2
= f(4,5)(x1, ..., x5) ... s2 = 1 pri 4 ali 5 enicah
-
DIGITALNE STRUKTURE 4
Očitno lahko PŠ realiziramo s FM, npr. ROM (PLA,PAL slab