201209260605


Digitaaltehnika

Kursuse materjalid:
Eesti keeles:
            
  1. U.Kald. Impulss- ja arvutus- tehnika alused, 1990
         
Teistes keeltes

  2. C. Petzold, Code: The Hidden Language of Computer Hardware and Software, 2001 (tõlge vene keelde).
  
  +------------------------------------------------------------+            
  |Tunde   Teema, sisu kirjeldus                          Kodus|
  +---+--+--------------------------------------------------+--+
  | 1.| 2| Numbri sümbol (digit), Arv (number), Järk,       | 4|
  |   |  | Alus. Arvusüsteemid. Polünoom. Positsioonilised  |  |
  |   |  | arvusüsteemid. 2-nd-, 8-nd-, 10-nd- ning 16-nd-  |  |
  |   |  | süsteem. Arvude ülekandmine 2-nd, 8-nd, 10-nd,   |  |
  |   |  | 16-nd arvusüsteemide vahel. Arvude ülekandmine   |  |
  |   |  | arvusüsteemide vahel - harjutused                |  |
  |   |  |                                                  |  |
  | 2.| 2| Boole algebra alused. Mis on algebra? Predikaadi | 4|
  |   |  | mõiste. Tõesustabel. Ühe ja kahe argumendi       |  |
  |   |  | loogikafunktsioonid. Loogikaoperatsioonid. Ning. |  |
  |   |  | Või. Ei. Mittesamaväärsus. Funktsionaalselt      |  |
  |   |  | täielikud süsteemid. Minimaalsed täielikud       |  |
  |   |  | süsteemid                                        |  |
  |   |  |                                                  |  |
  | 3.| 2| Loogika seadused. Avaldiste lihtsustamine        | 4|
  |   |  | analüütilisel kujul. Loogikafunktsioonide        |  |
  |   |  | kanoonilised kujud. Avaldiste lihtstustamine.    |  |
  |   |  |                                                  |  |
  | 4.| 2| Logisim simulaatori programm. Avaldiste          | 4|
  |   |  | genereerimine ning lihtsustamine programmi       |  |
  |   |  | abil. Karnaugh kaart. Loogikafunktsioonide       |  |
  |   |  | lihtsustamine Karnaugh kaardi abil.              |  |
  |   |  | Mittetäielikult määratud loogikafunktsioonide    |  |
  |   |  | lihtsustamine Karnaugh kaardi abil.              |  |
  |   |  |                                                  |  |
  | 5.| 2| Kombinatsioonskeemid. Ning, Või, Ei              | 4|
  |   |  | loogikaelementide tähistused. DL, TTL, CMOS      |  |
  |   |  | loogika elemendi skeem. Kombinatsioonskeemide    |  |
  |   |  | süntees. PAL, CPLD, FPGA programmeeritavad       |  |
  |   |  | skeemid.                                         |  |
  |   |  |                                                  |  |
  | 6.| 2| Kombinatsioonskeemide süntees. PAL, CPLD, FPGA   | 4|
  |   |  | programmeeritavad skeemid. Dekoodrid. Koodrid.   |  |
  |   |  | Koodimuundurid.                                  |  |
  |   |  |                                                  |  |
  | 7.| 2| Siin. Aadressi, andmete ja juhtimissignaalide    | 4| 
  |   |  | siinid. Demultipleksorid. Multipleksorid.        |  |
  |   |  |                                                  |  |
  | 8.| 2| Veerandsummaator. Poolsummaator. Summaator.      | 4| 
  |   |  | Ühe- ja mitmejärgulised summaatorid. Täiendkood. |  |
  |   |  | Lahutamine summaatori abil.                      |  |
  |   |  |                                                  |  |
  | 9.| 2| Korrutamine ja jagamine kahendkoodis.            | 4| 
  |   |  | Asünkroonse korrutamise- ja jagamise- skeemid.   |  |
  |   |  | ALU.                                             |  |
  |   |  |                                                  |  |
  |10.| 2| Järjestikskeemid. Ajadiagrammid ning             | 4|
  |   |  | olekutabelid. Asünkroonsed trigerid. RS triger.  |  |
  |   |  | Sünkroonsed trigerid. D triger. JK triger.       |  |
  |   |  | T triger. Dünaamilised trigerid.                 |  |
  |   |  |                                                  |  |
  |11.| 2| Lõppautomaadid. Moore ja Mealy automaadid.       | 4| 
  |   |  | Rööpregistrid. Jadaregistrid. Nihkregistrid.     |  |
  |   |  |                                                  |  |
  |12.| 2| Jadakahendloendur. Paralleelkahendloendur.       | 2|
  |   |  | Täisarvulise loendusteguriga loendurid.          |  |
  |   |  | Sagedusjagurid.                                  |  |
  |   |  |                                                  |  |
  |13.| 2| Püsimälu ROM, PROM. Staatiline mälu SRAM. NAND   | 4|
  |   |  | ja NOR välkmälu.                                 |  |
  |   |  |                                                  |  |
  |14.| 2| A/D ja D/A muundurid. Kokkuvõte                  | 2|
  +---+--+--------------------------------------------------+--+

0. Sissejuhatus
       
Miks ma pean tahtma digitaaltehnikat õppida ?

Kaaludes olemasolevaid digitaaltehnika vahendeid ja kättesaadavat informatsiooni nende loomise kohta peaks nimetama järgnevad motivaatorid aine õppimiseks:

  - Üks peamisi motivaatoreid on raha, mis moodustab koos finantstoimingute arvutivõrkudega iseõppivaid neuraalvõrke, (mis- tänu iseõppimisele, muudavad enda käitumisviisi).

  - Oluline motivaator - loominguline janu, raha rolli vähendamine motivaatorite loetelus - näiteks OpenHardware projektid.
    
  - Administratiivne bürokraatlik motivaator (kui ma tean ainet siis saan diplomi tööd jne).
    
  - Olles euroalas, mis on detsentraliseeritum kui dollari tsoon, oluliseks motivaatoriks on uudishimu - iga isik peab omama objektiivset maailmapilti (mõista kuid mitte pimesi uskuda, seal kus see on võimalik).
    
  - Soov luua täiuslik masin, mis ületab selle looja võimalusi (inimene, teine ​​masin, tihemini nende kombinatsioon).
    
  - Ajalooliselt kogunenud teadmiste kasutamine. Ma tahan kasutada omal ajal selgeks tehtud ladina keelt ja digitaaltehnikat, näiteks meditsiinis, PLC programmeerimiseks jms).
    
  - Sarnasuse printsiip. Loodan kasutada neid teadmisi teistes valdkondades (näiteks geneetikas).
    
  - Teadmised ajaloo suhtes (kes on huvitatud ajaloost):

        http://en.wikipedia.org/wiki/History_of_computing
        http://simh.trailing-edge.com/

Digitaalskeemide loomise kaasaegsed meetodid.

  - maatriksite struktuuri programmeerimine (PAL, FPGA, CPLD).
  
  - riistvara loomine programmeerimise teel. Skeemide kirjelduskeeled (hardware description language - HDL) VHSIC, 
    Abel, VHDL, Verilog jne. Selliste skeemide simulatsioonid kirjeldusetapil.
    
  - Sünkroonsed ja asünkroonsed ahelad. Energia säästmine asünkroonsetes ahelates. ARM arhitektuurist. (Cortex mikroprotsessorid ja FPGA)
    
  - Riistvara-põhised arvusüsteemid alusega, mis erineb kahest (hübriidahelad 2-4 ja 2-8. MLC (Multi Level Cell) välkmälu (inglise flash mälu) SDXC mälukaartides ja SSD kõvaketastes.
    
    
Infojuurdepääsu piiramisest.

                              "Information wants to be free"
                              
                              1994. Autor teadmata.

Mitte kõik infoallikad on kättesaadavad ja üldkasutatavad.

  - Selleks, et teha kindlaks üliõpilase võimekust kasutada teatud tüüpi informatsiooni, pole vajadust sellist infot avaldada üldkasutatavas kohas. Peale edukat matemaatika, füüsika, elektroonika testide sooritamist võib anda juurdepääsuõigusi registreerimise kaudu. Andmete vargus piiratud ligipääsuga aladest ja nende avalikustamine torrent- ja sarnastes võrkudes kannab, tavaliselt, ajaliselt ja sisu poolt piiratud iseloomu.
    
Kättesaadav informatsioon omab väärtust pärast tagasiside saamist selle kasutamise kohta.


Näited

  - Malearvuti  (1997 mängib maailmameisteriga ja võidab).
  - Haiguste diagnostika kasutades otsingumootoreid (Google, Yahoo, Bing, Yandex jms) (http://vimeo.com/33395872)
  - Tantsivad android-robotid (http://www.3dnews.ru/news/631470, http://www.3dnews.ru/editorial/630543)

  
Harjutused

Nimetage muinasjutud, kus objekte number kolm.

  0. "Three little pigs"
  1. "Beauty and the beast" - kolm tütart
  2. "Kolm pähklid tuhkatriinu jaoks"
  3. Paljudes muinasjuttudes kuningal oli kolm poega


1. Kursuse sisu.

Meie hakkame vaatama siin selliseid elektroonskeeme, mis opereerivad kahe pingetasemega (voolu-) - loogiline null ja loogiline üks. Eeldatakse, et olete tuttav elektrotehnika ja elektroonika alustega. Harjutuste läbitamiseks kodus ja klassides, ning loengute illustreerimiseks me kasutame digitaalsete elektronahelatele simulaatori Logisim, mida saab alla laadida aadressilt:
 
  http://ozark.hendrix.edu/~Burch/logisim/download.xhtml
  http://sourceforge.net/projects/circuit/files/latest/download
  
Kursus hõlmab nii kombinatsioon- kui järjestik- ahelaid. Küllalt lihtsate vahenditega võib ise ehitada primitiivseid mehaanilisi loogikaelemente: puhver, inverter ning element "VÕI" (OR). Kuna üks kõik millise raskusastmega digitaalskeemi loomiseks pole vaja midagi enamat, tekkib kiusatus teha väga palju selliseid elemente (Konrad Zuse, 1938, umbes 100.000 ühikut, arvuti Z-1. Selle arvuti lühikirjeldus on esitatud allpool
 
  Mälu: 64 22-bitise sõna
  Sisekella taktsagedus: 1 Hz
  Registrite arv: 2 (22 bitti)
  Kaal: 1 tonn
  Aritmeetikaseade ALU: liidab või lahutab 5 sekundiga, 
                        korrutab või jagab 10 sekundiga
  Sisend-väljund: kümnendsüsteem, ujuva komaga arvud.
  
Allikas:
   
  http://en.wikipedia.org/wiki/Z1_(computer)#Specifications
                       
Suvalise keerulise mehhanilise masina põhivaenlane on tema madal töökindlusega. (Pärast kaks aastat kestnud ehitamise Z1 ei töötanud). Kuid meie probleem ei ole selles, et ise taastada Terminatori (vt filmi Terminator, 1984) liivast (mis kindlasti võtab kaua aega), kuid selles et anda ettekujutust, kuidas digitaalsed seadmed töötavad. Selle kohta, miks see võib olla kasulik, oli juttu sissejuhatuses. 

Alltoodud kursuse märkmed olid kirjutatud 2002 aastal (tuleb meeles pidada, et kümme aastat tagasi inimesed olid võimelised ennustama piisava täpsusega 2012-2013 aastatel toodetud arvutiseadmete põhiparameetreid. Mis polnud üldse selge, on see, millistel põhimõtetel kujuneb välja masinate (arvutivõrgud, robotid) ja inimeste kooseksisteerimine . Edasi toome 2002 aasta materjali, kus on parandatud mõned trükivead ning muudetud dokumendi vorming.
 

Digitaalsed seadmed. Märkmed.
20021231
Kirill Nelus 


Digitaaltehnika teoreetilised alused.

- Binaarne aritmeetika.
- Boole ​​algebra.
- Lõppautomaatide alused.


Arvusüsteemid.

Number. Arv. Järk. Arvusüsteemid.

Probleem: Kokku lugeda mammuteid. Ei tea, kuidas loendada. Me seostame igat mammutit sümboliga "I". Loendame:

   Mammut -> I
   mammut, mammut -> II
   mammut, mammut, mammut -> III
   mammut, mammut, mammut, mammut -> IIII
   mammut, mammut, mammut, mammut, mammut -> IIIII
   ...
   
Peale teatud trenni "III" tajutakse ühe märgina. Tekib uus probleem: IIIII ning IIIIII vaheline erinevus ei torka silma. Seome "IIIII" sümboliga "V". Loendame:

   IIIII -> V
   IIIIII -> VI
   IIIIIII -> VII
   ...
   
Seitset tajume kui viit ja kahte. Tekib liitmise mõte. Juurutame uued sümbolid: "+" lisada, X - kümme. Võtame kasutusele arvu mõiste - koguse (quantity) esitamine numbrite (digit) abil. Arvutame:

   V + V = X
   V + V + V = XV
   ...

Märkime, et asjad on seotud omavahel. Tekib korrutamise mõtte. Juurutame uut sümboli "*".

   I * V = V
   II * V = X
   III * V = XV
   ...
   
Märkime, et arvu võib kirjutada korrutiste summana:

   III * X + V * I

Tekib positsioonilise tähistuse (notation) mõtte. Juurutame uued sümbolid: 1, 2, 3, 4, 5, 6, 7, 8, 9 - numbrid. Kolmteist on kirjutame kui 13 (või 1 * x + 3). (Vaata lisaks http://et.wikipedia.org/wiki/Positsiooniline_arvusüsteem). 

Tekib probleem - kuidas, näiteks kirjutada arvu "kümme" kasutades uusi märke (1..9)? Juurutame uut sümboli "0". Kümme kirjutame kui 10 (või 1 * X + 0 * 1)

Kirjutame aina suuremaid numbre: 666 1984

Numbreid arvus on nii palju, et juba hakkame lugema numbreid, millest see arv koosneb. Numbri positsioon arvus (järjekorra number paremalt vasakule alates nullist) nimetame numbrikohaks (Kaasik, Ü. (2002). Matemaatikaleksikon).

  number: 1 9 8 4
  järk:   3 2 1 0

Märgime seostatavust - number tuleb korrutada kümnega nii mitu korda, mis on selle numbri järk arvus. Arv mida kirjutatakse kasutades seda reeglit, nimetame positsiooniliseks.

   666 = 6 * 10 * 10 + 6 * 10 + 6
  1984 = 1 * 10 * 10 * 10 + 9 * 10 * 10 + 8 * 10 + 4

Kehtestame uus tehe - aste.

    0         1          2               3
  10 = 1    10 = 10    10 = 10 * 10    10 = 10 * 10 * 10

Üldistame: arvu esitamine avaldisena nimetame "polünoom"iks.

             3        2        1        0
  1984   = 10 * 1 + 10 * 9 + 10 * 8 + 10 * 4
      10

Number 10 nimetame aluseks. Planeedil möödub miljon aastat. Kella järgi möödub 2 minutit. Algab 20-s sajand.


Binaarne süsteem.

Arvutame aina suuremaid arve. Ei ole aega mõelda. Soovime luua arvutusmasina. Paneme tähele, et alust 10 valiti sõrmede arvu tõttu. Järeldame, et on võimalik luua ka teised positsioonilised arvusüsteemid. Otsime mis võiks olla sellise süsteemi minimaalne alus. See on 1. Proovime loendada mammuteid - null, null ... Kummaline, mälu järgi ennem see õnnestus. Suurendame alust. See on 2. Loendame: 
 
  0, 1, 10, 11, 100. 
  
Kirjutame polünoomi alusega 2.

           3       2       1       0
  1101  = 2 * 1 + 2 * 1 + 2 * 0 + 2 * 1
      2


Bitt. Nibble. Bait. Sõna.

Loendame aina suuremaid arve. 100101001010011110101010110111010. Virvendab silmades. Tutvustame uusi mõisteid. Ühejärgulne binaararv - bitt, 4 bitti - nibble, 8 bitti - bait. 2, 4 või 8 baiti - sõna. Seega 2, 4 või 8? Aga ükskõik. Tekitame segaduse.


16-ne arvusüsteem.
------------------
Moodustame 4-bittised grupid paremalt vasakule, kui viimane rühm on puudulik, täiendame nullidega vasakult poolt. Viime sisse uued tähendused:

  0000 - 0     0001 - 1      0010 - 2        0011 - 3
  0100 - 4     0101 - 5      0110 - 6        0111 - 7
  1000 - 8     1001 - 9      1010 - A        1011 - B
  1100 - C     1101 - D      1110 - E        1111 - F

Näide:

  1001 0100 1010 0111 1010 1010 0001 0101
    9    4    A    7    A    A    1    5

  10010100101001111010101000010101  = 94A7AA15
                                  2           16

Tulemuseks on süsteem nimega 16-ne, selleks, et märgistada arvu kuuluvust antud süsteemile, kasutame indeksi (16).


8-ne arvusüsteem.
-----------------
Küsimus: milleks gruppeerida nelja kaupa? Lähtudes soovist tekitada pahandusi (nali) gruppeerime paremalt vasakule 3 bitti kaupa. Kui viimane grupp on puudulik, täindame nullidega vasakult. Viime sisse uued tähendused:

  000 - 0     001 - 1      010 - 2        011 - 3
  100 - 4     101 - 5      110 - 6        111 - 7

Näide:

  010 010 100 101 001 111 010 101 000 010 101
   2   2   4   5   1   7   2   5   0   2   5

  10010100101001111010101000010101  = 22451725025
                                  2              8

Tulemuseks on süsteem nimega 8-ne, selleks et märgistada arvu kuuluvust antud süsteemile, kasutame indeksi (8). Süsteemide rohkus ajab lõplikult segi. Hakkame kahtlema isegi selles, mis eile tundus kindel. Et taastada mõtteselgust vajame usaldusväärset loogikat.


Sissejuhatus Boole'i ​​algebrasse.

Matemaatik George Boole mõtiskles loogikast. Püüame lihtsustada keelt - eemaldame ajad. 1847 aastal. Matemaatik Boole mõtiskleb loogikast. Eemaldame ruumi - all, üleval, ees, taga, kaugel, sees, jne. Veel on võimalik esitada informatsiooni. Kokkuvõtteks: objekt - nimisõna, tegu (action) - tegusõna.


Algebra mõiste. Avaldus. Boole'i ​​algebra. Inversioon. Tõeväärtustabel. Funktsioon ühe või kahe muutujaga.

Viime sisse uue mõiste: algebra - objektid ja tehted nendega. Märkame: tihti lause võib olla hinnatud kui tõde või vale:

  Boole sündis Marsil (väär)
  Mammutid on surnud  (tõde)

Viime sisse uued sümbolid: 0 - vale, 1 - tõde. Määrame Boole'i ​​algebra objektid {0, 1}. Määrame Boole'i muutuja: x võib olla 0 või 1. On olemas funktsionaalne sõltuvus siis, kui y väärtus sõltub x väärtusest. Kirjutame seda nagu y = v (x). Kuna x esineb ainult kahe väärtusega, 0 või 1, Boole'i ​​funktsiooni võib esindada tabelina.
 
Näiteks:

    x  |  v(x)
   ----+-----
    1  |  0
    0  |  1

See on Tõesustabel. Proovime teada saada, kui palju erinevaid ühe muutujaga Boole'i ​​funktsioone eksisteerib? Selleks, loeme kokku kõik võimalikud kombinatsioonid.

   x  | v0(x) v1(x) v2(x) v3(x)
  ----+-------------------------
   0  |  0     1     0     1
   1  |  0     0     1     1

Funktsioon v0 (x) ja v3 (x) on degenereerunud - nad ei sõltu x-ist. Funktsioon v2 (x) on triviaalne v2 (x) = x. Seega praktiline huvi on ainult funktsioonil v1 (x). Nimetame seda funktsiooni EI (Inversioon). Me kirjutame y(x) = x' või lühidalt y = x'.

   Inversioon  x  |  x'
              ----+----
    y = x'     0  |  1
               1  |  0

Selgitame välja kõik võimalikud kahe muutuja funktsioonid y=w(x,t).

   x t | w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 wA wB wC wD wE wF
  -----+-------------------------------------------------
   0 0 | 0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1
   0 1 | 0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1
   1 0 | 0  0  1  1  0  0  1  1  0  0  1  1  0  0  1  1
   1 1 | 0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1

Neid on 16. Viime läbi missi kandidaadi valimised. Nagu ka ühe muutuja funktsioonide puhul, tabelis on täiesti degenereerunud funktsioonid (w0, W15) mis ei sõltu ei x, ega t muutujast. Lisaks on funktsioonid, mis sõltuvad ainult ühest muutujast, ning seetõttu kuuluvad nad ühe muutujaga funktsioonide klassi:

  w3(x,t)  = w(x) = x
  w5(x,t)  = w(t) = t
  w10(x,t) = w(t) = t'
  w12(x,t) = w(x) = x'

Teises voorus esineb 10 funktsiooni. Sümmeetria on ilus. Kolmandasse vooru pääsevad funktsioonid w1, W6, W7, W8, W9, W14. Nende jaoks kehtib sümmeetria avaldis:
                           
  w (x, t) = w (t, x)

  Nimetame neid. w1 - NING, konjunktsioon, AND
                 W6 - Mittesamaväärsus, XOR
                 W7 - VÕI, disjunktsioon, OR
                 W8 - VÕI-EI, Pierce Arrow
                 W9 - Samaväärsus, EQV
                W14 - NAND, Sheffer stroke
                     http://en.wikipedia.org/wiki/Sheffer_stroke

Üks asümmeetriline funktsioon ka ei saa nimetamata jääda.

            w13 - implikatsioon (KUI -> SIIS).

Funktsioone on liiga palju. Märkame, et mõned funktsioonid saab väljendada teiste abil. Toome sisse funktsionaalselt täieliku süsteemi kontseptsiooni - funktsioonide hulk, mille kaudu saab väljendada kõiki teisi. Näiteks JA, VÕI, EI. Otsime minimaalsed funktsioonide komplektid - (minimaalne alus). Näiteks NAND. Vaatame funktsioonidele nagu elementaartehetele objektidega. Selle asemel, et kirjutada f(x,t) toome sisse kirje x f t. Toome sisse uued sümbolid: 

  +  disjunktsioon,
  *  konjunktsioon,
  =  samaväärsus 
  -> implikatsioon. 
  
Näiteks:

     y = w1( a, w7( b, c)) nüüd kirjutame kui y = a * ( b + c )

Võtame kasutusele keerulise avaldise mõiste - mis koosneb mitmest operatsioonist aluste (minimaalsete funktsionaalselt täielikude süsteemide, MFTS) hulgast. Võtame kasutusele prioriteedi mõiste - millises järjekorras tehteid sooritada. Prioriteedi määrame võimalikkude prioriteetide loetelust. Näiteks MFTS NING-VÕI-EI võib kasutada kahte erinevat prioriteetide jada:

  EI, JA, VÕI
  EI, VÕI, JA

Lisaks valime  kahest reeglist selle, mis hakkas meeldima:

  - kui tehetel on võrdne prioriteet, sooritame tehted vasakult paremale
    
  - kui tehetel on võrdne prioriteet, sooritame tehted paremalt vasakule

Tehingute sooritamise järjekorra muutmiseks, võtame kasutusele sulud (). Nüüd, lõpuks, oleme valmis avaldisi (väljendeid) kirjutama .


Boole ​​algebra teoreemid ja seadused.

Kirjutame seadusi. Avaldise väärtus, mis seadust moodustab, on alati tõde.

  - Peegeldus           x = x
  - Eituse eitus        x = x''
  - Sümmeetria          kui a = b, siis b = a.
  - Transitiivsus       kui a = b ja b = c, siis a = c
  - Tühi hulk           x * 0 = 0, x + 0 = x
  - Universaalne hulk   x * 1 = x, x + 1 = 1
  - Täiendus            x + !x = 1, x * !x = 0
  - (Idempotence)       x * x * ... * x = x, 
                        x + x + ... + x = x
Seadused

  - Kommutatiivne       a + b = b + a, a * b = b * a
  - Assotsiatiivne      (a * b) * c = a * (b * c), 
                        (a + b) + c = a + (b + c)
  - Distributiivne      a * (b + c) = a * b + * c, 
                        a + (b * c) = (a + b) * (a + c)

  - D'Morgani valem     (a + b + ... + z)' =
                        a' * b' * ... * z', 
                        (a * b * ... * z)' =
                        a' + b' + ... + z'

Tõestame tõeväärtustabeli abil. Näiteks sümmeetria. Väljend "kui a võrdub b-ga, siis b võrdub a-ga" võib olla kirja pandud järgmise loogilise väljendina:

  w13( w9(a,b), w9(b,a))  (funktsioonide abil)
  (a = b) -> (b = a)      (operatsioonide abil)

  a  b | a=b | b=a | (a=b)->(b=a)
  -----+-----+-----+--------------
  0  0 |  1  |  1  |      1
  0  1 |  0  |  0  |      1
  1  0 |  0  |  0  |      1
  1  1 |  1  |  1  |      1

Tuletame meelde, et teoreeme saab tõestada aksioomide alusel. Millised seadused kuuluvad otse aksioomide hulka ja milliseid on vaja  tõestada aksioomide alusel? Siin on jälle MTFS-ga sarnane juhtum - saab valida erinevate võimaluste hulgast.


Boole'i ​​funktsioonide Kanoonilised kujud.

Otsime seost tõeväärtustabeliga ja Boole ​​avaldisega. Tuletame meelde NING operatsiooni omaduse ("tõde" ainult siis, kui kõik argumentide väärtused on "tõde") ning jõuame TDNK-ni (taandatud distributiivne normaalne kuju), mis on mintermide disjunktsioon. (minterm on selline konjunktsioon, kus osalevad kõik funktsiooni argumendid). Et saada TDNK tõeväärtustabelist, koostame mintermid ainult nende ridade jaoks, kus funktsioon on 1. TKNK, ehk taandatud konjunktiivne normaalne kuju (makstermide konjunktsioon), vastupidiselt TDNK-le koostame nende ridade jaoks, kus funktsioon võrdub nulliga). 

Näide:

   a b c | f
  -------+---
   0 0 0 | 1
   0 0 1 | 0
   0 1 0 | 0  TDNK  y = a'*b'*c' +  a'*b*c + a*b*c' + a*b*c
   0 1 1 | 1  TKNK  у = (a'+b'+c)*(a'+b +c')*(a+b'+c')*(a+b'+c)
   1 0 0 | 0
   1 0 1 | 0
   1 1 0 | 1
   1 1 1 | 1


Loogikaavaldiste lihtsustamine analüütilisel teel.

Et lihtsustada keeruline loogikaavaldis kasutame järgmiseid reegleid:

  - Neeldumine     a + a * b      = a
  - Kleepimine     a * b + a * b' = a
  - Arendus        a = a * b + a * b'

TDNK-avaldisi lihtsustame kasutades neeldumis- ja kleepimis- meetodeid. Saavutame DNK (disjuntiivse normaalse kuju). DNK on endiselt konjunktsioonide disjunktsioon, aga mitte tingimata lihtimlikantide vahel, kuid implikandid ei sisalda enam kõiki funktsiooni muutujaid.


Sõna. Sõna pikkus. Sõna kaal. Hammingi-kaugus.

Võtsime kasutusele mitmeid uusi mõisteid. Võtame veelgi. Sõna - kõikide funktsiooni muutujate konkreetsed väärtused. Sõna pikkus - bittide arv komplektis. Sõna kaal - loogiliste ühtede arv komplektis. Hammingi kaugus - mitmes positsioonis kaks sõna erinevad üks teisest.
 
Nii see on. Vundament on ehitatud. Üks paljudest võimalikest, temas on vastuolusid ja nendele, kes on valmis laskuma veel madalamale jääb ainult öelda jumalagajätu sõnu: "Ma vajusin põhja ning järsku kuulsin, et keegi koputab alt.. "
 

Gray kood. Karnaugh kaart.

Proovime lihtsustada mõne TDNK kleepimismeetodiga. Kleepida saab naabersõnu, st sõnu, mille vahel Hammingi kaugus võrdub ühega. Näiteks ab'cd ja abcd on naabrid, kuid ab'cd ja abcd' mitte. Tõesustabelis me paigaldame komplekte nendele vastavatele binaararvude kasvujärjekorras, mis tähendab et kõrval reas võib seista mittenaaber- komplekt. Näiteks sõnade paarid (00, 01), (10, 11) - on naabersõnad, kuid (01, 10) - mitte. Gray paigaldas sõnu nii, et üksteise kõrval alati seisavad naabersõnad. Veelgi enam, alguses ja lõpus seisavad ka naabersõnad. (esimene ja viimane sõna on naabrid omavahel). 

   a   b |       
  -------+---   
   0   0 |      
   0   1 |
   1   0 |           
   1   1 |
   
Nii näeb välja Gray kood kahekohaliste komplektide jaoks.

  00, 01, 11, 10
  
Kolmekohaliste komplektide jaoks omame 000, 001, 011, 010, 110, 111, 101, 100. Karnaugh leiutas tõesustabeli täita Gray koodi järjekorras:
        
          a       
       ------     
  +----+----+     
  |y(0)|y(1)|                
  +----+----+
  
Ühe muutuja funktsioonide puhul meie kaart on ainult kahe lahtriga.

  - Strip tähistab piirkonda, kus muutuja on 1.
  - lahtritesse kirjutame loogilise funktsiooni väärtusi.
  
Kaks muutujat: Kuna üksteise kõrval seisvad komplektid on naaberkomplektid, riba tuleb sõõrikuks (thor) liimida, mõtteliselt.

         ab  ab  ab  ab  
  Gray:  00  01  11  10    
                                
                       
    b ---------     
  +---+---+---+---+      
  |   |   |   |   |  
  +---+---+---+---+         
          --------- a
                                 
Kolme muutuja puhul:

         abc abc abc abc abc abc abc abc                                 
  Gray:  000 001 011 010 110 111 101 100
                        ----------------- c
        +---+---+---+---+---+---+---+---+
        |   |   |   |   |   |   |   |   |
        +---+---+---+---+---+---+---+---+
              b -----------------      
          a ---------     a ---------
                         
Mõra a muutuja tsoonis muudab kaardi vähem loetavaks. Karnaugh'l tekib teine ​​mõte. Kolmanda muutujа näitamiseks kasutada teist koordinaati:

          b              
      ---------          
  +---+---+---+---+ |           
  |   |   |   |   | | a 
  +---+---+---+---+ | 
  |   |   |   |   |   
  +---+---+---+---+   
          ---------   
              c       
              
Nüüd on lihtne koostada kaarti nelja muutuja jaoks:

                 d
             ---------
     +---+---+---+---+|  
     |   |   |   |   ||  
    |+---+---+---+---+| b
    ||   |   |   |   ||  
  a |+---+---+---+---+|  
    ||   |   |   |   |   
    |+---+---+---+---+   
     |   |   |   |   |   
     +---+---+---+---+   
         ---------       
             c           

Mõtteliselt keerame kokku mõlemad kaardid sõõrikuteks, 5 ja 6 muutujad on ilusam paigaldada läbipaistvas telliskivis. Mõtteliselt keerame kokku teda neljamõõduliseks hüpersõõrikuks. Ja nii edasi ..


Digitaalsignaali Mõiste . Seos loogilise avaldise ja skeemi vahel. Kombinatsioonskeemi mõiste. NING JA, VÕI, EI tähistused skeemidel.

Välk lööb puu sisse ja puu murdub. See on elekter. Tekib idee ehitada loogilise funktsiooni arvutaja elektri põhjal. Võtame kasutusele digitaalsignaali mõiste: 0 volti - loogiline null. 5 volti - loogiline 1. Kuid kui vastupidi ? Võib olla vastupidi - seda nimetatakse inverteeritud loogikaks. Aga kui mitte 5 volti ? Võib olla mitte 5.
 
Ühendame lambi patareiga. Põleb! Lisame kaks normaalselt avatud kontakti järjestiku. Vool jookseb siis, kui mõlemad kontaktid on suletud. See on funktsioon NING (joonis a). Lisame kaks normaalselt avatud kontakti paralleelselt. Vool jookseb siis, kui vähemalt üks kontaktidest on suletud. See on funktsioon "VÕI" (Joonis b)). Lisame normaalselt suletud kontakti (mis läheb lahti siis, kui nupule vajutada). See on inverter, ehk element "EI" (joonis c)). 

       |      |
      -+-    -+-
  +---o o----o o---+
  |                |
  =               (x)
 ---               |
  |                |
  +-------o--------+
          |
         ---    
         ///      a)

          |
         -+- 
  +------o o-------+
  |                |
  |       |        |
  |      -+-       |
  +------o o-------+
  |                |
  =               (x)
 ---               |
  |                |
  +-------o--------+
          |
         ---
         ///      b)
         
          |
  +-----o | o------+
  |     --+--      |
  =               (x)
 ---               |
  |                |
  +-------o--------+
          |
         ---    
         ///      c)
         
Asendame nupu ankruga (mis lülitab kontakti) varustatud elektromagnetiga. See on relee. Releedel võib panna kokku relee ahelaid. Järgmine skeem ei kujuta endast midagi enamat, kui NING-tüüpi loogilist elementi. Anname signaale skeemi sisenditele, ning väljundis saame nende konjunktsiooni.

                                             +--------------+
                                             |              |
                    /\    /\    /\           o|             |
      _____________/  \  /  \  /  \  +-][=====+             |
     |                 \/    \/    \/|       o|             |
     |                               |       |              |
     |                               |       |             (x)
     |                               |       |              |
     |              /\    /\    /\   |       o |            |
     |           __/  \  /  \  /  \  +-] [=====+            |
     |          |      \/    \/    \/|       o |            |
     |          |                    |       |              |
     |          |                    +-------+              |
    |o       |  o                            |              |
  --+      --+                              -+-             |
    |o       |  o                          --+--            | 
     |          |                            |              |
    -+-        -+-                          -+-            -+-
    ///        ///                          ///            ///

Võttes arvesse, et sisenditele anname loogikafunktsiooni argumentide väärtustele vastavad signaalid ja väljundist loeme selle funktsiooni väärtuse antud sisendsignaalide jaoks, saame konstrueerida ka keerulisemaid ahelaid.
 
Meile läheb vaja VÕI, NING, EI elemente. Näitame nende tähistusi skeemidel:

    +-----+   
    |     |   
  --+     O-- 
    |     |   
    +-----+  a) 

    +-----+        +-----+   
    |   & |        |   & |   
  --+     |      --+     |   
    |     +--      |     O-- 
  --+     |      --+     |   
    |     |        |     |   
    +-----+  b)    +-----+  c)

    +-----+        +-----+   
    |   1 |        |   1 |   
  --+     |      --+     |   
    |     +--      |     O-- 
  --+     |      --+     |   
    |     |        |     |   
    +-----+  d)    +-----+  e)
  
a) EI b) NING c) NING-EI (NAND) d) VÕI e) VÕI-EI (NOR) elemendid

Ehitame, näiteks sellist skeemi, nagu "mittesamaväärsus":

                       y = a * b' + a' * b
        +-----+    
        |     |    
   --+--+     O--+
     |  |     |  |    
     |  +-----+  |  +-----+                 
     |           |  |   & |
     +-----+     +--+     |  
           |        |     +--+      
     +-----|--------+     |  |  +-----+  
     |     |        |     |  |  |   1 |  
     |     |        +-----+  +--+     |  
     |     |                    |     +----
     |     |        +-----+  +--+     |  
     |     |        |   & |  |  |     |  
     |     +--------+     |  |  +-----+  
     |              |     +--+
     |           +--+     |   
     |           |  |     |   
     |  +-----+  |  +-----+   
     |  |     |  |  
   --+--+     O--+  
        |     |    
        +-----+    


  
                  Digitaaltehnoloogia on jumaliku päritoluga.
                  Analoogtehnoloogiat lõid dinosaurused. 
                  Kuid igaüks nendest ületab oma loojaid.

                                    Fibonacci arvuti

         
Õppetund 2.

Spetsiaalsed kombinatsioonskeemid.

Loome erinevaid loogikaskeeme. Kõige kasulikumatele neist anname nimetusi. Toome sisse kombinatsioonskeemi mõiste - väljundi signaal sõltub ainult hetkel olevatest sisendsignaalidest. Mis tähendab, et sellistel skeemidel ei ole võimet mäletada. Me räägime nendest koomiksite abil. Koomikseid vaadake Logisim simulaatori vahendusel, mida saab tasuta allalaadida aadressilt:
 
  http://ozark.hendrix.edu/~Burch/logisim/

Skeemid katavad järgmiseid teemasid:

  - Dekoodrid. Kombinatsioonskeemi süntees dekoodrite abil. Koodrid, koodimuundurid.
    
  - Demultiplekserid. Multiplekserid. Multipleksereid kasutav kombinatsioonskeemi süntees.


Liitmine kahendkoodis. Summaator.
                                                   
  0 + 0 = 0.  0 + 1 = 1.  1 + 0 = 1.  1 + 1 = 10.  

                    1        0
  1 + 1 = 10 = 1 * 2  + 0 * 2 

Juhul, kui sõnad on ühest bittist pikemad liidame igas järgus paremalt vasakule. Toimub ülekanne vanemasse järku. Ühesõnaga, (liitmist tulpa)  mõistab igaüks, sõnaline seletus on liiga pikk ning jällegi mitmeti mõistetav. Näide:

  ülekanne   111
             010110
           + 
             011100
           =
             110010

Või keegi ei mõista? Võtame kasutusele mooduli 2 järgi liitmise mõiste (+). Teiste sõnadega seda nimetatakse veerandsummeerimiseks.

      a  b | s        Vastav TDNK:     s = a'* b + b'* a.
     ------+---            
      0  0 | 0        s = a (+) b     
      0  1 | 1             
      1  0 | 1             
      1  1 | 0

Vaatame, millal tuleb kanda üle? See on funktsioon NING.

      a  b | c        Vastav TDNK:     c = a * b
     ------+--- 
      0  0 | 0  
      0  1 | 0  
      1  0 | 0  
      1  1 | 1  

Ehitame skeemi, mis arvutab nii ülekandmist kui veerandsummat Nimetame ta poolsummaatoriks.

          +-----+                            
  a       |     |                            
  --+--+--+     O--+                         
    |  |  |     |  |                         
    |  |  +-----+  |  +-----+                
    |  |           |  |   & |                
    |  +-----+     +--+     |                
    |        |        |     +--+             
    |  +-----|--------+     |  |  +-----+    
    |  |     |        |     |  |  |   1 |    
    |  |     |        +-----+  +--+     |   s 
    |  |     |                    |     +----
    |  |     |        +-----+  +--+     |    
    |  |     |        |   & |  |  |     |    
    |  |     +--------+     |  |  +-----+    
    |  |              |     +--+             
    |  |           +--+     |                
    |  |           |  |     |                
    |  |  +-----+  |  +-----+                
  b |  |  |     |  |                         
  --(--+--+     O--+                         
    |  |  |     |                 +-----+    
    |  |  +-----+                 |   1 |    
    |  +--------------------------+     |   c 
    |                             |     +----
    +-----------------------------+     |    
                                  |     |    
                                  +-----+    

Loome skeemi, mis arvutab täissummat (ühes bittis). Vaatame tõesustabelit, kus c - on ülekanne nooremast järgust,

  q0 - a ja b vaheline poolsumma, q1 - q0 ja c vaheline poolsumma,
  c0 - ülekande a ja b liitmise jaoks,
  C1 - ülekande q0 ja c liitmise jaoks:

    а   b   c  | q0 | c0 | q1 | c1 | summa | ülekanne
  -------------+----+----+----+----+-------+---------
    0   0   0  | 0  | 0  | 0  | 0  | 0     |   0
    0   0   1  | 0  | 0  | 1  | 0  | 1     |   0
    0   1   0  | 1  | 0  | 1  | 0  | 1     |   0
    0   1   1  | 1  | 0  | 0  | 1  | 0     |   1
    1   0   0  | 1  | 0  | 1  | 0  | 1     |   0
    1   0   1  | 1  | 0  | 0  | 1  | 0     |   1
    1   1   0  | 0  | 1  | 0  | 0  | 0     |   1
    1   1   1  | 0  | 1  | 0  | 1  | 1     |   1

Summat saame nii: ( a (+) b ) (+) c. Mis tähendab, et poolsummaatorit tuleb kasutada kaks korda.

Ülekandmine on funktsioon c0 + c1. Vaja läheb NING elementi. Siis täissummaator hakkab nägema välja selliselt:

        +---+                   
  a     |   |                   
  --+-+-+   O-+                 
    | | |   | |                 
    | | +---+ | +---+           
    | |       | | & |           
    | +---+   +-+   |           
    |     |     |   +-+         
    | +---|-----+   | | +---+   
    | |   |     |   | | | 1 |       +---+                       
    | |   |     +---+ +-+   |       |   |                      
    | |   |             |   +---+-+-+   O-+                 
    | |   |     +---+ +-+   |   | | |   | |                   
    | |   |     | & | | |   |   | | +---+ | +---+             
    | |   +-----+   | | +---+   | |       | | & |             
    | |         |   +-+         | +---+   +-+   |             
    | |       +-+   |           |     |     |   +-+          
    | |       | |   |           | +---|-----+   | | +---+    
    | | +---+ | +---+           | |   |     |   | | | 1 |    
  b | | |   | |                 | |   |     +---+ +-+   |     s  
  --(-+-+   O-+                 | |   |             |   +------
    | | |   |           +---+   | |   |     +---+ +-+   |    
    | | +---+           | 1 |   | |   |     | & | | |   |    
    | +-----------------+   |   | |   +-----+   | | +---+   
    |                   |   +-+ | |         |   +-+        
    +-------------------+   | | | |       +-+   |            
                        |   | | | |       | |   |            
                        +---+ | | | +---+ | +---+            
  c                           | | | |   | |                
  ----------------------------(-(-+-+   O-+                
                              | | | |   |       +---+  
                              | | | +---+       | 1 |   +---+  
                              | | +-------------+   |   | 1 |  
                              | |               |   +---+   | c 
                              | +---------------+   |   |   +--
                              |                 |   | +-+   |  
                              |                 +---+ | |   |  
                              +-----------------------+ +---+ 
                               
Kombineerime täissummatoreid lisades neid üksteise järgi ning saame rööpsummatorit ülekandebiti järjestiku leviga. Simulatsioonskeeme leiate Compute kaustast.


Negatiivbinaararvude esindamine. Otsene, inverteeritud ning täiendkoodid. Täiendkoodi genereerimisalgorutm.

Hoiame binaararve registris. Asjaolu näitaja , et register
sisaldab negatiivarvu, on "1" vanemas bittis. Kõige rohkem
levinud on otsene, inverteeritud (1s-täiendus) ja täiendav (2s 
täiendus) koodid. Inversse koodi puhul pööratakse ringi (0 -> 1,
1 -> 0) kõik bitid registris. Näiteks

  -5   = 1010  . 
    10       2
                                                                        
Täiendkoodi saavutame kui lahutame arvu absoluutväärte kahest
astmes n, kus n on bittide arv registris. On pandud tähele et
kehtib järgmine algorütm: vaatame arvubittid paremalt vasakule. 
Kui märkame esimest ühte, pöörame kõik hilisemad bittid.

Näiteks kood on 00110100. Siis tema lisakood 11001100.

Simulatsioonskeeme leiate Compute kaustast.
  

Lahutamine.
----------
Märkame, et on kaks erinevat operatsiooni "-": 

  - binaarne lahutamine (a - b), ja 
  - unaarne miinus (-a) arvu märgi muutmiseks. 
  
Hoiame negatiivseid arve täindkoodis, lahutamiseks kasutame
summaatorit:

  a - b = a + (-b)
  
Korrutamine.
----------
Korrutamine paljuski sarnaneb "korrutamisega tulpa" 
kümnendarvusüsteemi jaoks. Liidame loomulikult binaararve.
Simulatsioonskeeme leiate Compute kaustast.


Jagamine.
--------------------------------
Jagamist võib ehitada kombinatsioonskeemina. Simulatsioonskeeme 
leiate Compute kaustast.


Järjestikskeemid.
-----------------
Moore automaat. Mealy automaat.
-------------------------------

Automaat Huffman-Mealy.

        \---------+ x0 | KC | z0 +---------\
    In   \        |    |    |    |          \  Out
         /        .    .    .    .          /
        /---------+ xL |    | zN +---------/
                  +----+    +----+
            +-----+ u0 |    | w0 +-----+
            |     |    |    |    |     |
            .     .    .    .    .     |
            |     |    |    |    |     |
            |  +--+ uM |    | wM +--+  |
            |  |  +----+----+----+  |  |
            |  |                    |  |
            |  |  +----+----+----+  |  |
            |  +--+ DM | KC | QM +--+  |
            |     |    |    |    |     |
            |  +-->    |    |    |     |
            |  |  +----+----+----+     |
            |  |                       |
            .  .  . . . . . . . . .    .
            |  |                       |
            |  |  +----+----+----+     |
            +--)--+ D0 | KC | Q0 +-----+
               |  |    |    |    |
    Clock -----+-->    |    |    |
                  +----+----+----+

Moore automaat.

  +---------------------------------------------------+
  |                                                   |
  |                                                   |
  |  +---------------------------------------------+  |
  |  |  +---------------------------------------+  |  |
  |  |  |                                       |  |  |
  |  |  |  +----+----+----+        +--+---+--+  |  |  |
  |  |  +--+ y0 | KS | z0 +--------+D0|   |Q0+--+--)--)--> Out 0
  |  |     |    |    |    |        |  |   |  |     |  |
  |  |     |    |    |    |    +--->  |   |  |     |  |
  |  |     |    |    |    |    |   +--+---+--+     |  |
  |  |     |    |    |    |    |                   |  |
  |  |     |    |    |    |    |   +--+---+--+     |  |
  |  +-----+ y1 |    | z1 +----)---+D1|   |Q1+-----+--)--> Out 1
  |        |    |    |    |    |   |  |   |  |        |
  |        |    |    |    |    +--->  |   |  |        |
  |        |    |    |    |    |   +--+---+--+        |
  |        |    |    |    |    .                      .
  |        |    |    |    |    .   . . . . . .        .
  |        |    |    |    |    .                      .
  |        |    |    |    |    |   +--+---+--+        |
  +--------+ yN |    | zN +----)---+DN|   |QN+--------+--> Out N
           +----+    |----|    |   |  |   |  |
  In 0 >---+ x0 |    |    |    +--->  |   |  |
           |    |    |    |    |   +--+---+--+
  In 1 >---+ x1 |    |    |    |
           .              .    .
           .              .    .
           .              .    .
  In M >---+ xM |    |    |    |
           +----+----+----+    |
                               |
  clock -----------------------+

Joonisel: KS - kombinatsioonskeem, D0 .. DN - mälu plokk
(N-bitine rööpregister, D-trigeritel.) Saab näidata, et Mealy
automaati alati saab asendada vastava Moore automaadiga. Kuid
selline asendusskeem pole alati lihtsam kui originaal.


Trigerid.
---------
Asünkroonne RS-triger. Paneme kokku NOR (VÕI-EI) elementidel.

                         +----------------- Q (otseväljund)
             +----+      |
    (S)et >--+   1|      |      +----+   
             |    o------+------+   1|      -
          +--+    |             |    o--+-- Q (inverteeritud
          |  +----+   (R)eset --+    |  |      väljund)
          |                     +----+  |
          |                             |
          +-----------------------------+
          
          -
Olekud RSQQ punktides (vaata joonist) on näidatud nii 
olekutabelina kui ka graafiliselt, mida kutsutakse 
ajadiagrammiks.

                     -
    aeg   | S  R  Q  Q
  --------+-------------
    t0    | 0  0  1  0
    t1    | 0  1  0  1
    t2    | 0  0  0  1
    t3    | 1  0  1  0
    t4    | 0  0  1  0  
    t5    | 1  1  0  0
    t6    | 0  0  x  x
    
  S ^
    |               -       -
    |              | |     | |
    |--------------   -----   -----
    +--+---+---+---+---+---+---+---->
       t0  t1  t2  t3  t4  t5  t6
  R ^
    |       -               -
    |      | |             | |
    |------   -------------   -----
    +--+---+---+---+---+---+---+---->
       t0  t1  t2  t3  t4  t5  t6
  Q ^
    |-------         -------
    |       |       |       |   XXX
    |        -------         ---
    +--+---+---+---+---+---+---+---->
  -    t0  t1  t2  t3  t4  t5  t6
  Q ^
    |    -------
    |   |       |               XXX
    |---         ---------------
    +--+---+---+---+---+---+---+---->
       t0  t1  t2  t3  t4  t5  t6
   
Väljumine olekust, kus mõlemad väljundid on ühed, on 
ettearvamatu ja seetõttu S = 1, R = 1 olek on keelatud.

Tähistus:

      +---+----+---+
      |   | RS |   |
    --+ S |    | Q +--
      |   |    |   |
      |   |    | - |
    --+ R |    | Q o--
      |   |    |   |
      +---+----+---+

Koomiksid - matrjoškad. Igat järgmist skeemi ehitatakse eelneva 
põhjal:


Sünkroonne RS-triger.

Skeem põhineb asünkroonsel RS-trigeril.

             +---+   +---+----+---+
  Set   -----+  &|   |   | RS |   |
             |   +---+ S |    | Q +--
          +--+   |   |   |    |   |
          |  +---+   |   |    |   |
  Clock --+          |   |    |   |
          |  +---+   |   |    |   |
          +--+  &|   |   |    | - |
             |   +---+ R |    | Q o--
  Reset -----+   |   |   |    |   |
             +---+   +---+----+---+
             
Tähistus.

                     +---+----+---+
                     |   | RS |   |
                  ---+ S |    | Q +--
                     |   |    |   |
                     |   |    |   |
                  --->   |    |   |
                     |   |    |   |
                     |   |    | - |
                  ---+ R |    | Q o--
                     |   |    |   |
                     +---+----+---+
             

D-triger.

Skeem põhineb sünkroonsel RS-trigeril.

                     +---+----+---+
                     |   | RS |   |
  Data  --+----------+ S |    | Q +--
          |          |   |    |   |
          |          |   |    |   |
  Clock --)---------->   |    |   |
          |  +---+   |   |    |   |
          |  |   |   |   |    | - |
          +--+   o---+ R |    | Q o--
             |   |   |   |    |   |
             +---+   +---+----+---+
             
Tähistus.

                     +---+----+---+
                     |   | D  |   |
                  ---+ D |    | Q +--
                     |   |    |   |
                     |   |    | - |
                  --->   |    | Q o--
                     |   |    |   |
                     +---+----+---+
 

Kahetaktiline RS-triger.

                  +---+----+---+         +---+----+---+  
                  |   | RS |   |         |   | RS |   |  
   Set    --------+ S |    | Q +---------+ S |    | Q +--
                  |   |    |   |         |   |    |   |  
                  |   |    |   |         |   |    |   |  
             +---->   |    |   |    +---->   |    |   |  
             |    |   |    |   |    |    |   |    |   |  
             |    |   |    | - |    |    |   |    | - |  
   Reset  ---)----+ R |    | Q o----)----+ R |    | Q o--
             |    |   |    |   |    |    |   |    |   |  
             |    +---+----+---+    |    +---+----+---+  
             |                      |
             |        +----+        |
             |        |    |        |
   Clock  ---+--------+    o--------+
                      |    |
                      +----+

Tähistus

                +---+----+---+   
                |   | RS |   |   
          ------+ S | RS | Q +------
                |   |    |   |   
                |   |    |   |   
                |   |    |   |   
          ------>   |    |   |   
                |   |    |   |   
                |   |    |   |   
                |   |    | - |   
          ------+ R |    | Q o------
                |   |    |   |   
                +---+----+---+   


Kahetaktiline JK-triger.

       +-----------------------------------+
       |                                   |
       |  +----+       +---+----+---+      |
       +--+  & |       |   | RS |   |      |
          |    o-------+ S | RS | Q +---+--)-----
   J -----+    |       |   |    |   |   |  |
          +----+       |   |    |   |   |  |
                       |   |    |   |   |  |
   C ------------------>   |    |   |   |  |
                       |   |    |   |   |  |
          +----+       |   |    |   |   |  |
   K -----+  & |       |   |    | - |   |  |
          |    +-------+ R |    | Q o---)--+-----
       +--+    |       |   |    |   |   |
       |  +----+       +---+----+---+   |
       |                                |
       +--------------------------------+

Tähistus.

                +---+----+---+   
                |   | JK |   |   
          ------+ J |    | Q +------
                |   |    |   |   
                |   |    |   |   
                |   |    |   |   
          ------+ K |    |   |   
                |   |    |   |   
                +---+    |   |   
                |   |    | - |   
          ------> C |    | Q o------
                |   |    |   |   
                +---+----+---+   

Väljumine olekust, kus mõlemad väljundid on ühed, kasutatakse
sünkroimpulssite loetlemiseks ning erinevalt RS-trigerist, 
olekut j = 1, K = 1 aktiivselt kasutatakse.


T-triger.

T-triger kujutab endast JK-trigerit, kus omavahel on ühendatud 
J ja K sisendid. Kui sisendile T anda loogiline üks, siis 
selline triger hakkab ennast ümberpöörama iga kord kui saabub 
järjekordne sünkroimpulss.

                +---+----+---+   
                |   | JK |   |   
    T     ---+--+ J |    | Q +------
             |  |   |    |   |   
             |  |   |    |   |   
             |  |   |    |   |   
             +--+ K |    |   |   
                |   |    |   |   
                +---+    |   |   
                |   |    | - |   
    Clock ------> C |    | Q o------
                |   |    |   |   
                +---+----+---+   

Tähistus.

                +---+----+---+   
                |   | T  |   |   
          ------+ T |    | Q +------
                |   |    |   |   
                +---+    |   |   
                |   |    | - |   
          ------> C |    | Q o------
                |   |    |   |   
                +---+----+---+   


  - Dünaamilise sünkroimpulsi loomine kella signaali tõusva 
    frondi kohal.
    
  - Dünaamilise sünkroimpulsi loomine kella signaali langeva
    frondi kohal.    


Rööpregister.

D-trigerite arv, mis moodustavad rööpregistri, on tema 
maht (capacity). Juhtmete Žgutt () D0 .. DN moodustab šiini 
laiusega N.

Skeem:

                     +---+----+---+
                     |   | D  |   |
         Data 0 -----+ D |    | Q +--
                     |   |    |   |
                     |   |    | - |
                  +-->   |    | Q o--
                  |  |   |    |   |
                  |  +---+----+---+
                  |  +---+----+---+
                  |  |   | D  |   |
         Data 1 --)--+ D |    | Q +--
                  |  |   |    |   |
                  |  |   |    | - |
                  +-->   |    | Q o--
                  |  |   |    |   |
                  |  +---+----+---+
                  .  . . . . . . . .
                  |  +---+----+---+
                  |  |   | D  |   |
         Data N --)--+ D |    | Q +--
                  |  |   |    |   |
                  |  |   |    | - |
         Clock ---+-->   |    | Q o--
                     |   |    |   |
                     +---+----+---+
                     
Tähistus

                     +---+----+---+
                     |   | RG |   |
       Input  \------+ D0|    | Q0+----\  Output
       Data    \     | D1|    | Q1|     \ Data
       Bus     /     | ..|    | ..|     / Bus
              /------+ DN|    | QN+----/
                     |   |    |   |
                     +---+    |   |
       Clock  ------->   |    |   |
                     +---+----+---+
                    

Järjestikregistrid.

Skeemide failid simulaatorile asuvad kaustas registers.


Loendurid. Sagedusjagurid.

T-trigeri põhine järjestikloendur.

  1 --+------------------+------------------+----------------
      |                  |                  |                
      |  +-+---+-+       |  +-+---+-+       |  +-+---+-+     
      |  | | T | |       |  | | T | |       |  | | T | |     
      +--+T|   |Q+--+    +--+T|   |Q+--+    +--+T|   |Q+--+  
         | |   | |  |       | |   | |  |       | |   | |  |  
         +-+   | |  |       +-+   | |  |       +-+   | |  |  
         | |   | |  |       | |   | |  |       | |   | |  |  
  Clock ->C|   | |  +------->C|   | |  +------->C|   | |  +--
         | |   | |          | |   | |          | |   | |     
         +-+---+-+          +-+---+-+          +-+---+-+     


Rööploendur. ???

Loenduri saab luua kui osata kuidas loendada. Hetkel ei oska. Üks võimalus on lihtsalt mäletada jada 000, 001, 010, 011, 100, 110, 111. Nüüd on selge, et igat järgmist sammu võib välja arvutada käesolevast sammuseisust mingi loogilise funktsiooni abil.
 
Koostame tõesustabeli, lihtsustame funktsioonid Karnaugh kaartide abil.

   x2 x1 x0 | y2 y1 y0   
  ----------+----------  
   0  0  0  | 0  0  1    
   0  0  1  | 0  1  0    
   0  1  0  | 0  1  1    
   0  1  1  | 1  0  0    
   1  0  0  | 1  0  1    
   1  0  1  | 1  1  0    
   1  1  0  | 1  1  1    
   1  1  1  | 0  0  0


Meenutame, mis pesadesse millised read satuvad. Joonistame malli.

          x1             
       ---------         
     | +---+---+---+---+ 
  x0 | |011|111|101|001| 
     | +---+---+---+---+ 
       |010|110|100|000| 
       +---+---+---+---+ 
           ---------     
              x2

Nüüd on lihtne täita kaarte y2 y1, y0 jaoks:

  y2               y1               y0
        x1               x1               x1               
       -----            -----            -----       
     | +-+-+-+-+      | +-+-+-+-+      | +-+-+-+-+   
  x0 | |1|0|1|0|   x0 | |0|0|1|1|   x0 | |0|0|0|0|   
     | +-+-+-+-+      | +-+-+-+-+      | +-+-+-+-+   
       |0|1|1|0|        |1|1|0|0|        |1|1|1|1|   
       +-+-+-+-+        +-+-+-+-+        +-+-+-+-+   
         -----            -----            -----     
          x2               x2               x2

Nii et:
 
  y2 = x0 * x1 * x2' + (x0' + x1') * x2 
  y1 = x0 * x1' + x0' * x1           
  y0 = x0'

Loetleme: kombinatsioonahela (KA) sisendisse anname 000. Väljundist loeme 001. Peame meeles ja anname sisendile 001. Ja nii edasi.

  +------------------------------------------------------+
  |  +------------------------------------------------+  |
  |  |  +------------------------------------------+  |  |
  |  |  |                                          |  |  |
  |  |  |  +----+----+----+         +---+---+---+  |  |  |
  |  |  +--+ x0 | KS | y0 +---------+ D |   | Q +--+  |  |
  |  |     |    |    |    |         |   |   |   |     |  |
  |  |     |    |    |    |     +--->   |   |   |     |  |
  |  |     |    |    |    |     |   +---+---+---+     |  |
  |  |     |    |    |    |     |                     |  |
  |  |     |    |    |    |     |   +---+---+---+     |  |
  |  +-----+ x1 |    | y1 +-----)---+ D |   | Q +-----+  |
  |        |    |    |    |     |   |   |   |   |        |
  |        |    |    |    |     +--->   |   |   |        |
  |        |    |    |    |     |   +---+---+---+        |
  |        |    |    |    |     |                        |
  |        |    |    |    |     |   +---+---+---+        |
  +--------+ x2 |    | y2 +-----)---+ D |   | Q +--------+
           |    |    |    |     |   |   |   |   |
           |    |    |    |     +--->   |   |   |
           +----+----+----+     |   +---+---+---+
                                |
  clock ------------------------+
    
Skeemide failid simulaatorile asuvad kaustas counters. Sagedusjagurid, reeglina tehakse loendurite põhjal.
