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

Relevanta dokument
Konstruktionsmetodik för sekvenskretsar

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

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

VHDL 1. Programmerbara kretsar

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

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

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

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

Konstruktion av digitala system - VHDL

TSEA22 Digitalteknik 2019!

Digitala projekt Elektro- och informationsteknik

LABORATION TSEA22 DIGITALTEKNIK D TSEA51 DIGITALTEKNIK Y. Konstruktion av sekvenskretsar med CPLD. Version: 2.2

L15 Introduktion modern digital design

std_logic & std_logic_vector

DESIGN AV SEKVENTIELL LOGIK

Digital elektronik CL0090

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

VHDL och laborationer i digitalteknik

DIGITALTEKNIK. Laboration D172

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

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

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

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

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

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

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

Chalmers ekniska Högskola Institutionen för Data- och Informationsteknik. EDA 321 Digitalteknik syntes Laboration 2 - VHDL

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

Programmerbar logik och VHDL. Föreläsning 1

Simulering med ModelSim En kort introduktion

LABORATIONSINSTRUKTION LABORATION

Datorkonstruktion. Datorkonstruktion 2018, 8hp

Sekvensnät. William Sandqvist

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

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

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

VHDL2. Sekvensnätsexemplet

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

VHDL2. Sekvensnätsexemplet

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

KOMBINATORISKA FUNKTIONER...1

IE1205 Digital Design: F11: Programmerbar Logik, VHDL för Sekvensnät

Programmerbar logik och VHDL. Föreläsning 4

-c wc. Pre- Next state Out- Vi ser att tillstånden är redan sorterade i grupper med olika utsignaler,

KALKYLATOR LABORATION4. Laborationens syfte

LABORATION TSEA22 DIGITALTEKNIK D

IE1205 Digital Design: F9: Synkrona tillståndsautomater

Digitalteknik syntes Arne Linde 2012

VHDL3. Angående buffer

Översikt, kursinnehåll

Sekvensnät i VHDL del 2

Digital elektronik CL0090

Kombinationskretsar. Föreläsning 4 Digitalteknik Mattias Krysander Institutionen för systemteknik

Laboration i digitalteknik Introduktion till digitalteknik

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Tentamen IE Digital Design Måndag 23/

Omtentamen IE Digital Design Måndag 14/

LABORATIONSINSTRUKTION

TSEA22 Digitalteknik 2019!

VHDL testbänk. Mall-programmets funktion. Låset öppnas när tangenten 1 trycks ned och sedan släpps. William Sandqvist

IE1204/IE1205 Digital Design

Digital Design IE1204

Tentamen med lösningar för IE1204/5 Digital Design Torsdag 15/

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

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

LABORATION TSEA22 DIGITALTEKNIK D

Tentamen i IE1204/5 Digital Design Torsdag 29/

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

Simulering med ModelSim En kort introduktion

Digitalteknik F9. Automater Minneselement. Digitalteknik F9 bild 1

IE1204/5 Digital Design typtenta

LEJON LABORATION3. Laborationens syfte

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

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

Digitala elektroniksystem

IE1204/5 Digital Design typtenta

Digital Design IE1204

Tentamen i Digitalteknik TSEA22

Tentamen IE Digital Design Fredag 13/

Tenta i Digitalteknik

Laboration i digitalteknik

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

Exempel på LAX-uppgifter

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

Strukturell VHDL. Grundläggande kunskaper om. och TESTBÄDD. UMEÅ UNIVERSITET Tillämpad fysik och elektronik Lars Wållberg ver 1.

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

Digital Design IE1204

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Chalmers Tekniska Högskola Institutionen för Data- och Informationsteknik. EDA 321 Digitalteknik syntes Laboration 1 - VHDL

LABORATIONER I DIGITALTEKNIK. Laboration 3 Speciella sekvenskretsar

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

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

Tentamen i IE Digital Design Fredag 21/

SEKVENSKRETSAR. Innehåll

Exempel på tentamensfrågor Digitalteknik

Tentamen i Digitalteknik, TSEA22

F5 Introduktion till digitalteknik

Transkript:

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

2 Dagens föreläsning Initiering av starttillstånd Programmerbar logik Syntesflödet Hårdvarubeskrivande språk VHDL Från problemformulering till tillståndsdiagram

3 Synkronisera asynkrona insignaler Asynkron insignaler x a kommer från Brytare Sensorer Använd synkroniseringsvippa: x a clk D C Q x Sekvenskrets

4 D-vippa med asynkrona ingångar PR D Q CK Q CLR Asynkrona ingångar: Clear (CLR), Preset (PR) aktivt låg CLR = 0 => Q = 0 PR = 0 => Q = 1 Vipporna på labben har CLR men ej PR. PR CLR CK D Q + 1 0 X X 0 0 1 X X 1 1 1 0 X Q 1 1 1 X Q 1 1 0 0 1 1 1 1

7 Nollställning ett exempel Autonom 2-bitsräknare ska förses med nollställning Asynkront Synkront

8 Asynkron nollställning Nollställning sker med resetna = 0, utan medverkan av klockan.

Synkron nollställning 9 Synkron nollställning aktiverad med resetn = 0

Synkron nollställning 10 En insignalkombination sätter nästa tillstånd till starttillståndet oberoende av nuvarande tillstånd. Hanteras därmed som vilken insignal som helst

11 Programmerbara kretsar Istället för att koppla ihop grindar eller konstruera egna integrerade kretsar så finns det kretsar vars funktion kan programmeras Programmable logic device (PLD) Olika tekniker har använts PROM kan användas för godtycklig funktion Idag används primärt CPLD eller FPGA

12 Programmerbara kretsar CPLD = complex PLD I princip flera PLD:er på ett chip Ex: 108 vippor + 540 produkttermer FPGA = field programmable gate array 5 000 000 vippor 2 000 000 Look-up-tables (LUT), 4-6 ingångar 500 Mb RAM Digital Signal Processing (DSP) Processor

13 21/09/16! 11! CPLD - CPLD!E!Complex!Programmable!Logic!Device! konstruktion Grundblocket i en CPLD är oftast en uppsättning av ORgrindar vars ingångar är kopplade till ANDgrindar Grundblocket i en CPLD består oftast av ett AND-OR-nät AND-grindarnas ingångar är programmerbara Ingångarna till ANDgrindarna är programmerbara Kallas Programmable Logic Array (PLA) Kallas Programmable Logic Array (PLA) Macrocell

Titel/föreläsare! 21/09/16! 12! 14 CPLDn!på!labben!(Xilinx!XC9536)! CPLDn på labben (Xilinx XC9536) Två 36V18-block Två 36V18-block 18 utsignaler från 18 utsignaler från 36 36 insignaler insignaler Switchmatris Switchmatris för för att koppla att koppla ihop ihop in- och utgångar in- och utgångar samt inoch samt utsignaler in- och till/från utsignaler blocken till/ från blocken Bild från datablad Bild från datablad

VHDL VHDL! VHDL = VHSIC Hardware Description Language VHDL VHSIC =Very = High Very High Speed Speed Integrated Integrated Circuit Circuit Hardware Description Language Ett Ett hårdvarubeskrivande programspråk för att: programspråk för att: 14 15 Syntetisera (Xilinx) Simulera (ModelSim) (ModelSim) Hårdvara Kurvor

16 Varför VHDL? Hantera komplexitet VHDL-koden kan simuleras Beskrivning på flera olika abstraktionsnivåer Ökad produktivitet Snabbare än schemaritning Återanvändbar kod 1) a+b 2) Kedja av heladderare 3) Bygg adderare med NANDgrindar

17 Konstruktion med CPLD Rita kretsschema Översätt till VHDL (vhd-fil) Syntes (skapa en jed-fil) passar in (optimerar) kretsen på den aktuella CPLD:n bestämmer vilka in och utgångar som kommer att användas Programmering (använd jed-filen) speciell mjuk- och hård-vara används för att programmera CPLD:n

18 VHDL-exempel - enpulsaren library ieee; use ieee.std_logic_1164.all; entity enpulsare is port(clk, x : in std_logic; u : out std_logic); end enpulsare; clk x enpulsare u architecture ekvationer of enpulsare is signal q, q_plus : std_logic; begin process(clk) begin if rising_edge(clk) then x q_plus D Q q q <= q_plus; end if; end process; clk C q_plus <= x; -- q + = f(q,x) u <= (not q) and x; -- u = g(q,x) end ekvationer; & u

19 VHDL-exempel - enpulsaren library ieee; use ieee.std_logic_1164.all; entity enpulsare is port(clk, x : in std_logic; u : out std_logic); end enpulsare; clk x enpulsare u architecture ekvationer of enpulsare is signal q, q_plus : std_logic; begin process(clk) begin if rising_edge(clk) then x q_plus D Q q q <= q_plus; end if; end process; clk C q_plus <= x; -- q + = f(q,x) u <= (not q) and x; -- u = g(q,x) end ekvationer; & u

20 VHDL-exempel - enpulsaren library ieee; use ieee.std_logic_1164.all; entity enpulsare is port(clk, x : in std_logic; u : out std_logic); end enpulsare; clk x enpulsare u architecture ekvationer of enpulsare is signal q, q_plus : std_logic; begin process(clk) begin if rising_edge(clk) then x q_plus D Q q q <= q_plus; end if; end process; clk C q_plus <= x; -- q + = f(q,x) u <= (not q) and x; -- u = g(q,x) end ekvationer; & u

21 VHDL-exempel - enpulsaren library ieee; use ieee.std_logic_1164.all; entity enpulsare is port(clk, x : in std_logic; u : out std_logic); end enpulsare; clk x enpulsare u architecture ekvationer of enpulsare is signal q, q_plus : std_logic; begin process(clk) begin if rising_edge(clk) then x q_plus D Q q q <= q_plus; end if; end process; clk C q_plus <= x; -- q + = f(q,x) u <= (not q) and x; -- u = g(q,x) end ekvationer; & u

22 VHDL-exempel - enpulsaren library ieee; use ieee.std_logic_1164.all; entity enpulsare is port(clk, x : in std_logic; u : out std_logic); end enpulsare; clk x enpulsare u architecture ekvationer of enpulsare is signal q, q_plus : std_logic; begin process(clk) begin if rising_edge(clk) then x q_plus D Q q q <= q_plus; end if; end process; clk C q_plus <= x; -- q + = f(q,x) u <= (not q) and x; -- u = g(q,x) end ekvationer; & u

Detektion av var tredje etta i VHDL 23

24 Gränssnitt mot omgivningen clk x skrets u entity skrets is port( clk, x: in std_logic; u: out std_logic); end entity skrets;

Ej kod 25 Interna signaler adress adress = (q1,q0,x) data = (q1_plus,q0_plus,u) architecture behavior of skrets is signal q0, q0_plus: std_logic; signal q1, q1_plus: std_logic; signal adress : std_logic_vector(2 downto 0); signal data : std_logic_vector(2 downto 0); begin -- beskrivning av kretsens beteende -- se kommande 2 oh:ar data end behavior;

26 Vippor -- vippor process(clk) begin if rising_edge(clk) then q0 <= q0_plus; q1 <= q1_plus; end if; end process;

27 Minnet -- ROM adress <= q1 & q0 & x; -- concatenering with adress select data <= 000 when 000, 010 when 001, 010 when 010, 110 when 011, 000 when 100, 000 when 101, 110 when 110, 001 when 111, --- when others; -- nästa tillstånd q1_plus <= data(2); -- indexera vektor q0_plus <= data(1); -- utsignal u <= data(0);

28 VHDL bra rutiner För att undvika problem så rekommenderas i dagsläget: Generera bara D-vippor i processer p r o c e s s ( clk) q 1 < = q 1 p l u s ; e n d p r o c e s s ; Skapa all logik utanför processer q 1 p l u s < = xin a n d ( q 2 o r q 1 ) ; yout < = q 1 o r q 2 ;

29 VHDL bra rutiner x < = a a n d b ; Betyder att en AND-grind kopplas in mellan a, b och x Endast en tilldelning på x tillåten. x < = a a n d b ; a < = 1 ; Ordningen på satserna oviktig utanför process-satsen Programmera aldrig i VHDL! Tänk hårdvara => översätt till VHDL

30 Programmera kretsen På labben kommer ni att använda en specifik dator för att programmera kretsarna. Ta hjälp av en labassistent första gången och se till att kretsen är rättvänd i sockeln varje gång! Annars förstörs kretsen och ni bränner er när ni ska plocka ut den

31 Dagens föreläsning Initiering av starttillstånd Programmerbar logik Syntesflödet Hårdvarubeskrivande språk VHDL Från problemformulering till tillståndsdiagram

32 Lejonburen Lampa skall lysa när hägnet är tomt. Fotoceller: x i = 1 fotocellen skymd 0 annars Lampa: u = 0 släkt 1 tänd Vid start är båda lejonen i buren. Lejonen: a) Max ett lejon i porten b) Kan ej vända/backa i porten. c) Är längre än avståndet mellan x 1 och x 2. d) Rör sig långsamt i förhållande till klockfrekvensen.

Senarier 33 Porten tom: x = (x 1, x 2 ) = 00 Lejon i port: a) => ett lejon b) => rör sig genom porten Fall Lejon ut ur bur: c)) x : 00, 01, 11, 01, 00 (x = 11, pga Lejon in i bur: d) => Varje insignalkombination upprepas => Vi kan vänta en klockpuls med att tända lampan, dvs Moorekrets är okej.

34 Enkel lösning Låt tillståndet i inne beteckna att i lejon är i buren. Onödigt många tillstånd: 9 st Det finns algoritmer som minimerar antalet tillstånd. Hanterar även att lejon backar i porten => Onödigt komplicerat tillståndsdiagram

Lösning med få tillstånd 35 Vi behöver ett tillstånd då lampan ska lysa (u = 1). I tillståndet 2 inne lyser lampan i övriga tillstånd är den släkt. Detektera utpassage med 10 Detektera utpassage med 11 alla insignalkombinationer => fast i tillståndet Går ej att skilja på fallen

Lejonbur fortsättning 36 Detektera utpassage med 01 fast i tillståndet 10, 11 kvar 11 påträffas först vid inpassage 10 påträffas först vid utpassage Vilka insignaler för streckad tillståndsövergång är tänkbar? 01: funkar ej ty vi hamnar i 2 inne 11: funkar ej ty vi hamnar i 2 inne 10: funkar ej ty vi hamnar i 0 inne 00: OK, men nytt tillstånd måste införas: i porten

37 Tillståndsdiagram för lejonburen Tillståndsdiagram framtaget på föreläsningen: Alternativt tillståndsdiagram:

Digitalteknik Mattias Krysander www.liu.se