Date post: | 01-Aug-2018 |
Category: |
Documents |
Upload: | nguyenduong |
View: | 218 times |
Download: | 0 times |
Základní invertor v technologii CMOS
� dva tranzistory:� T1 – vodivostní kanál typ N� T2 – vodivostní kanál typ P
� při uVST = H nebo L je klidový proud velmi malý (nA)� diody slouží jako ochrana proti vlivům statické elektřiny a proti
přepólování
Základní invertor v technologii CMOS
� Převodní charakteristika
10
12
14 VuOUDD = 15 V
UDD = 10 V
� Topologie CMOS invertoru
2 4 6 8 10 12 14 V
2
4
6
8
0
uI
UDD = 5 V
TTL
uO(uI)
Souběžné příkazy v jazyce VHDL – with-select
� Signálu signal_name je přiřazena hodnota podle hodnoty výběrovéhosignálu select_expression
� Konečné množství kombinací� Pokud je signál select_expression typu bit_vector , pak máme pouze 4
možné hodnoty: “00“, “01“, “10“ a “11“� Každá hodnota signálu select_expression může být použita pouze
jednou� Pro výběrové signály typy std_logic_vector je často použito klíčové
others .
Souběžné příkazy v jazyce VHDL – with-select
� Koncepční schéma s využitím MUX pro příkaz with-select
Souběžné příkazy v jazyce VHDL – with-select
� Příklad : mějme následující popis v jazyce VHDL
� Koncepční schéma � Schéma na hradlové úrovni
?? kombinací
� Koncepční schéma � Schéma na hradlové úrovni
Souběžné příkazy v jazyce VHDL – with-select
� Příklad : dekodér 1z4, funkce je dána pravdivostní tabulkou
Souběžné příkazy v jazyce VHDL – with-select
� Příklad : prioritní enkodér 4-to-2, funkce je dána pravdivostní tabulkou
Tento p říkaz není vhodný pro prioritní enkodér !!!
Číslicový komparátor
� Číslicový komparátor porovnává velikosti dvou čísel v binárním kódu .� Nejčastěji je využívána informace o shod ě dvou čísel .� Mějme dvě n-bitové čísla A a B� Vyjádření, že čísla jsou shodná vyjadřuje následující vztah
1 1 2 2 0 0( )( )...( )n n n nK A B A B A B− − − −= = = =
� Schematická značka číslicového komparátoru
1 1 2 2 0 0n n n n
A
B
K
KOMPn
n
podmínka K
A=B 1
A≠B 0
Aritmetické operace (komb. log. obvody) – s čítání
Neúplná sčítačka má dva vstupy A, B a dva výstupy S, cout. Výstup S udává výsledek součtu jednobitových čísel A a B, výstup cout generuje přenos vznikající při součtu. Pro výstupy platí logické funkce
BABABAS ⊕=+= ABcout =Úplná sčítačka jednobitová je sestavena ze dvou neúplných sčítaček. Má tři vstupy, ke vstupům A a B přibývá vstup pro přenos ze sčítačky nižšího bitu.
cinBAS ⊕⊕= )( BAcinABcout ⊕+=bitu.
cinBASn ⊕⊕= )( BAcinABcout ⊕+=
&
&
&
=1
=1cin
cout
S
A
B
1
2
3
4
5
A B cin cout S
0 0 0 0 0
0 1 0 0 1
1 0 0 0 1
1 1 0 1 0
0 0 1 0 1
0 1 1 1 0
1 0 1 1 0
1 1 1 1 1
Aritmetické operace – s čítání
� Symbol 1-bitové úplné sčítačky
� n-bitová sčítačka s postupným přenosem je složena z n 1-bitovýchúplných sčítaček
� 4-bitová s čítačka s postupným p řenosem (Carry-Ripple Adder)
Aritmetické operace – s čítání
Sčítačka s postupným p řenosem� Výhody:
� Jednoduchá realizace� Sériové zapojení n 1-bitových úplných sčítaček
� Nevýhody:� Velmi pomalé� Velmi pomalé� Velké zpoždění ze vstupu přes všechny 1-bitové úplné sčítačky na
výstup� Požití:
� Kde není kritická rychlost� Pro pomalé aplikace, výsledné zpoždění závisí cílové technologii
� Když je požadována vysoká rychlost => velký pracovní kmitočet� Není možné použít tento typ sčítačky� Je nutné realizovat sčítačku založenou na odlišné struktuře !!!� Např. sčítačka s paralelním přenosem (Carry-Lookahead Adder) –
mnohem rychlejší, ale větší obvodová struktura
Dvojkový dopln ěk
� 4-bitové číslo – rozsah +7 až -8� MSB představuje znaménkový bit� Využívá se při operaci odčítání� Samotná sčítačka může pracovat
se zápornými čísly vyjádřené vedvojkovém doplňku
� Pokud chceme převést číslo do
Dvojkový doplněk------------
012345
Dekadické číslo
-------------012345
Binárníčíslo
-------------000000010010001101000101� Pokud chceme převést číslo do
dvojkového doplňku a na poziciMSB je 1, je nutné vektor rozšířito jednu pozici
567-8-7-6-5-4-3-2-1
56789
101112131415
01010110011110001001101010111100110111101111
� Příklad:Unsigned 2’scomplement (kladný)1001 (9) => 01001 (+9), +15 až -1610010 (18) => 010010 (+18), +31 až -32
Aritmetické operace – od čítání
� Využití dvojkového doplňku� 4-bitové číslo – rozsah +7 až -8� Mohou nastat 2 případy
� A≥B – výsledek je kladný� A<B – výsledek je záporný, vyjádření ve dvojkovém doplňku
� Příklad: Odečteme dvě čísla A-B, A=5 a B=3� Příklad: Odečteme dvě čísla A-B, A=5 a B=3
0011 (+3)1100
+1--------1101
1) Určíme dvojkový doplněk čísla B 2) Sečteme číslo A a B:
0101 (5)+1101 (-3)----------10010 (+2)
� Obecné vyjádření odčítačky je tedy
A – B = A + (-B) = A + not(B) + 1
Aritmetické operace – od čítání
A3 A2 A1 A0 B3 B2 B1 B0
A3 A2 A1 A0 B3 B2 B1 B0
A – B = A + (-B) = A + not(B) + 1
S3 S2 S1 S0
S3 S2 S1 S0
Cout Cin 1
Aritmetické operace – s čítání/od čítání
� Vstup SET je přiveden na XOR a rozhoduje o sčítání nebo odčítaní� SET=1 – odčítání� SET=0 – sčítání
BCD sčítačka
� Jedná se o klasické sčítání.� Problém nastává v případě, kdy je výstupní 4-bitové
binární číslo v rozsahu od 1010(1010) do 1111(1510) � Rozsah BCD kódu je od 0000(010) do 1001(910). � Pokud je součet čísel do hodnoty 1001, pak je BCD a
binární číslo stejné.binární číslo stejné.� Pokud je součet větší než 1001, pak musí dojít k převodu
na další BCD číslo.� Nejvýznamnější BCD číslice součtu nebude vyšší než 1,
protože součet dvou BCD čísel nebude vyšší než číslo 1910.
� Mějme binární číslo 100112(1910). BCD číslo je pak vyjádřeno dvěma BCD čísly 0001BCD a 1001BCD.
BCD sčítačkaBinární součet(A + B + Cin)
Dekadický tvarUpravený BCD tvar
(C4 + BCD)
00000 0 0 + 0000
00001 1 0 + 0001
00010 2 0 + 0010
00011 3 0 + 0011
00100 4 0 + 0100
00101 5 0 + 0101
00110 6 0 + 0110
00111 7 0 + 011100111 7 0 + 0111
01000 8 0 + 1000
01001 9 0 + 1001
01010 10 1 + 0000
01011 11 1 + 0001
01100 12 1 + 0010
01101 13 1 + 0011
01110 14 1 + 0100
01111 15 1 + 0101
10000 16 1 + 0110
10001 17 1 + 0111
10010 18 1 + 1000
10011 19 1 + 1001
BCD sčítačka
4-bitová sčítačka
A3 A2 A1 A0 B3 B2 B1 B0
S3 S2 S1 S0
A3 A2 A1 A0 B3 B2 B1 B0
C4' C0
BCD číslice BCD číslice
převodník BIN/BCD
B3 B2 B1 B0C0
D3 D2 D1 D0C4
C4 D3 D2 D1 D0
BCD číslicepřetečení
BCD sčítačka – převodník BIN/BCD
� Příznak přetečení C4 je generován v případě, pokud je binární součet v rozsahu 01010(1010) ≤ sum ≤ 10011(1910). V upraveném BCD tvaru je součet v rozsahu 1 0000 ≤ sum ≤ 1 1001.
� Pokud je binární součet menší nebo roven 01001, pak je výstupní číslo převodníku BIN/BCD rovno vstupnímu číslu. výstupní číslo převodníku BIN/BCD rovno vstupnímu číslu.
� Pokud je binární součet v rozsahu 01010(1010) ≤ sum ≤ 10011(1910), musí být nejnižší 4-bity vstupního binárního čísla převedeny na korektní BCD číslo.
� To může být provedeno přičtením čísla 01102 (610).
BCD sčítačka
� Příznak přetečení C4 bude roven 0 pro binární součet v rozsahu od 00000(010) do 01001(910).
� Příznak přetečení C4 musí být roven 1 pro binární součet v rozsahu od 01010(1010) do 10011(1910).
� Pokud je příznak přetečení C4’ paralelní 4-bitové paralelní sčítačky roven 1, pak je příznak přetečení C4 převodníku sčítačky roven 1, pak je příznak přetečení C4 převodníku BIN/BCD rovněž roven 1.
� Pokud je binární součet v rozsahu od 01010(1010) do 01111(1510), pak musí být bit MSB binárního součtu převeden na číslo 1
� Vyjádříme si tento vztah příznakem přetečená C4“ a navrhneme příslušnou Karnaughovu mapu.
BCD sčítačka
BCD číslice BCD číslice
4-bitová sčítačka
A3 A2 A1 A0 B3 B2 B1 B0
S3 S2 S1 S0
C4' C0'
A3 A2 A1 A0 B3 B2 B1 B0
&
Cin
4-bitová sčítačka
A3 A2 A1 A0 B3 B2 B1 B0
S3 S2 S1 S0
C4 C0
1
&
S3 S2 S1 S0C4
převodníkBIN/BCD
S3' S2' S1' S0'
BCD sčítačka - výstupní sou čet v rozsahu od 00000 do 19999
B1A1B10A10B100A100B1000A1000
4-bitovásčítačkaC4' C0'
4-bitovásčítačkaC4' C0'
4-bitovásčítačkaC4' C0'
4-bitovásčítačkaC4' C0'
S1S10S100S1000S10000
BIN/BCDC0
C4
BIN/BCDC0
C4
BIN/BCDC0
C4
BIN/BCDC0
C4
Realizace jednoduché aritmetické jednotky (ALU)� Aritmetická jednotka bude zpracovávat 2 16-bitové sběrnice A a B� Funkce aritmetické jednotky ALU je dána následující tabulkou
sel Operace Funkce Jednotka0000 y<=A Přenesení A
aritmetická
0001 y<=A+1 Inkrementace A
0010 y<=A-1 Dekrementace A
0011 y<=B Přenesení B
0100 y<=B+1 Inkrementace B0100 y<=B+1 Inkrementace B
0101 y<=B-1 Dekrementace B
0110 y<=A+B Sou čet A a B
0111 y<=A+B+cin Sou čet A a B a p řenosu
1000 y<=not A Negace A
logická
1001 y<=not B Negace B
1010 y<=A and B AND
1011 y<=A or B OR
1100 y<=A nand B NAND
1101 y<=A nor B NOR
1110 y<=A xor B XOR
1111 y<=A xnor B XNOR
Realizace jednoduché aritmetické jednotky (ALU)
entity ALU_arith isPort (sel : in std_logic_vector(2 downto 0);
A,B : in std_logic_vector(15 downto 0);cin : in std_logic;y : out std_logic_vector(15 downto 0));
end ALU_arith;
architecture Behavioral of ALU_arith isarchitecture Behavioral of ALU_arith isbegin
with sel selecty<=A when ”000”,
A+1 when ”001”,A-1 when ”010”,B when ”011”,B+1 when ”100”,B-1 when ”101”,A+B when ”110”,A+B+cin when others;
end Behavioral;