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