14
DIGITALNE STRUKTURE Zapiski predavanj Branko ˇ Ster, Ljubo Pipan 7 ˇ Stevniki Sploˇ sno ˇ Stevniki (ali tudi ˇ stevci) so strukture, ki omogoˇ cajo ˇ stetje. Preˇ stejemo lahko, kolikokrat se je ˇ stevni (urin) signal spremenil iz ene logiˇ cne vrednosti v drugo (”urina fronta”). ˇ Stevni signal oznaˇ cujemo obiˇ cajno s CLK, CP ali α. ˇ Stevnik kot delilnik frekvence: ˇ stevnik tudi deli frekvenco urinega signala z razliˇ cnimi delitelji. Po izvedbi loˇ cimo ˇ stevnike v dve osnovni skupini: - sinhroni ˇ stevniki: vse spremembe vrednosti pomnilnih celic, ki sestavl- jajo ˇ stevnik, se dogajajo ”istoˇ casno”, in - asinhroni ˇ stevniki: sprememba vrednosti ene pomnilne celice povzroˇ ci spremembo v drugi. Moˇ zna je tudi kombinacija obeh izvedb, deli ˇ stevnika delujejo sinhrono, med sabo pa se krmilijo asinhrono. ˇ Stevilo sprememb na ˇ stevnem vhodu, ki so potrebne, da se ˇ stevnik vrne v zaˇ cetno stanje, imenujemo modul ˇ stetja m. 1

dsp7.pdf

Embed Size (px)

Citation preview

  • DIGITALNE STRUKTUREZapiski predavanj

    Branko Ster, Ljubo Pipan

    7 Stevniki

    Splosno

    Stevniki (ali tudi stevci) so strukture, ki omogocajo stetje. Prestejemo lahko,kolikokrat se je stevni (urin) signal spremenil iz ene logicne vrednosti v drugo(urina fronta). Stevni signal oznacujemo obicajno s CLK, CP ali .

    Stevnik kot delilnik frekvence: stevnik tudi deli frekvenco urinega signala zrazlicnimi delitelji.

    Po izvedbi locimo stevnike v dve osnovni skupini:

    - sinhroni stevniki: vse spremembe vrednosti pomnilnih celic, ki sestavl-jajo stevnik, se dogajajo istocasno, in

    - asinhroni stevniki: sprememba vrednosti ene pomnilne celice povzrocispremembo v drugi.

    Mozna je tudi kombinacija obeh izvedb, deli stevnika delujejo sinhrono, medsabo pa se krmilijo asinhrono.

    Stevilo sprememb na stevnem vhodu, ki so potrebne, da se stevnik vrne vzacetno stanje, imenujemo modul stetja m.

    1

  • DIGITALNE STRUKTURE 2

    Asinhroni stevniki

    Pomnilne celice asinhronega stevnika so prozene z izhodi drugih celic in torejnimajo skupnega urinega signala.

    Asinhroni stevnik v najbolj preprosti obliki je veriga T-pomnilnih celic (oz.JK).

    T ... toggle (primerno za stevnike)

    To je idealiziran potek.

    Vidimo, da steje 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 steje torej binarno navzgor.

    Sami ugotovite, kako stejeta varianti z zadnjo fronto (s Q oz. Q).

    Vsak stevnik (ne samo asinhroni) pristeva in odsteva, odvisno od tega, katereizhode pomnilnih celic opazujemo: nenegirane ali negirane. O tem se prepricamo,ce pregledamo tabelo za primer stevnika s tremi pomnilnimi celicami:

    Q2 Q1 Q0 Q2 Q1 Q00 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 stevnikih pogosto indekse izhodov pomnilnih celic zacenjamo z 0 in ne z1. Taka izbira omogoca ujemanje indeksa s potenco stevila 2 na opazovanemmestu stevnika.

    Prehod iz vrstice v tabeli v naslednjo vrstico je pogojen z zahtevano frontosignala na stevnem vhodu stevnika.

    Dobra lastnost asinhronih stevnikov je, da ne potrebujejo dodatne (kombi-nacijske) logike.

  • DIGITALNE STRUKTURE 4

    Slaba lastnost pa je sirjenje zakasnitev (zato se asinhronemu stevniku recetudi ripple counter) in posledicno s tem pojavljanje nezazelenih vmes-nih stanj (trava oz. glitches) ter omejitev frekvence zaradi kopicenjazakasnitev. Najvecja mozna frekvenca ure je dolocena s stevilom celic inzakasnitvijo posamezne celice.

    Potreba po dodatni logiki se pojavi sele, ce zelimo izvrsiti detekcijo izbranegastanja stevnika (dekodiranje). Potrebujemo operator IN, na njegovem izhodupa se pojavi signal, ki ima poleg pricakovane vrednosti 1 (v izbranem stanju)se doloceno stevilo kratek cas trajajocih vrednosti, ki so prav tako 1 ali setej vrednosti priblizujejo (trava).

    Razlog za ta pojav je asinhrona izvedba stevnika. Predhodne pomnilne celicev verigi so ze spremenile svoje stanje, ko sledece pomnilne celice v nizu sevztrajajo v starem stanju. Casovni diagram na sliki za stevnik, sestavljen iztreh pomnilnih celic, ki uposteva idealizirane zamuditve preklopov pomnilnihcelic, nam daje odgovor, zakaj prihaja do laznihvrednosti signalov (trave):

    Odvisno od dolzine niza-verige in izbrane konjunkcije dobimo razlicno dolgeimpulze z logicno vrednostjo 1.

    Ce prozi spremembe vrednosti prednja fronta na izhodu iz pomnilne celice,potem je najvec motilnih signalov v realizaciji konjunkcije

  • DIGITALNE STRUKTURE 5

    z1 = Q0Q1...Qn1

    in nic motilnih signalov v realizaciji konjunkcije

    z2 = Q0Q

    1...Q

    n1

    Bralec se lahko sam preprica, da imamo obratne razmere, ce prozijo spre-membe zadnje fronte na izhodu iz pomnilne celice. Signala z1 in z2 stauporabna le kot staticna in ju ne moremo voditi na vhod, ki je dinamicen!

    Sinhroni stevniki

    Na osnovi znanih metod iz sinteze sekvencnih vezij lahko zgradimo sinhronestevnike za poljuben modul stetja in tudi poljuben nacin (kodo) stetja.

    Oglejmo si najprej takoimenovane ciste binarne stevnike. Stejejo 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 ze znan nacin, na sliki pa je prikazana resitev zD-celico.

  • DIGITALNE STRUKTURE 6

    Locimo 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

    stevnik z razsirjanjem prenosa ognemo se vecanju stevila vhodov v vhodno konjunkcijo vendar moramo to placati z zamuditvijo signala Vsota zamuditev v konjunkcijah od konjunkcije za prvo pomnilnocelico v nizu do izhoda konjunkcije za zadnjo pomnilno celico vnizu doloca najkrajso periodo-takt signala, ki ga vodimo na stevnivhod stevnika.

    problem pri velikih modulih stetja; zato pri njih posebni prijeme,ki jih bomo spoznali v nadaljevanju.

    74163: sinhroni 4-bitni binarni stevnik

    ___ ____

  • 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 nizjih modulov stetja je mogoce z dekodiranjem dolocenega stanjain vezavo na vhod reset (CLR).

    Kljub temu, da sinhroni stevnik (npr. 163) na izhodih nima trave, pridekodiranju stanj stevnika lahko dobimo travo zaradi dekodirnika. To veljaza prehode med stanji, ko se spremeni vec kot 1 pomnilna celica, torej jeHammingova razdalja vec kot 1. Npr. pri stetju do 7:

    001 v 010 (preko 000 oz. 011)011 v 100 (vec moznosti)101 v 110 (2 moznosti)

    Kaskada sinhronih stevnikov

    Da dobimo visji modul stetja, zdruzimo v kaskado dva ali vec stevnikov,tako da posamezen stevnik s signalom TC (terminal count; tudi RCO- ripple-carry output) omogoci naslednji visji stevnik na vhodu CTEN(count enable; tudi CNT).

    Pri paralelni izvedbi je signal CE posameznega stevnika konjunkcija vsehprejsnjih TC (poleg glavnega Enable):

  • DIGITALNE STRUKTURE 8

    Problem je lahko veliko stevilo vhodov v konjunkcijo. Temu se lahko izognemos serijsko izvedbo, kjer pa se signal omogoci siri asinhrono, kar zniza na-jvecjo mozno frekvenco stevnika.

    Kriticna je zakasnitev od spremembe vrednosti prve celice v nizu do vhoda vzadnjo celico v nizu. Vse ostale celice dosezejo stanje, ki je pogoj za prozenjepomnilne celice, ze prej. To informacijo si bloki posredujejo v verigi prekoizhodov CEO (omogoci stetje) in vhodov CET (prozi stetje). Izhod prvegabloka CEO pa je vezan dodatno Se na poseben vhod ostalih blokov CEP(vzporedno dovoli stetje). Bloki v nizu ne stejejo tako dolgo, dokler nistaizpolnjena oba pogoja CET in CEP.

    Kaskadni stevniki se pogosto uporabljajo za deljenje urinega signala visokefrekvence.

    Kaskada sinhronih stevnikov za modula 3 in 5

    Stevniki za modula m=3 in m=5 so zanimivi predvsem zaradi desetiskegastevilskega sistema in merjenja casa.

    Modul stetja 3 dobimo lahko z dvema JK-celicama brez dodatne logike. Spomocjo tabele JK-celice poiscemo J in K za vse mozne 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 razlicne moznosti za funkcije J1,K1,J2 in K2. Zznakom ? smo oznacili poljubno vrednost, izbrali pa smo ga namesto Xzato, ker zelimo poudariti razliko med tema dvema redundancama. Z izbiroopredeljene vrednosti za X ne vplivamo na nacin obnasanja vezja, z izbiro za? pa vplivamo na obnasanje stevnika, ko se zaradi razlicnih vzrokov znajdev stanju, ki ne pripada izbrani stevni sekvenci (Q1=Q2=1). Tezimo sevedak cimbolj preprostim funkcijam.

    Dobimo funkcije, ki ne potrebujejo dodatne logike:

    J2 = Q1, K2 = 1,J1 = Q

    2, K1 = 1

    Zlahka se prepricamo, da se pri nobeni mozni 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 mocnejsa od T-celice.

  • DIGITALNE STRUKTURE 10

    Oba stevnika imata lepo lastnost, da je ena od pomnilnih celic samo v enemstanju po vrednosti enaka 1. V primeru stevnika za modul m=3 sta toobe pomnilni celici, v primeru stevnika za m=5 pa pomnilna celica Q3. Takacelica sluzi kot signal TC. Ce 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 stevniku za m=3 (oz. izhod Q3 pri stevniku za m=5) vezemona vhoda J in K dodatne pomnilne celice.

    JQ

    KQ

    1

    11 1

    m=3 m=2

    JQ

    KQ

    JQ

    KQ

    2

    2

    CLK

    Vhod za uro te celice vezemo na stevni vhod stevnika za m=3 (oz. m=5).Dobimo stevno sekvenco, ki jo prikazuje tabela:

    Q Q2 Q10 0 00 0 10 1 01 0 01 0 11 1 00 0 0

    Dobili smo stevnik za modul stetja 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 steje po modulu 2.Q2 je torej uporabljen kot TC; lahko pa bi tudi Q1 obracal celico Q3, ker

  • DIGITALNE STRUKTURE 11

    je prav tako le enkrat na enici znotraj stevne sekvence m=3. Q3 spremenistanje pri naslednji fronti ure, kajti vezava je sinhrona.

    Zaporedje ni cisto 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 znotrajstevne sekvence. Ce stevnik m=5 steje binarno od 0 do 4, je to izpolnjenoza Q3.

    Pomnilno celico Q lahko uvrstimo tudi na zadnje mesto. Stevnik steje sedajdvakrat po m=3 ali 5. Prvic po sodih stevilih in drugic po lihih. Tako kodoimenujemo biternarna (oz. bikvinarna), nacin stetja 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

    Steje 0, 2, 4, 1, 3, 5, 0 ...

  • DIGITALNE STRUKTURE 12

    Stevniki 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 povzroci spremembo na Q2, Q1

    Sprememba na krmiljenih celicah je takojsnja (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 povzroci spremembo na Q2

  • DIGITALNE STRUKTURE 14