-
Notifications
You must be signed in to change notification settings - Fork 6
/
kostra.tex
8746 lines (5432 loc) · 322 KB
/
kostra.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\documentclass[a4paper, 11pt]{report}
\usepackage[czech]{babel}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{geometry}
\usepackage{layout}
\geometry{
includeheadfoot,
hmargin=2.0cm,
vmargin={0cm, 1.0cm}
}
\usepackage{color}
\usepackage[unicode,colorlinks,hyperindex,plainpages=false,pdftex]{hyperref}
\usepackage{listings}
\definecolor{mygreen}{rgb}{0,0.6,0}
\lstset{language=VHDL,commentstyle=\color{mygreen},tabsize=4}
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\cfoot{\hfill © Jakuje \hfill \thepage }
\begin{document}
\ref{cha:1}
\ref{cha:2}
\ref{cha:3}
\ref{cha:4}
\ref{cha:5}
\ref{cha:6}
\ref{cha:7}
\ref{cha:8}
\ref{cha:9}
\ref{cha:10}
\ref{cha:11}
\ref{cha:12}
\ref{cha:13}
\ref{cha:14}
\ref{cha:15}
\ref{cha:16}
\ref{cha:17}
\ref{cha:18}
\ref{cha:19}
\ref{cha:20}
\ref{cha:21}
\ref{cha:22}
\ref{cha:23}
\ref{cha:24}
\ref{cha:25}
\ref{cha:26}
\ref{cha:27}
\ref{cha:28}
\ref{cha:29}
\ref{cha:30}
\ref{cha:31}
\ref{cha:32}
\ref{cha:33}
\ref{cha:34}
\ref{cha:35}
\ref{cha:36}
\ref{cha:37}
\ref{cha:38}
\ref{cha:39}
\ref{cha:40}
\newpage
\tableofcontents
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Princip činnosti polovodičových prvků} \label{cha:1}
2. semestr, IPR, cucáno z výcuců
(dioda, bipolární a unipolární tranzistor ve spínacím režimu, realizace logických členů NAND a NOR v technologii CMOS)
%1. Princip činnosti polovodičových prvků
%Za tu minutu jsem si moc nestihnul napsat, ale lepsi nez nic. Zacal jsem diodou, ale chteli napred vedet co je to polovodic. Rekl jsem ze to je material, ktery vede el. proud jen za urcitych podminek. Pak jsem tedy nakreslil PN prechod, oznacil +/- v propustnem smeru, zeptal se me, kde jsou diry a elektrony, tak jsem to tam nakreslil. Pak chtel VA charakteristiku, taky jsem nakreslil a zminil jsem, ze prurazem se znici (chtel jsem zminit Zenerovu jeste, ale nedostal jsem se), pak chtel nakreslit bipolarni a unipolarni tranzistor, bipolarni jsem nakrelil v kolecku a unipolarni bez kolecka, u unipolarniho jsem ale oznacil vyvody taky jako B, C, E (misto S, G, D), ale to mu az tak nevadilo. Zeptal se me asi spis ze zajimavosti, jestli vim, proc se kresli nekdy s koleckem a bez, normalne bych k tomu dosel, ale radsi jsem neriskoval, ze budu placat, tak rekl on, ze to je pouzdro a ze kdyz jsou na integrovanem obvode, tak jsou bez kolecka. Pak cim se tranzistor spina, tak jsem nejdriv spatne rikal ze napetim na bazi, pak jsem si uvedomil, ze zalezi na proudu mezi bazi a emitorem, pak se zeptal jak je to u toho unipolaru, tam jsem rikal ze je to tim napetim a ze se tam tvori vodivy "tunel" (misto kanal ). Nakonec chtel abych nakreslil zapojeni trazistoru ktere realizuji NAND, v tom jsem se motal. Zvonil budik ale nechal me tam neco stvorit, nakreslil jsem dva tranzistory v serii, tak se me alespon zeptal, co realizuje to co jsem nakreslil, tak jsem rikal ze AND (on doplnil ze s tim ze to neni komplementarni - chybi tam ty dalsi dva). V podstate dobry, zbytecne jsem zmatkoval, na nem bylo videt, ze by to chtel kvalitneji a na lepsi urovni. Zkouska tedy za C.
Polovodiče: Prvky 4. skupiny periodické tabulky. Používá se křemík. Má 4 valenční elektrony a vytváří krystalickou mřížku.
Vznikají dva materiály:
\begin{itemize}
\item Polovodiče typu P: Přidán prvek se 3 valenčními elektrony, vznikají \emph{díry}, které mají kladný náboj (pozitivní)
\item Polovodiče typu N: Přidán prvek s 5 valenčními elektrony, vznikají \emph{volné elektrony}, které mají nečekaně záporný náboj.
\end{itemize}
V materiálech jsou majoritní a minoritní nosiče proudu:
\begin{description}
\item[N] Majoritní elektronu, minoritní díry
\item[P] Majoritní díry, minoritní elektrony
\end{description}
\paragraph{PN přechod} difuze majoritních nosičů z jednoho polovodiče do druhého, vznik \emph{Potenciálové bariéry}
V propustném směru (PN, Od Anody ke Katodě) proud snižuje bariéru. V nepropustném zvyšuje.
\section{Polovodičová dioda}
PM přechod, ve kterém teče proud lépe v jednom směru (PN), než ve druhém. $-[P|N]- \qquad -_A[>_K-$
\paragraph{Přechodová charakteristika}
ideálně: proud teče pouze v jednom směru, ve druhém ne.
realita: do 0,6 V neteče, potom ano. V závěrném směru proud velmi malý až do závěrného/průrazného napětí, kdy se dioda zničí. (Rozepnutý/sepnutý spínač).
Různé druhy:
\begin{itemize}
\item Usměrňovací (střídavý proud)
\item Detekční a spínací (detektory, demodulátory)
\item Stabilizační a referenční, tzv. Zenerovy (v závěrném směru, vratný průraz)
\item Kapacitní
\item Luminiscenční (svítivé)
\item Fotodioda (vede proud pouze pokud je na světle)
\end{itemize}
\section{Tranzistory}
\subsection{Unipolární}
Řízené polem, FET -- Field Effect Tranzistor, Minimální spotřeba
Na přenosu se podílejí pouze majoritní nosiče v N. Na P je připojen G vstup (Gate), kterým se ovlivňuje průřez a odpor vodivé dráhy mezi D a S.
$\underline{[P^{\underline{[N^{\underline{[P]}}\quad]}}\quad]} \qquad \_^G\_\_| |\to_{--^S}^{--^D}$
\subsection{Bipolární}
Dva PN přechody. PNP nebo NPN. Vždy Kolektor, Báze, Emitor.
\paragraph{NPN} přechod emitor-báze ve směru propustném, báze-kolektor nepropustně.
Po připojení napětí na EB nastává rekombinace, proud je veden, ale část elektronů přechází do kolektoru a vede proud z Emitoru do Kolektoru. Přechod je pro majoritní nosiče nepropustný, ale minoritní propouští.
\paragraph{Zapojení se společným emitorem SE}
Na bázi je přiveden impulz, na výstupu je signál inverzní.
Lze určit zesilující činitel $\alpha = \frac{I_C}{I_E}$.
Dva stavy:
\begin{description}
\item[Rozpojeno] Na bázi napětí do 0,6 V, kolektorem nevede proud.
\item[Sepnuto] Na bázi větší napětí, vede proud jako sepnutý spínač.
\end{description}
\section{CMOS} Complementary Metal-Oxide-Semiconductors
Úspornost, pro integrované obvody, méně se zahřívají, než tranzistory.
Reprezentace logických hodnot:
\begin{itemize}
\item log 0: 0 - 1,5 V
\item mezitím nedefinováno
\item log 1: 3,5 - 5 V
\end{itemize}
Tři konektory: Gate, Source, Drain
Komplementární chování:
\begin{itemize}
\item S kanálem N: Napětí mezi Gate a Source řídí. Napětí na Drain $>$ Source
$V_{GS} = 0 \qquad R_{DS} = 10M\Omega$
$V_{GS} > $ prahová úroveň $ \qquad R_{DS} = 10\Omega$, vede proud.
\item S kanálem P: Napětí mezi Gate a Source řídí. Napětí na Source $>$ Drain
$V_{GS} = 0 \qquad R_{DS} = 10\Omega$, vede proud.
$V_{GS} > $ prahová úroveň $\qquad R_{DS} = 10M\Omega$
\end{itemize}
Obrázky NAND, NOR, Invertoru.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Kombinační logické obvody} \label{cha:2}
2. semestr, INC, 3. přednáška
(multiplexor, demultiplexor, kodér, dekodér, binární sčítačka)
Hierarchicky uspořádaný obvod, ve kterém jednotlivé komponentu zpracovávají informaci reprezentovanou v binární podobě (log. úrovně) a mezi sebou komunikují.
\subsection{Komponenty}
\begin{itemize}
\item Kombinační chování
\item Každý vstup připojen pouze k jednomu výstupu (výstupy nelze spojovat)
\item Struktura neobsahuje cykly (zpětné vazby)
\end{itemize}
Členy AND (\&), OR ($\geq{}1$), NOT (1$\circ$), NAND (\&$\circ$), NOR ($\geq{}1\circ$), XOR ($=1$).
Aktivitu v log. 0 značí $\circ$.
Moduly: Složitější komponenty složené z jednodušších log. členů. Vykonávají specifickou, často používanou funkci. Stavební bloky obvodu.
\section{Demultiplexor}
\begin{description}
\item[D] 1 datový vstup
\item[A] N adresových vstupů
\item[Y] $2^N$ výstupů
\end{description}
Přenos logické úrovně z D na jeden z výstupů Y. Ostatní neaktivné. Výstup určen binární hodnotou A.
DMX 1-$2^N$
\subsection{DMX 1-4}
\begin{itemize}
\item Vstupy: $D$, $A_1$, $A_0$
\item Výstupy: $Y_3$, $Y_2$, $Y_1$, $Y_0$
\end{itemize}
\begin{tabular}{ |c c c | c c c c |}
\hline
\multicolumn{3}{ | c |}{Vstupy} & \multicolumn{4}{ | c |}{Výstupy} \\
$D$ & $A_1$ & $A_0$ & $Y_3$ & $Y_2$ & $Y_1$ & $Y_0$ \\ \hline
0 & 0 & 0 & 0 & 0 & 0 & \textbf{0} \\
0 & 0 & 1 & 0 & 0 & \textbf{0} & 0 \\
0 & 1 & 0 & 0 & \textbf{0} & 0 & 0 \\
0 & 1 & 1 & \textbf{0} & 0 & 0 & 0 \\ \hline
1 & 0 & 0 & 0 & 0 & 0 & \textbf{1} \\
1 & 0 & 1 & 0 & 0 & \textbf{1} & 0 \\
1 & 1 & 0 & 0 & \textbf{1} & 0 & 0 \\
1 & 1 & 1 & \textbf{1} & 0 & 0 & 0 \\ \hline
\end{tabular}
\section{Dekodér}
Demultiplexor s D=1. N adresních vstupů, $2^N$ výstupů.
Použití: adresový dekodér, pro displeje, nebo paměti.
Může obsahovat povolovací vstup, potom se chová stejně jako DMX.
\subsection{DC 2 - 4}
\begin{tabular}{ |c c | c c c c |}
\hline
\multicolumn{2}{ | c |}{Vstupy} & \multicolumn{4}{ | c |}{Výstupy} \\
$A_1$ & $A_0$ & $Y_3$ & $Y_2$ & $Y_1$ & $Y_0$ \\ \hline
0 & 0 & 0 & 0 & 0 & \textbf{1} \\
0 & 1 & 0 & 0 & \textbf{1} & 0 \\
1 & 0 & 0 & \textbf{1} & 0 & 0 \\
1 & 1 & \textbf{1} & 0 & 0 & 0 \\ \hline
\end{tabular}
Pro více vstupů a výstupů: Paralelní struktura, Stromová (řešení omezeného množství vstupů AND), Maticová.
Použití pro generování logických funkcí: $X,Y,Z \to DC \to OR \to f(X,Y,Z)$
\subsection{Dekodér BCD}
Převod binárního čísla BCD na danou reprezentaci Dekodér 1 z 10.
\subsection{Dekodér pro 7segmentový displej}
Dekodér 1 z 7.
\section{Multiplexor}
\begin{description}
\item[S] N adresových vstupů
\item[D] $2^N$ datových vstupů
\item[Y] 1 datový výstup
\end{description}
MX, MUX. Opak demultiplexoru. Na základ binární kombinace na S přivede na Y jeden z vstupů na D.
Realizace log. funkcí: Proměnné na S, Na D přivést $V_{CC}$, nebo $GND$.
\section{Kodér}
\begin{description}
\item[X] $2^N$ datových vstupů
\item[A] N výstupů
\end{description}
Výstupem je binární reprezentace pořadí aktivního vstupu. Nedefinované chování při více aktivních vstupech.
\section{Prioritní kodér}
Výstupem navíc GS, které říká, zda je vybraný alespoň jeden vstup a má definované chování i pro více aktivních vstupů.
\section{Binární sčítačka poloviční (Half Adder)}
Nemá vstup carry (přenos z nižšího řádu)
\begin{description}
\item[Vstup] X, Y
\item[C] Carry, $ c = x \cdot y$
\item[S] Suma, $ s = y \oplus x$
\end{description}
\begin{tabular}{ |c | c | c | c |}
\hline
x & y & c & s \\ \hline
0 & 0 & 0 & 0 \\
0 & 1 & 0 & 1 \\
1 & 0 & 0 & 1 \\
1 & 1 & 1 & 0 \\ \hline
\end{tabular}
\section{Binární sčítačka úplná (Full Adder}
\begin{description}
\item[Vstup] $x_i$, $y_i$
\item[$c_{i-1}$] Vstup carry z nižšího řádu
\item[$c_i$] Carry, $ c_i = x_i \cdot y_i + x_i \cdot c_{i-1} + y_i \cdot c_{i-1}$
\item[$s_i$] Suma, $ s_i = x_i \oplus y_i \oplus c_{i-1}$
\end{description}
Vícebitová - zřetězení - levné a pomalé (přenos carry přes celou kaskádu). Zrychlení paralelní strukturou, nebo Carry lookahead.
\section{Další}
Test na shodu, Test na nulu, Komparátor, Válcový posouvač.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Sekvenční logické obvody } \label{cha:3}
2. semestr, INC, 4 - 6. přednáška
(klopné obvody, čítače, registry, stavové automaty – reprezentace a implementace)
\begin{description}
\item[Kombinační obvody] Výstup závislý pouze na hodnotách vstupního vektoru
\item[Sekvenční obvody] Hodnoty výstupního vektoru jsou funkcí současných i minulých hodnot vstupního vektoru
\end{description}
\begin{description}
\item[Synchronní] jednoduchý návrh, KO pro paměť stavu, synchronizováno hodinovým isgnálem, Vzorkování vstupů.
\item[Asynchronní] složitý návrh
\begin{description}
\item[Fundamentální režim činnosti] Vstup musí být stabilní, než se obvod ustálí, jednom okamžiku lze provést pouze jednu změnu vstupů a čekat na ustálení. Paměť = zpoždění.
\item[Pulsní režim činnosti] Vstup je aktivní pouze v určitou dobu = pulzy, pouze jeden pulz může být aplikován na vstup.
\end{description}
\end{description}
\subsection{Paměť}
Pamatuje si vektor vnitřního (současného) stavu.
\section{Model - reprezentace}
Modelujeme jako sekvenční automaty - šestice $A = (X, Y, Q, q_0, P, V)$
\begin{description}
\item[$X$] Vstupní abeceda
\item[$Y$] Výstupní abeceda
\item[$Q$] Vnitřní abeceda (stavy)
\item[$q_0$] Počáteční stav
\item[$P$] Přechodová funkce, která některým $X \times Q$ přiřazuje prvek z $Q$
\item[$V$] Výstupní funkce, která některým $X \times Q$ přiřazuje prvek z $Y$
\end{description}
\subsection{Výstupní funkce}
\begin{description}
\item[Maelyho automat] $y_i = V(x_i, q_i)$ Vstupem funkce je stav a vstup
\item[Mooreův automat] $y_i = V(q_i)$ Vstupem je pouze aktuální stav
\end{description}
Přechodová funkce na základě vstupu a aktuálního stavu generuje hodnotu následujícího stavu.
\subsection{Graf přechodů}
\begin{itemize}
\item Stav = Uzel
\item Přechod = Orientovaná hrana
\item Vstupy = ohodnocení hrany
\item Výstupy = K hraně za lomítko (Mealy), nebo k uzlu za lomítko (Moore)
\end{itemize}
\subsection{Tabulka přechodů}
\begin{itemize}
\item Řádky - stavy a Moorovy výstupy
\item Sloupce - vstupy
\item Průsečíky - následující stavy a Mealyho výstupy
\end{itemize}
Paměť -- volatilní -- informace lze číst a ukládat dle potřeby. Nevolatilní -- čtení podle potřeby, zápis jednorázový nebo pomalý (FLASH). Nejčastěji klopné obvody -- rychlé, dva stavy 0 a 1. Bistabilní klopné obvody (KO).
\subsection{Zpoždění signálů}
\begin{description}
\item[Inerční zpoždění] Způsobené setrvačností, parazitními kapacitami. Pulz musí být minimální délky, aby obvodem prošel.
\item[Transportní zpoždění] Dáno rychlostí šíření signálu v daném médiu. Dříve využíváno jako paměti
\item[Zpožďovací linka] Informace vložená na začátku se na konci objeví až po určitém čase (vhodné médium, např. rtuť).
\end{description}
\section{Klopné obvody}
\subsection{RESET SET -- R-S KO}
Sestavený z členů NOR. Hladinový -- RS Latch.
Nejjednodušší, dva stavy, třetí nevalidní.
\begin{description}
\item[R = 0, S = 1] SET Nastaví stav na 1
\item[R = 1, S = 0] RESET Nastaví stav na 0
\item[R = 0, S = 0] HOLD Drží poslední nastavený stav na výstupu
\item[R = 1, S = 1] Zakázaný vstup, nedefinovaný výstup
\end{description}
\subsection{RESET SET s povolovacím vstupem -- Gated R-S Latch}
Nastavit a nulovat lze pouze s C=1 (controll, clock).
\subsection{D KO s povolovacím vstupem -- Transparent D Latch}
Spojení vstupů SET a RESET (přes invertor) na D.
\begin{description}
\item[C = 1, D = X] STORE Nastaví do paměti hodnotu na vstupu D (Transparent mode)
\item[C = 0, D = X] HOLD Drží poslední nastavený stav na výstupu (Latch mode)
\end{description}
\subsection{J-K KO s povolovacím vstupem -- Gated J-K Latch}
Zpětnou vazbou eliminuje zakázanou kombinaci. Nový stav TOGGLE.
\begin{description}
\item[C = 0 nebo J=K=0] HOLD Drží poslední nastavený stav na výstupu
\item[C = 1, K = 1] RESET Nastaví do paměti 0
\item[C = 1, J = 1] SET Nastaví do paměti 1
\item[C = K = J = 1] TOGGLE Překlop stav v paměti
\end{description}
\subsection{T KO s povolovacím vstupem -- Gated T Latch}
Spojení J a K do T. Pokud trvale C=T=1, neustále osciluje -- řešení Master-Slave, Edge-triggered KO.
\begin{description}
\item[C = 0 nebo T=0] HOLD Drží poslední nastavený stav na výstupu
\item[C = T = 1] TOGGLE Překlop stav v paměti
\end{description}
\subsection{Dvoufázové KO}
Realizace pomocí dvou KO s povolovacím vstupem přivedeném z CLK.
Informace se při CLK=0 zapisuje do Mater KO, při CLK=1 do Slave KO, odkud je po celou dobu hodinového pulzu předávána na výstup (do změny stavu z Master).
\begin{description}
\item[R-S KO] Master-Slave R-S Flip-Flop
\item[J-K KO] Master-Slave J-K Flip-Flop
\item[T KO] Master-Slave T Flip-Flop
\item[D KO] Master-Slave D Flip-Flop
\end{description}
\subsection{Derivační KO}
Úmyslné generování log. hazardu (krátký impulz) pomocí nestejné délky logické větve -- zpoždění invertoru. Generováno s hranou hodinového signálu na povolovací vstup KO.
Změna stavu může nastat pouze ve chvíli změny hrany hodin. signálu.
\begin{description}
\item[R-S KO] Edge-Triggered R-S Flip-Flop
\item[J-K KO] Edge-Triggered J-K Flip-Flop
\item[T KO] Edge-Triggered T Flip-Flop
\item[D KO] Edge-Triggered D Flip-Flop
\end{description}
\section{Sekvenční logické obvody}
Kombinační log. síť --sdružuje přechodovou (NS = Next State) a výstupní funkcí (Mealy, Moore)
Paměť -- pamatuje si vektor vnitřního (současného) stavu (PS = Present State). Realizováno pomocí registru z klopných obvodů, řízených hodinovým isgnálem CLK. Často inicializace (RST).
\begin{description}
\item[+] Stačí dodržet časy Thold, Tsetup definované pro jednotlivé KO
\item[+] Jednoduchá automatická syntéza
\item[-] Přizpůsobení nejpomalejšímu KO (lze omezit vhodným návrhem)
\item[-] Vyžadován stabilní CLK (malý jitter a malé zpoždění (skew) mezi jednotlivými KO
\end{description}
Tabulka přechodů KO (opak k pravdivostní tabulce).
\begin{tabular}{| *{2}{c} | *{2}{c} | *{2}{c} | c | c |}
\hline
$Q_t$ & $Q_{t+1}$ & $S$ & $R$ & $J$ & $K$ & $D$ & $T$ \\ \hline
0 & 0 & 0 & X & 0 & X & 0 & 0 \\
0 & 1 & 1 & 0 & 1 & X & 1 & 1 \\
1 & 0 & 1 & 1 & X & 1 & 0 & 1 \\
1 & 1 & X & 0 & X & 0 & 1 & 0 \\
\hline
\end{tabular}
Kódování stavů automatu -- každý stav musí mít unikátní kód:
\begin{description}
\item[Binární] binární hodnota čísla stavu
\item[One-hot] Každý stav má k dispozici jeden KO
\item[Johnsonův, Grayův, Kompaktní] ...
\end{description}
\section{Asynchronní čítač (binární)}
asynchronní = nemá centrální hodinový signál, který synchronizuje všechno KO současně.
Tříbitový: 3 J-K KO zapojení jako T K. QN připojeno na C dalšího KO. Generuje posloupnost 0,1,2,3,4,5,6,7,0,1 ...
Výstup platný až po ustálení všech výstupů.
\subsection{Asynchronní čítač (mod 10) dekadický}
Výstupy Q1 a Q3 (hodnota 10) přes NAND hradlo se provádí asynchronní nulování všech KO (= Nulovací pulz = Glitch. Velmi krátký).
\subsection{Asynchronní čítač modulo 12}
První dva KO počítají 0 -- 3. Další dva je třeba nulovat př přechodu na hodnotu 3.
Standardní čítač 4bitový: IO 7493 - dva hodinové vstupy CLKA (první KO) a CLKB (ostatní KO), dva resety RO1, RO2.
\section{Synchronní čítač}
\begin{itemize}
\item Při aktivním CLK automat přechází ze stavu do stavu
\item Často více nastavení, směr počítání UP/DOWN
\item indikace přetečení Ripple Carry Output (Kaskádní - pomalejší ustálení, Paralelní - rychlejší, složitější)
\item Clock enable
\item Dělící poměr
\item Kaskáda -- RCO připojit na vstup CE dalšího
\end{itemize}
Například pro generování Grayova kódu.
Použití jako dělička kmitočtu (synchronní i asynchronní). Při zapojení v kaskádě se dělící poměry násobí.
Například digitální hodiny: $60Hz => DIV 10 => DIV 6 => (1 Hz) => sekundy => DIV 60 => minuty => DIV 60 => hodiny$
Převod paralelní posloupnosti na sériovou: CTR DIV 8 jako data select MUX. Paralelní data o šířce 8 bitů. Výstup sériová linka.
\section{Posuvné registry}
synchronní, sestavené z KO. Sériové/paralelní vstupy/výstupy, shift/rotate left/right
Použité například jako kruhový čítač.
Univerzální posuvný registr.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Hierarchie paměti v počítači} \label{cha:4}
3. semestr, INP, 11. přednáška
(typy a principy pamětí, princip lokality, organizace rychlé vyrovnávací paměti)
\paragraph{Moorův zákon} počet tranzistorů na čipu se každé dva roky zdvojnásobí.
\shorthandoff{-}
\begin{tabular}{| l || c | l | c | l | l |}
\hline
& Kapacita & Cena/bit & čas přístupu & příklad \\ \hline \hline
Terciální & TB & minimální & sekundy & CD, páskové mechaniky \\ \cline{1-1}
Sekundární & stovky GB & & jednotky ms & HDD \\ \cline{1-1}
Hlavní paměť& GB & střední & desítky ns, 240 instr.& DRAM \\ \cline{1-1}
RVP (Cache) & MB & & $<$ 10 ns, 10 instr. & SRAM (L1, L2) \\ \cline{1-1}
Registry & B & vysoká & ns, 1 instr. & \\
\hline
\end{tabular}
\shorthandon{-}
\section{RVP} Rychlá vyrovnávací paměť -- mezi CPU a hlavní pamětí (vyrovnává rychlosti mezi komponentami pracujícími jinak rychle). Tvořená SRAM.
Rozdělení do bloků stejné velikosti jako bloky RAM.
\paragraph{Účinnost RVP} závisí na Hit rate/Miss rate -- výpadek bloku. Může nastat při čtení instrukce i při čtení dat/operandů.
Doba potřebná k nalezení bloku je \emph{Přístupová doba}. V případě neúspěchu je potřeba připočíst dobu k přesunutí bloku (uvolnění místa, přístup k požadovanému bloku ve vzdálenější paměti, doba přenosu celého bloku).
\subsection{RVP s přímým mapováním} -- bereme pravou část adresy, podle které ukládáme do paměti. Můžou nastat kolize a proto je potřeba ukládat adresový příznak (zbývající bity adresy) a příznak platnosti (před alokováním prvního bloku jsou neplatné).
\subsection{Koherence dat}
Po zápisu paměťového místa v cache vzniká nekonzistence ve vzdálenějších úrovních
\begin{description}
\item[Přímý zápis] Write-through -- okamžitý přepis bloku do hlavní paměti (zdržuje procesor)
\item[Zápis s mezipamětí] odloží opravné zápisy do času, kdy je volný přístup k paměti (nezdržuje procesor)
\item[Zpětný zápis vždy] Zápis je proveden vždy při odstraňování bloku z paměti. (Zbytečné pro nezměněné bloky)
\item[Zpětný zápis podle příznaku změny] Při zápisu nastaven dirty-bit. Zápis při odsouvání, pouze pokud je tento bit nastaven.
\end{description}
Práce s adresami, které mají stejnou část adresy: mnoho kolizí, nevýhodné. Proto se zvyšuje asociativita -- umožní nám uložit více adres se stejnou částí až po plně asociativní pole (nepoužívá se -- drahé).
\subsection{4-cestná RVP}
Blok s adresou shodující se v dané části může být na 4 různých místech, což snižuje riziko výpadku.
Jsou-li všechna místa obsazena, je potřeba nějaké uvolnit.
\paragraph{Výběr oběti}
\begin{itemize}
\item LRU -- nejdéle nepoužitá
\item MFU -- nejčastěji použitá
\item RAND, FIFO
\end{itemize}
Potřeba dalších obvodů pro implementaci
\subsection{Lokalita}
\begin{description}
\item[Časová lokalita dat] Procesor používá část paměti a je pravděpodobné, že ji bude používat znovu.
\item[Prostorová lokalita] Procesor používá část paměti, s vysokou pravděpodobností použije i části v okolí.
\end{description}
\paragraph{Typy paměti} Vnitřní $\times$ Hlavní + RVP $\times$ Vnější
\subsection{Parametry paměti}
Kapacita + Přístupová doba + Přenosová rychost = Výkonnost.
Doba cyklu, Cena/bit, Poruchovost/Chybovost
\paragraph{Materiál} Polovodičové, magnetické, Optické, Magnetooptické, (experimentální molekulární).
\paragraph{Čtení/zápis} ROM/RWM
\begin{itemize}
\item PROM -- jen jeden zápis
\item EPROM -- mazatelné UV světlem
\item EEPROM -- elektronicky programovatelné (Flash)
\end{itemize}
Volatilni $\times$ Nevolatilní (nezávislá na napájení)
\paragraph{DRAM} kondenzátor, vyžadován pravidelný refresh, větší kapacity
\paragraph{SRAM} jenom tranzistory, stačí stabilní napájení, dražší, rychlejší.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Vestavěné systémy} \label{cha:5}
5. semestr, IMP, 1. přednáška a další asi taky
(mikrokontrolér, periferie, rozhraní, převodníky)
\section{Vestavěné systémy}
Embeded system -- kombinace HW a SW jejímž smyslem je řídit proces, zařízení, nebo systém. Často funkční bez lidského zásahu.
\paragraph{Vlastnosti ES}
\begin{itemize}
\item Reaktivnost -- odezva na pozněty zvenčí, často Realtime (garance odezvy do určitého času).
\item Autonomie -- činnost bez lidského zásahu
\item Kritičnost -- vliv odchylek od normálního chování na bezpečné plněné úlohy
\item Spolehlivost -- nedosažitelnost pro opravu, nutnost neustálého chodu, nelze připustit nekorektní stav
\item Jednoúčelový -- aplikační program běží v nekonečné smyčce
\item Omezené/Vymezené vlastnosti -- cena, příkon, rozměry, rychlost.
\end{itemize}
\paragraph{X-by-wire} (drive/fly) -- nahrazení mechanických a hydraulických systémů pro ovládání řízení, brzd, akcelerace atd. spolehlivými elektronickými systémy.
Odolná technologie, využití záložních modulů při poruše primárních.
\paragraph{Specifikace požadavků}
Co má systém dělat. S jakým okolím má interagovat (vstupy, výstupy), jak má interagovat s uživatelem.
\paragraph{Modely}
\begin{itemize}
\item Sekvenční programový model
\item Komunikující procesy
\item Konečný automat
\item Datové toky
\item Objektově orientovaný model
\end{itemize}
\paragraph{Uživatelské rozhraní}
Důraz na jednoduchost (dotyková obrazovka).
\paragraph{Požadované vlastnosti}
Výkonnost, Odezva, I/O obvody, Testovatelnost, Nízký příkon, Spolehlivost, Bezpečnost, Udržovatelnost, Zabezpečení, Dostupnost, Cena, Rozměry, Životnost
\subsection{Vývoj}
\begin{description}
\item[Pevná logika] Omezený sortiment funkcí. Pro každou změnu je potřeba nový návrh
\item[Mikroprocesory $\mu P$] Základní procesorová jednotka CPU na čipu (ALU, inst. dekodér, registry). Používané pro zpracování informací v počítačových systémech
\item[Mikrokontroléry/Mikropočítače $\mu C$] mikroprocesor + podpůrné obvody (paměť, periferní I/O komponenty). Použití pro řízení vnějších zařízení.
\item[Specializované procesory, FPGA, ASIC]
\end{description}
\paragraph{Instrukční sady}
\begin{itemize}
\item $\mu P$ výkonné adresové módy, operace nad množstvím dat
\item $\mu C$ instrukční sada pro řízení I/O (zabudované obvody), plánování, priority, přerušení od periferních zařízení
\end{itemize}
Exituje mnoho různých druhů. Lze vybrat na míru požadavkům: šířka sběrnice, RISC/CISC, architektura, von Neumanova / Harvardská.
\begin{description}
\item[CISC] Jednoduše se programuje, efektivně se využívá paměť (dříve drahá a pomalá), mnoho instrukcí (100-250), mnoho adresovacích módů, instrukce o proměnné délce.
\item[RISC] Redukované množství instrukcí, jednoduché instrukce, v každém cyklu je jedna pokud možno dokončena.
Mnoho registrů, s pamětí pracují pouze instrukce LOAD, STORE.
Například ARM -- 44 instrukcí, 32bitů každá, nízká spotřeba (převažují u $\mu C$).
\end{description}
\paragraph{(Periferní) jednotky $\mu C$}
CPU, programová a datová paměť, , oscilátor hodin, nulovací obvod, sériové porty, číslicové V/V, analogové V/V, časovače, Watchdog, obvod reálného času.
\paragraph{Operační systém} Potřeba reagovat v reálném čase na určité události, RTOS zpřístupňuje.
\begin{itemize}
\item Bez RTOS -- pro jednoduché aplikace, implementace v CodeWarrior v C
\item S RTOS -- složitější aplikace, systém časově kritický. Ladění na cílovém systému (nebo cross development).
\end{itemize}
\paragraph{Aplikace}
Telekomunikace, Automobily, Čipové karty, Vesmírné aplikace, domácí spotřebiče, GPS, robotický pes.
\paragraph{Metriky návrhu}
Jednorázové náklady (NRE), jednotkové náklady, velikost, výkon, příkon, flexibilita, doba uvedení na trh, doba výroby prototypu, udržovatelnost, správnost, bezpečnost.
Metriky spolu soupeří, zlepšení jedné může zhoršit jiné.
\paragraph{Výkonnostní metriky}
Latence, Průchodnost. Obecný výkon není příliš vypovídající.
\paragraph{DSP} Signálové procesory. Rychlé FP operace.
\paragraph{IC} Integrované obvody: Plně zákaznické VLSI, Polozákaznické ASIC -- Hradlové pole, PLD -- programovatelné logické obvody.
\section{Sériová rozhraní}
Přenos dat po jediném vodiči, bity jeden za druhým. Pro určení kdy je na vodiči jaký je třeba synchronizace
\begin{description}
\item[Synchronní] hodinový signál je přenášen společně s daty po jiném vodiči a vymezuje platnost dat. Nemusí být nutně periodický.
\item[Asynchronní] hodinový signál je generován přijímačem. Datový signál musí obsahovat prostředky pro synchronizaci s hodinovým signálem vysílače. Hodiny se nesmí rozejít o více než 1/2 fáze.
\end{description}
\subsection{SCI}
Sériová asynchronní komunikace
\paragraph{Datový rámec} Hodnota klidového stavu (1), Start bit (0), datové bity, parita, 1 nebo 2 stop bity (1) -- přijímač má čas zpracovat přijaté slovo, přesunout do jiného registru.
Na HCS08 plně duplexní.
\subsection{SPI}
Synchronní sériové rozhraní
Komunikace s PZ, nebo mezi MC. Point-to-point nebo sběrnice. Plně duplexní.
\paragraph{Role} Master -- generuje synchronizační hodinový signál. Slave -- vybraný (na sběrnici), obvykle periferie.
Komunikace stylem výměny obsahu posuvných registrů MISO a MOSI (Master Out Slave In)
Výběr prvku na sběrnici pomocí Slave select signálu $\overline{SS}$. Lze nakonfigurovat frekvence, směr posuvu. Může vyvolat přerušení na základě přijetí, chyby, nebo Match.
\subsection{IIC (I$^2$C)}
Synchronní sériové rozhraní s požadavkem na jednoduchost. Opět role Master/Slave. Half duplex, až 127 zařízení lze adresovat na sběrnici. Obsahuje ACK potvrzení po doručení dat.
\paragraph{Adresa} 7b zařízení 1b r/w (směr: 1: slave $\to$ master, 0: master $\to$ slave).
\section{Periferie}
\subsection{A/D převodník}
Spojité vstupy -- teplota, odpor, napětí (snímače, zpětná vazba). Určení hodnoty je pomocí aproximace (půlení intervalů) a opakovaného porovnávání -- trvá nějaký čas.
Lze zahájit SW (zápis do registru) -- převod další hodnoty začíná po dokončení, nebo HW (vypršení časovače) -- převod s určitým rozestupem = vzorkování.
Dokončení převodu může generovat přerušení, nebo generovat přerušení až po porovnání s nějakou limitní hodnotou.
\subsection{Časovač}
Hlavní časovač -- zvyšuje hodnotu o 1, při každé periodě CLK.
Limitování periody:
\begin{itemize}
\item při přetečení nastavení výchozí hodnoty
\item porovnání s registrem TMOD. Po shodě vynulování.
\end{itemize}
\paragraph{Jednotka záchytu hrany}
nástupná/sestupná/obě hrany. Generování přerušení. Možnost měřit délku impulzů na vstupu.
\paragraph{Jednotka výstupního srovnání}
generování impulzů o dané délce
\subsection{PWM -- Pulze délková modulace}
Impulzní průběh s konstantní periodou a proměnnou střídou. Použitelné k řízení motorů.
Perioda: přetečení volně běžícího čítače\\
střída: určena komparačním registrem. Standardní se zarovnáním na hranu. Může být symetrický se zarovnáním na střed.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Principy řízení a připojování periferních zařízení} \label{cha:6}
5. semestr, IPZ, 1. - 4. přednáška ??
(přerušení, programová obsluha, přímý přístup do paměti, sběrnice)
\paragraph{Periferní operace} komunikace na které se podílejí:
Počítač (procesor) -- systémová sběrnice -- adaptér (řadič) PZ -- V/V (I/O) sběrnice -- PZ
\subsection{Zahájení periferní operace}
\begin{itemize}
\item V ASM nastavený bit \uv{start operace} = 1, součástí stavového registru
\item V řadiči řídící a stavový registr. Řadič pozná, že je adresován, vloží obsah datové části sběrnice do adresového registru. V odpovědi vloží obsah adresovaného registru na datovou sběrnici. Signály řízení jsou generovány instrukcemi vstupu a výstupu.
\end{itemize}
\subsection{Komunikace mezi procesorem a řadičem PZ}
Komunikace s registry řadiče (R/W) - před zahájením a po dokončení PO:
\begin{description}
\item[Izolovaný vstupy a výstupy] Instrukce IN a OUT -- dekodér, datová sběrnice přivedena na všechny vstupy, pouze na jeden povolení na základě komparátoru požadované části adresy. \uv{Zápis do registru}
\item[Adresy registrů mapovány do adresového prostoru OP] \uv{Zápis do paměti} odvozen od instrukce pro práci s pamětí.
Nepřímá adresace: Registr (nebo paměť) adresován obsahem registru, nikoliv obsahem adresové části sběrnice. Adresu je potřeba do registru nejprve vložit (OUT).
\end{description}
Mezi univerzálním registrem procesoru a registry řadiče.
Nelze mezi pamětí a registrem řadiče, protože by v jednu chvíli musel být adresy obou na sběrnici.
DMA -- přímý přístup do paměti bez účasti procesoru -- řízeno řadičem DMA, který v tu chvíli ovládá sběrnici.
\section{Systémová sběrnice}
ISA, EISA, PCI -- postupné zvyšování rychlosti a šířky.
PIO (Programmed Input/Output) a DMA (Direct Memory Access). Různé rychlosti, potřeba vyvíjet výkon obou dvou.
Rychlost závisí na:
\begin{itemize}
\item kmitočtu synchronizace [MHz],
\item šířce sběrnice,
\item technologii (paralelní / sériová).
\end{itemize}
Typy informací přenášené po sběrnici:
\begin{itemize}
\item data,
\item adresy,
\item příkazy,
\item stavové informace.
\end{itemize}
Nejprve jsou vystavena data, poté je generován řídící signál. Ten určuje platnost dat. Následuje vložení informace z datové sběrnice do registru (řízeno hodinami).
\subsection{Nesdílená sběrnice}
(ISA) -- data, adresy, příkazy a stav -- každý typ informace je vystaven na samostatné sadě vodičů
\subsection{Sdílená sběrnice}
(PCI) všechny typy signálů na stejná sadě vodičů. Rozšířeno o identifikační signály, které rozlišují typ informace v každém okamžiku nebo je význam zajištěn pomocí časového multiplexu -- přenášení informace ve vymezených časových intervalech.
\paragraph{Konstrukce} Rozvody na systémové desce, konektory pro komunikaci s řadiči PZ.
\paragraph{Služby} Přenos dat, adresy, řízení (přenos informace, inicializace a realizace DMA, přerušení), stavové informace
\subsection{Signál o shodě adres}
Interní signál řadiče ISA, nebo signálem sběrnice (DEVSEL) u PCI.
Problém s různými rychlostmi -- řešení dedikovaná sběrnice (AGP)
\begin{description}
\item[Tradiční architektura (ISA)] Rychlá paměť, ostatní jsou pomalé
Local Bus -- Procesor a cache
System Bus -- Paměť
Expansion Bus -- Síť, SCSI, modem, serial
\item[Vyšší typy PC] každý ze segmentů je na jiné frekvenci
Procesor -- Local Bus -- Cache -- System Bus -- Memory
Cache -- High Speed Bus -- Graphics, LAN, Video, SCSI
High Speed Bus -- Expansion Bus -- Serial, Modem, FAX
\item[PCI]
norhtbridge -- transformace sběrnice procesoru na sběrnici PCI
southbridge -- transformace PCI sběrnice na rozhraní PZ
\end{description}
\subsection{V/V procesor}
Procesor nemá přístup k registrům řadičů, procesor komunikuje s řadiči jednotným způsobem -- signální sledy.
Snaha o sjednocení konstrukce řadičů -- V/V procesor v řadiči PZ -- jednotná komunikace s PZ přes V/V procesor, jednotně konstruované ovladače
V/V procesor -- Univerzální přenosový procesor -- UPPR -- obsahuje mikroprogram.
\subsection{SCSI}
host adapter na straně procesoru, řadič SCSI a řadiče PZ na straně PZ, ovládání pomocí signálových sledů.