Register - Chalmers tekniska högskola

Digital- och datorteknik
Föreläsning #10
Biträdande professor Jan Jonsson
Institutionen för data- och informationsteknik
Chalmers tekniska högskola
Vippor
&
1S
Q
C1
Q
Funktions- och excitationstabell för JK-vippa:
&
1S
&
J
Q
1J
Q
K
1R
&
Q
Q
1K
Q
Funktionstabell
1J för JK-vippa
Q
J
K C1
Q+
0
01K Q Q
Q
C1
C1
CP
1R
Excitationstabell för JK-vippa
Q
Q+
J
K
0
0
0
−
0
1
0
0
1
1
−
1
0
1
1
0
−
1
1
1
Q
1
1
−
0
Vippor
Vippa med alternerande tillstånd:
Med JK-vippan fick vi en ny funktion (när J = 1 och K = 1) som kan
användas för att enkelt växla mellan två logiska tillstånd. Om vi kopplar
ihop J och K kan vi med en signal styra den alternerande funktionen.
1J
Detta kallas för en T-vippa.
Q
T-vippan är en grundläggande komponent som viC1
litet senare kommer
Q
att använda vid konstruktion av tillståndsmaskiner,
1K t ex räknare och
styrenheten i vår dator.
T
CP
1J
Q
Q
C1
1K
1T
Q
C1
Q
Q
Q
Vippor
1J
Q
C1
Q
Funktions- och excitationstabell för T-vippa:
1K
T
1J
Q
1T
Q
C1
CP
C1
Q
1K
Q
Q
Q
Excitationstabell för
T-vippa
1T för
Funktionstabell
Q
T-vippa C1
Q
Q+
T
Q
0
0
0
T
Q+
0
Q
0
1
1
1
Q
1
0
1
1
1
0
Vippor
Vippa för lagring av en bit:
Vi har sett att JK-vippan kan förhindra att det icke-önskvärda tillståndet
i en SR-vippa uppträder. Ett annat sätt att åstadkomma detta är att,
med en inverterare, se till att S och R alltid är varandras negationer.
Detta kallas för en D-vippa.
1S
Q
D-vippan är som klippt och skuren för att lagra en C1
bit, och blir därför ett
viktigt byggblock vid konstruktion av de register som skall
lagra dataord
Q
1R
1
i vår dator.
1S
D
Q
Q
C1
CP
1
1R
Q
1D
Q
C1
Q
Q
Vippor
1S
Q
C1
Q
Funktions- och excitationstabell för D-vippa:
1
1S
D
Q
Q
1D
C1
CP
Q
1R
1
Funktionstabell1D
för Q
D-vippa
C1
1R
Q
C1
Q
Q
Excitationstabell för
T-vippa
Q
Q+
D
0
0
0
D
Q+
0
0
0
1
1
1
1
1
0
0
1
1
1
Q
Vippor
Vippa med villkorlig lagring av en bit:
När vi ansluter register till vår dators dataväg kommer klocksignalen
att vara gemensam för alla D-vippor. För att undvika att tillståndet för
alla vippor uppdateras vid varje klockpuls behöver vi en extra ingång
0
som anger om vippan skall laddas med nytt
värde
1D eller ej. Genom att
Q
1
låta den extra ingången styra en 1-av-2-väljare kan vi välja om vippan
C1
skall laddas med ett nytt (D) värde eller med sitt gamla (Q) värde.
Q
Detta kallas för en D-vippa med grind.
0
D
CP
G
1
1D
Q
Q
2D
Q
C1
C1
Q
Q
1G2
Q
Vippor
Vippa med villkorlig lagring av en bit:
När vi ansluter register till vår dators dataväg kommer klocksignalen
att vara gemensam för alla D-vippor. För att undvika att tillståndet för
alla vippor uppdateras vid varje klockpuls behöver vi en extra ingång
0
som anger om vippan skall laddas med nytt
värde
1D eller ej. Genom att
1
Jämför
för följande
vippor: kan viQvälja om vippan
låta den
extratidsdiagram
ingången styra
en 1-av-2-väljare
C1
skall laddas
med ett
nytt (D) värde
eller med sitt gamla (Q) värde.
a)  positivt
flanktriggad
D-vippa
Q
positivt
D-vippa
Detta b) 
kallas
för enflanktriggad
D-vippa med
grind. med grind
0
D
CP
G
1
1D
Q
Q
2D
Q
C1
C1
Q
Q
1G2
Q
Register
Register med gemensam klock- och grindsignal:
Vi kan nu bygga upp ett register för att lagra flera bitar,
anpassat
till
2D
2D
Q
Q
behovet i vårt digitala system. Vår dator kommer t exC1att
använda
C1
Q
1G2 Q
8-bitars register. För att alla vippor i ett register skall1G2uppdateras
samtidigt har de en gemensam klocksignal (CP). Dessutom
D
har de en gemensam grindsignal, kallad load (LD),
som gör det möjligt att uppdatera vipporna i just
Register
CP
detta register.
LD
2D
C1
1G2 Q
in
Dut
Din7
Dut7 Din6
2D
Q
C1
1G2
CP
LD
Dut6 Din5
2D
Q
C1
Q
1G2
Dut5 Din4
2D
Q
C1
Q
1G2
Dut4 Din3
2D
Q
C1
Q
1G2
Dut3 Din2
2D
Q
C1
Q
1G2
Dut2 Din1
2D
Q
C1
Q
1G2
Dut1 Din0
2D
Q
C1
Q
1G2
Dut0
2D
Q
C1
Q
1G2
Q
Q
2D
Q
C1
1G2 Q
Register
Dataöverföring mellan register:
För att möjliggöra överföring av data mellan olika register måste de
kopplas ihop på lämpligt sätt. En metod för detta är att överföra data
via en väljare. Väljarens selektorsignaler avgör då från vilket register
data skall hämtas. Data skrivs till de register vars LD-signal är aktiv.
buss
CP
LDA
Register A
CP
LDB
CP
LDC
Register B
0
Val av register: s1s0
1
2
Register C
CP
LDD
RegisterD
3
MUX
Figur 7.17 Registerutgångars anslutning till buss via väljare.
Register
Dataöverföring mellan register:
För att möjliggöra överföring av data mellan olika register måste de
kopplas ihop på lämpligt sätt. En metod för detta är att överföra data
via en väljare. Väljarens selektorsignaler avgör då från vilket register
data skall hämtas. Data skrivs till de register vars LD-signal är aktiv.
buss
CP
LDA
1
Register A
CP
LDB
CP
LDC
Register B
0
Register C
0
0
Val av register: s1s0
1
CP
LDD
RegisterD
1
2
3
MUX
10
Figur 7.17 Registerutgångars anslutning till buss via väljare.
Exempel: Överföring
från register C till
register A och D.
buss
CP
Register A
LDA
CP
LDB
Register B
CP
LDC
Register C
CP
LDD
RegisterD
Register
MUX
Val av register:
ss
Dataöverföring
mellan
register:
1 0
Den vanligaste metoden att överföra data mellan register använder
däremot inte en väljare. Denna metod utnyttjar istället ett sätt att
Figur 7.17
Registerutgångars
anslutning
buss via väljare.
ansluta
registrens
utgångar
till entill
databuss
utan att riskera att de
får elektrisk kontakt (och därmed skulle kunna förstöras).
buss
CP
LDA
OEA
Register A
1
CP
LDB
OEB
Register B
CP
LDC
Register C
1
???
OE
1
C
CP
LDD
Register D
OED
Figur 7.23 Registerutgångars anslutning till buss via three-state buffertar.
1
Register
Transmissiongrinden:
För att undvika att utgångarna på två eller fler vippor får elektrisk
kontakt måste en vippas utgångar kunna isoleras från databussen
2D
2D
2D
2D
när vippans
kan åstadkommas
med
Q data inte skall
Q användas. Detta
Q
Q
C1
C1ett CMOS-transistorpar
C1
en transmissionsgrind,
somC1
har kanalerna
Q
Q
parallellkopplade.
När
EN =Q1 är båda1G2
kanalerna
öppna
1G2 Q
1G2styrsignalen
1G2
och grinden släpper igenom signalen på ingång g till utgång f. När
EN = 0 är kanalerna stängda och utgång f blir isolerad från ingång g.
Funktionstabell för
transmissionsgrind
EN
g
f
EN
EN
g
f
0
0
Z
0
1
Z
1
0
0
1
1
1
Högimpedanstillstånd
med logiknivå ’Z’ =
varken ’1’ eller ’0’
Grindens utgång kan
anta tre olika tillstånd
= ’three-state logic’
Register
Register med gemensam klock- och grindsignal:
Vi ansluter nu en transmissionsgrind på varje vippas utgång. Alla
2D
2D
2D
2D
Q vippor i ett register
Q
Q ytterligare en
Q gemensam
samhörande
får därefter
C1
C1
C1
C1
grindsignal,Qkallad output enable
(OE),
som
gör
det
möjligt
att ansluta
Q
Q
Q
1G2 på vipporna
1G2 till databussen.
1G2
1G2
utgångarna
Din
EN
CP
Register
LD
g
f
EN
g
OE
1
EN
f
1
1
EN
OE
1
Dut
buss
CP
Register A
LDA
CP
LDB
Register B
CP
LDC
Register C
CP
LDD
RegisterD
Register
MUX
Val av register: s s
Dataöverföring
mellan
register:
1 0
Vi har nu fått ett sätt att överföra data via en transmissionsgrindar.
Data läses från till det register vars OE-signal är aktiv, och data
Figur
7.17 Registerutgångars
till buss viaär
väljare.
skrivs
till de registeranslutning
vars LD-signal
aktiv.
buss
CP
LDA
OEA
Register A
1
CP
LDB
OEB
Register B
1
CP
LDC
OEC
Register C
1
CP
LDD
Register D
OED
Figur 7.23 Registerutgångars anslutning till buss via three-state buffertar.
1
buss
CP
Register A
LDA
CP
LDB
Register B
CP
LDC
Register C
CP
LDD
RegisterD
Register
MUX
Val av register: s s
Dataöverföring
mellan
register:
1 0
Vi har nu fått ett sätt att överföra data via en transmissionsgrindar.
Data läses från till det register vars OE-signal är aktiv, och data
Figur
7.17 Registerutgångars
till buss viaär
väljare.
skrivs
till de registeranslutning
vars LD-signal
aktiv.
buss
CP
LDA
Register A
1
OEA
0
CP
LDB
Register B
0
1
OEB
0
CP
LDC
Register C
0
1
OEC
1
CP
LDD
Register D
1
1
OED
0
Figur 7.23 Registerutgångars anslutning till buss via three-state buffertar.
1
Exempel: Överföring
från register C till
register A och D.
Register Transfer Notation (RTN)
Uppgift 6.1:
Använd figurens dataväg och ange styrsignalssekvenser för följande
registeröverföringar beskrivna enligt RTN.
Parallella operationer
a)  T → A
b)  T → A ; T → R
c)  R → T , A → R , T → A (= A ↔ R)
Sekventiella operationer