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
© Copyright 2024