IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare



Relevanta dokument
Sekvensnät. William Sandqvist

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare

Digital Design IE1204

Digital Design IE1204

D0013E Introduktion till Digitalteknik

DESIGN AV SEKVENTIELL LOGIK

Digitalteknik F9. Automater Minneselement. Digitalteknik F9 bild 1

Digital elektronik CL0090

Låskretsar och Vippor

Konstruktionsmetodik för sekvenskretsar

Sekvensnät vippor, register och bussar

IE1205 Digital Design: F9: Synkrona tillståndsautomater

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

D2 och E3. EDA321 Digitalteknik-syntes. Fredag den 13 januari 2012, fm i M-salarna

std_logic & std_logic_vector

Digitalteknik F12. Några speciella automater: register räknare Synkronisering av insignaler. Digitalteknik F12 bild 1

Digital- och datorteknik

TSEA22 Digitalteknik 2019!

Konstruktionsmetodik för sekvenskretsar. Föreläsning 7 Digitalteknik Mattias Krysander Institutionen för systemteknik

Konstruktionsmetodik för sekvenskretsar. Föreläsning 7 Digitalteknik, TSEA22 Mattias Krysander Institutionen för systemteknik

TSEA22 Digitalteknik 2019!

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Programmerbar logik och VHDL. Föreläsning 4

VHDL 1. Programmerbara kretsar

Digital Design IE1204

Laboration D184. ELEKTRONIK Digitalteknik. Sekvensnät beskrivna med VHDL och realiserade med PLD

VHDL och laborationer i digitalteknik

Tenta i Digitalteknik

LABORATIONSINSTRUKTION LABORATION

Laboration D159. Sekvensnät beskrivna med VHDL och realiserade med PLD. Namn: Datum: Epostadr: Kurs:

Styrteknik distans: Minneselement, register, räknare, AD-omv D4:1

Lösningförslag till Exempel på tentamensfrågor Digitalteknik I.

Tentamen i IE1204/5 Digital Design måndagen den 15/

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

Tenta i Digitalteknik

Digital Design IE1204

Konstruktion av digitala system - VHDL

Programmerbara kretsar och VHDL. Föreläsning 10 Digitalteknik, TSEA22 Mattias Krysander Institutionen för systemteknik

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

IE1205 Digital Design: F13: Asynkrona Sekvensnät (Del 2)

Tentamen med lösningar IE Digital Design Måndag 23/

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Programmerbara kretsar och VHDL. Föreläsning 9 Digitalteknik Mattias Krysander Institutionen för systemteknik

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ?

Design av mindre digitala system. Föreläsning Digitalteknik, TSEA52 Mattias Krysander Institutionen för systemteknik

Tentamen IE Digital Design Måndag 23/

Försättsblad till skriftlig tentamen vid Linköpings universitet

Angående buffer. clk clear >=1 =9?

Programmerbara kretsar och VHDL. Föreläsning 9 Digitalteknik Mattias Krysander Institutionen för systemteknik

Omtentamen IE Digital Design Måndag 14/

Repetition delay-element

Sekvensnät i VHDL del 2

SEKVENSKRETSAR. Innehåll

IE1204/IE1205 Digital Design

VHDL2. Sekvensnätsexemplet

Tentamen i IE Digital Design Fredag 21/

KALKYLATOR LABORATION4. Laborationens syfte

VHDL2. Sekvensnätsexemplet

Tentamen i IE1204/5 Digital Design Torsdag 29/

Programmerbara kretsar och VHDL 1. Föreläsning 9 Digitalteknik, TSEA22 Oscar Gustafsson, Mattias Krysander Institutionen för systemteknik

IE1204 Digital Design

Hjälpmedel: Appendix A. VHDL-syntax. (bifogas detta prov) Appendix B.2. IEEE-package (bifogas detta prov)

Tentamen IE Digital Design Fredag 15/

Tentamen i Digitalteknik, EIT020

Digital- och datorteknik, , Per Larsson-Edefors Sida 1

Simulering med ModelSim En kort introduktion

Digitalteknik, fortsättningskurs Föreläsning VHDL Very High Speed Integrated Circuit Hardware Description Language

Försättsblad till skriftlig tentamen vid Linköpings Universitet

DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning...

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Tenta i Digitalteknik

Tenta i Digitalteknik

F5 Introduktion till digitalteknik

Laboration i digitalteknik Introduktion till digitalteknik

Tentamen med lösningar i IE Digital Design Fredag 15/

Tentamen med lösningar i IE Digital Design Fredag 21/

Tentamen i Digitalteknik, EITF65

FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM

Tenta i Digitalteknik

Datorkonstruktion. Datorkonstruktion 2018, 8hp

LABORATIONSINSTRUKTION

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Lösningsföslag till Exempel på tentamensuppgifter i Digitalteknik I

Tentamen IE1204 Digital Design Måndag 15/

Digital Design IE1204

Tentamen med lösningar i IE1204/5 Digital Design Måndag 27/

Tenta i Digitalteknik

Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD

IE1204/5 Digital Design typtenta

Omtentamen med lösningar i IE1204/5 Digital Design Fredag 10/

IE1204/5 Digital Design typtenta

Digital Design IE1204

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

Digital Design IE1204

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

DIGITALTEKNIK. Laboration D172

Transkript:

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare

Sekvensiella System a(t) f(a(t)) Ett sekvensiellt system har ett inbyggt minne - utsignalen beror därför BÅDE av insignalens NUVARANDE och FÖREGÅENDE värde(n) Föreläsning 8 - Föreläsning 13 2

Sekvensmaskiner Alla system i naturen har (ofta) ett dynamiskt beteende och förändrar sig ständigt, ibland med återkommande mönster... Att bygga digitala system förutsätter att vi kan beskriva dynamiska beteenden, dvs att beräkna, behandla och skapa sekvenser... 3

Exempel: Stoppknapp i buss S Stannar R - Om någon av stoppknapparna trycks in skall STANNAR skylten tändas. Skylten skall vara tänd även när knappen släpps. Vi behöver en krets med minne - När chauffören stannar vid hållplats kan han släcka skylten.

Rep: DeMorgan S Stannar R - Om alla knapparna inte är intryckta skall STANNAR skylten inte tändas. Skylten skall vara tänd även när knappen släpps. Vi behöver en krets med minne - När chauffören stannar vid hållplats kan han släcka skylten.

Hur får vi hårdvara att minnas? 1 0 0 1 Två återkopplade inverterare har stabila tillstånd

Hur får vi hårdvara att minnas? Hur kan vi sätta värdet? S A B NAND grind A B 0 0 1 0 1 1 1 0 1 1 1 0 Om A ingången är 0 blir utgången 1 Om A ingången är 1 blir B ingången inverterad, värdet behålls Byt ut ena inverteraren mot en NAND grind

Hur får vi hårdvara att minnas? S R Byt ut båda inverterarna för att kunna sätta och återställa (Set and Reset)

SR-Latchen (NAND-grindar) SR-latchen har aktiv låga SET och RESET ingånger SET och RESET ska inte vara aktiva samtidigt! Förbjudet läge S S R 0 0 1 1 R Kort återkoppling (~1T) 0 1 1 0 1 0 0 1 1 1 M M Characteristic table 9

SR-latchen (NOR-grindar) SR-latchen kan även implementeras med NOR-grindar Skillnaden mot förra implementeringen är att SET och RESET är aktiv höga R a S R a b 0 0 0/1 1/0 (no change) 0 1 0 1 1 0 1 0 S b 1 1 0 0 (a) Circuit (b) Characteristic table 10

Hur får vi hårdvara att minnas? Ett sätt är att lagra information i form av en laddning på en kapacitans (DRAM). 11

Hur får vi hårdvara att minnas? Select D 0 - M 1 D D D 1 0 Select Om vi återkopplar och kopplar utgången f till en av ingångarna så kommer Muxen att få ett nytt värde när den andra ingången selekteras (Select=1), och behålla detta värde när återkopplingen selekteras (Select=0) 12

Latchen (den återkopplade Muxen) Ex: stoppknapp på tidtagarur MUX Latch f 1 f 0 1 0 f D D Select Enable D Enable D 0 - M Enable Lång återkoppling (~4T) 1 D D 13

Konstruktion av Klockad Latch För att säkerställa att tillståndet bara kan ändras vid vissa tidpunkter används en speciell clocksignal Latch Ingångar CLK Set/Reset Decoder SET RESET SR- Latch 14

Gated SR-Latch Stoppknapparna kan stängas av om det blir stökigt på bussen S Clk R Förbjudet läge Clk S R 1 0 0 M M 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 - - M M 15

Gated D-Latch D Clk Clk D 1 0 0 1 1 1 1 0 0 - M M 16

Setup- & Hold-time D måste vara stabil inom detta område för att garantera funktionen D t hold t setup Clk t clk-to- 17

Hur skapar vi en sekvens? En sekvens får vi om vi tar ett värde och sedan bestämmer nästa värde utifrån nuvarande värde. Ex: 0,1,0,1, nästa värde = NOT (nuvarande värde) Om vi återkopplar nuvarande värde, behandlar det (inverterar) och därigenom skapar nästa värde samt kommer ihåg det tills nästa värde skall beräknas 18

Sekvensmaskiner (forts.) Latch D D Clk Problem!!! Om CLK är 1 för länge så snurrar värdena bara runt med en period av T latch +T incr 19

Instabila kretsar Exempel ringoscillator

D-vippan (eng. Flip-flop) D Clk Master D Slave Clk D 0 0 1 1 1 0 D Inverterar-ring på clk anger negativ flank. 1 - M M 0 - M M - M M D-vippa Lösning: Koppla två D-latchar efter varandra! D 21

Tidsdiagram Master-Slave Master Slave D D m D s Clock Clk Clk Clock D m = s 22

Flank-triggad D-vippa Flank-triggad: Låser värdet då klockan ändras i viss riktning (tex 0 till 1) Clk D Clock D 23

Vippor med Clear och Preset ingång Det är viktigt för konstruktionen av en sekvenskrets att man kan sätta vippor i ett förbestämt läge Preset: Sätt vippan till 1 Clear: Sätt vippan till 0 24

Asynkron Reset En asynkron reset (clear) betyder att vippan ändra tillståndet till 0 omedelbart när reset är aktiv 25

Synkron Reset En synkron reset orsaker att vippan går till läge 0 vid nästa klockflank Synkron reset implementeras med extra logik 26

På vilket värde startar sekvensen? Set D Asynkron reset Reset Clk Reset Vippan kan ett- (Set=1) eller nollställas (Reset=1) vid behov. Synkron reset Reset Clk 27

Andra vanliga typer av vippor JK-vippa (av Jack Kilby - Nobelpriset 2000) J K T-vippa (T=Toggle) Clk J K 0 0 M M 0 1 0 1 1 0 1 0 1 1 Toggle Toggle T Clk T 0 M M 1 Toggle Toggle 28

Konstruktion av nya vippor Man kan konstruera nya vippor baserad på en existerande typ Ingångar Adaptionslogik Existerande vippa 29

Konstruktion av T-vippan mha D-vippan Man kan konstruera nya vippor baserad på en existerande typ 30

Timing Analysis Det är möjligt att kunna bestämma den maximala frekvensen i en sekvensiell krets genom att ha information om Grindfördröjningar t logic Setup-tid t su för vippan Hold-tid t h för vippan Clock-to-utgång t c tiden 31

Setup- & Hold-time D måste vara stabil inom detta område för att garantera funktionen D t hold t setup Clk t clk-to- 32

Vad är den maximala frekvensen? Grindfördröjningar t logic = t NOT = 1.1 ns Setup-tid t su = 0.6 ns Hold-tid t h = 0.4 ns Clock-to-utgång t c = 1.0 ns T = t su + t c + t logic = 2.7 ns F = 1/T = 370 MHz 33

Shiftregister En shiftregister innehåller flera vippor För varje klockcykel skiftar man in ett värde från vänster till höger Många konstruktioner använder shiftregister och värden 4,, 1 som ingångsvärden till andra komponenter 34

Exempel shift-register Clk Data Problem: I ett experiment skulle ett flertal kontrollsignaler konfigureras. (Enable, frekvens, ström etc.) Endast ett fåtal ben fanns tillgängliga i kretsen Lösning: Ett skiftregister möjliggör seriell konfigurering med enbart två ben

Vanliga typer av Shift-register Parallel-In/Parallel-Out (PIPO) Parallel-In/Serial-Out (PISO) Serial-In/Parallel-Out (SIPO) Serial-In/Serial-Out (SISO) Användningsområden Köer, tex First-In/First-Out (FIFO) Mönsterigenkänning (eng. Pattern recognizers)

Asynkron räknare Man kan realisera räknare mha vippor Nedanstående exempel visa en asynkron räknare Några klockingångar är kopplade till -utgångarna från föregående vippa 37

Asynkron räknare 38

Synkron räknare I en synkron räknare är vippornas klockingångar kopplade till samma klocksignal 39

Synkron räknare 40

Vad är den maximala frekvensen? Den kritiska vägen bestämmer den maximala frekvensen! Här är den längsta kombinatoriska vägen från 0 via två AND-grindar till ingången av vippan som beräknar 3 t logic motsvarar alltså fördröjningen av två NANDgrindar 41

Exempel asynkron och synkron reset Exempel: Modulo 6 räknare

En D-latch i VHDL ENTITY D_Latch IS PORT(en : IN std_logic; d : IN std_logic; q : OUT std_logic); END ENTITY D_Latch; D Latch D ARCHITECTURE RTL OF D_Latch IS BEGIN PROCESS(en, d) BEGIN IF en = '1' THEN q <= d; END IF; END PROCESS; END ARCHITECTURE RTL; Enable Enable D 0 - M 1 D D 43

VHDL kodning Latchar och Vippor kodas som processer (som del av arkitekturen): Latch: process(d,en) begin if (En= 1 ) then <=D; end if; end process; Latchar anses generellt vara dåliga ur syntes-synpunkt eftersom de inte alltid är testbara (pga ev asynkrona återkopplingar). 44

VHDL kodning (forts.) Latchar och Vippor kodas som processer: Vippa: process(clk) begin if rising_edge(clk) then <=D; end if; end process; Vippa: Signal-attribut process(clk) begin if clk event and clk= 1 then <=D; end if; end process; Endast EN flank är tillåten inom en och samma process Rising_edge behövs om signalen är av typen std_logic 45

Asynkron resp. Synkron reset Reset har prioritet över Clk-signalen, dvs reset sker asynkront. Clk-signalen har prioritet över Reset-signalen, dvs reset sker synkront. async: process(clk,reset) begin if (reset= 1 ) then <= 0 ; elsif rising_edge(clk) then <=D; end if; end process; Sync: process(clk) begin if rising_edge(clk) then if (reset= 1 ) then <= 0 ; else <=D; end if; end if; end process; 46

Räknare Räknare och andra sekvensmaskiner kodas också med processer: bcd: process(clk) begin if rising_edge(clk) then if (count=9) then count<=0; else count<=count+1; end if; end if; end process; 47

Register Räknare och andra sekvensmaskiner kodas också med processer: reg: process(clk) begin if rising_edge(clk) then if (ld= 1 ) then <=D; end if; end if; end process; Typen anger hur många bitar som flyttas över 48

SR-latchen (NOR-grindar) SR-latchen kan även implementeras med NOR-grindar Skillnaden mot förra implementeringen är att SET och RESET är aktiv höga R a S R a b 0 0 0/1 1/0 (no change) 0 1 0 1 1 0 1 0 S b 1 1 0 0 (a) Circuit (b) Truth table 49

Simulering av SR-latchen (BV Figur 7.5 - sida 384) Ibland kan vippor låsa sig (pga metastabilitet mer om det i F12): latch: SR_latch port map (S=>S,R=>R, =>, =>_inv); S R A M S<=not(S) after 10 ns; R<=not(R) after 20 ns; Om SR-latchen är uppbyggd av NOR-grindar så oscillerar kretsen efter 40 ns med denna insignal-kombination (om fördröjningen är exakt lika i båda NOR-grindar). B M 50

Summering vippor Basic latch (SR) Gated latch Gated SR latch Gated D latch Flip-Flop Edge triggered flip-flop Master slave flip-flop Med och utan reset Andra vippor JK vippa T vippa