+ All Categories
Home > Documents > BDIO03 [Re im kompatibility] - umel.feec.vutbr.cz · Doc. Ing. Lukáš Fujcik, Ph.D. Základní...

BDIO03 [Re im kompatibility] - umel.feec.vutbr.cz · Doc. Ing. Lukáš Fujcik, Ph.D. Základní...

Date post: 01-Aug-2018
Category:
Upload: nguyenduong
View: 218 times
Download: 0 times
Share this document with a friend
33
Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D.
Transcript

Digitální obvody

Doc. Ing. Lukáš Fujcik, Ph.D.

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

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)

Základní invertor v technologii CMOS

� Převodní charakteristika

Základní invertor v technologii CMOS

Šumová imunita

OLILL VVNM −=

IHOHH VVNM −=

Další CMOS hradla – NAND a NOR

21 xxy ⋅=

21 xxy +=

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

Aritmetické operace – s čítání

4-bitová s čítačka – symbol

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

4 3 2 3 1"C S S S S= +

4 4 4 4 3 2 3 1' " 'C C C C S S S S= + = + +

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)

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;


Recommended