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

Relevanta dokument
DESIGN AV SEKVENTIELL LOGIK

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen i IE1204/5 Digital Design onsdagen den 5/

VHDL 1. Programmerbara kretsar

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

Tentamen i EDA320 Digitalteknik för D2

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

Digital elektronik CL0090

IE1204/IE1205 Digital Design

Konstruktionsmetodik för sekvenskretsar

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

LABORATIONSINSTRUKTION LABORATION

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

Omtentamen IE Digital Design Måndag 14/

std_logic & std_logic_vector

VHDL och laborationer i digitalteknik

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

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

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

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

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

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

Konstruktion av digitala system - VHDL

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

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

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

Tentamen i Digital Design

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

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

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

Sekvensnät i VHDL del 2

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Tentamen i Digitalteknik, EITF65

IE1205 Digital Design: F9: Synkrona tillståndsautomater

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

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

Tentamen IE Digital Design Måndag 23/

Programmerbar logik och VHDL. Föreläsning 4

Sekvensnät. William Sandqvist

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

Lösningsförslag till tentamen i Digitalteknik, TSEA22

Tentamen i IE1204/5 Digital Design Torsdag 29/

Digitalteknik syntes Arne Linde 2012

VHDL2. Sekvensnätsexemplet

Tentamen IE Digital Design Fredag 15/

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

Tentamen i Digitalteknik TSEA22

SEKVENSKRETSAR. Innehåll

VHDL2. Sekvensnätsexemplet

Omtentamen med lösningar IE Digital Design Måndag 14/

Tentamen i IE Digital Design Fredag 21/

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

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

Tentamen i Digitalteknik, TSEA22

Institutionen för systemteknik, ISY, LiTH. Tentamen i. Tid: kl

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

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

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

DIGITALTEKNIK. Laboration D172

Tentamen IE Digital Design Fredag 13/

Simulering med ModelSim En kort introduktion

Digital Design IE1204

Digital- och datorteknik

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

KALKYLATOR LABORATION4. Laborationens syfte

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

Tenta i Digitalteknik

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

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

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

IE1204/5 Digital Design typtenta

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

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

IE1204/5 Digital Design typtenta

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

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

Tentamen IE1204 Digital Design Måndag 15/

Tenta i Digitalteknik

IE1204 Digital Design

Tenta i Digitalteknik

Asynkrona sekvensmaskiner

Laborationshandledning

Tentamen med lösningar i IE1204/5 Digital Design Torsdag 29/

VHDL3. Angående buffer

Översikt, kursinnehåll

L15 Introduktion modern digital design

Tentamensskrivning 11 januari 2016

Tenta i Digitalteknik

Tentamen med lösningar IE Digital Design Fredag 13/

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

IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

Repetition delay-element

KOMBINATORISKA FUNKTIONER...1

Digitalteknik F9. Automater Minneselement. Digitalteknik F9 bild 1

Tenta i Digitalteknik

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

Sekvensnät Som Du kommer ihåg

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

TSEA22 Digitalteknik 2019!

Sekvensnät vippor, register och bussar

Transkript:

EDA321 Digitalteknik-syntes D2 och E3 GU DIT795 Tentamen (EDA321-0205) Fredag den 13 januari 2012, fm i M-salarna Examinator Arne Linde, tel. 772 1683 Tillåtna hjälpmedel Inga hjälpmedel tillåtna. Detta innefattar även kalkylatorer och alla tabellverk. Oläsliga eller svårtydda lösningar ger poängavdrag. Allmänt: Ett lösningsblad får endast innehålla redovisningsdelar som hör ihop med en uppgift (dock flera deluppgifter). För full poäng på de uppgifter som omfattar konstruktioner krävs förutom korrekt funktion även en optimal (minimal) eller nära optimal lösning. Fungerande men onödigt komplicerade lösningar ger varierande poängavdrag beroende på hur mycket lösningen avviker från den optimala. För samtliga uppgifter gäller, att ofullständiga lösningar eller lösningar innehållande felaktigheter ger poängavdrag även om resultatet är korrekt. Betygsättning För godkänt betyg fordras minst 20 p av totalt 50 p. 20p betyg 3 < 30p betyg 4 < 40p betyg 5 För godkänt slutbetyg på hela kursen fordras godkänt betyg på tentamen och dessutom fordras godkänd laborationskurs. Lösningar Anslås senast måndag 16 januari, kl 16.00 på kursens hemsida. Granskning Av rättning kan göras tisdag 14/2 kl 11.45-12.30 rum E-4128 och onsdag 16/2 kl 11.45-12.00 rum E-4128.

1. Småfrågor (10p) a) Vilka är skillnaderna mellan en FPGA och en CPLD för konstruktören. (antal minneselement, typ av logik, snabbhet, timing och struktur skall finnas med för full poäng.) (3p) Set b) Koda D-vippan enligt figur 1 i VHDL. E Den har: Asynkron Set (aktiv hög), E2 S Q Synkron Reset (aktiv låg), Enable och Q Clk Data ingångar. Enable påverkar D och Reset C1 funktionerna. D 12T Använd följande entitet: 12R ENTITY D_Vippa IS Reset PORT ( Clk,Reset,Set, D, E :IN std_logic; Q :OUT std_logic); Figur 1: JK-vippa till uppgift 1:b END D_Vippa; (4p) V f c) Figur 2 visar halva transistornätet för en CMOS krets. Rita den andra halvan som innehåller PMOS transistorerna. (3p) V x1 V x2 T 1 T 2 T 3 T 4 GND V x3 V x4 Figur 2: Transistornät till uppgift 1:e 2. Minimering (10p) a) Bestäm samtliga primimplikatorer till funktionen: (3p) f (x 3, x 2, x 1, x 0 ) = m (2, 4, 6, 7, 13, 15) + d (0, 8, 9, 12) b) Ta fram en lösning på minimal disjunktiv form (2p) till funktionen från uppgift 2a. c) Ta fram alla minimala lösningar på minimal disjunktiv form (3p) till funktionen från uppgift 2a. d) Ta fram en hasard fri lösning på minimal disjunktiv form till funktionen från uppgift 2a. (2p) Arne Linde, Göteborg 2011 2

3. VHDL (10p) LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; Betrakta VHDL- koden. a) Rita upp en tillståndsgraf utgående från VHDL-koden (1p) b) Vilken typ av tillståndsmaskin beskrivs? Motivera! (2p) c) Fyll i pulsdiagrammet som finns som bilaga och bifoga den. (3p) Systemet behöver modifieras. Antalet klockintervall som A och B minst skall vara lika behöver bestämmas av en Signalvektor. Så entiteten behöver ändras: ENTITY Upg_3d IS PORT (A, B :IN std_logic; Comp : IN std_logic_vector(3 DOWNTO 0); Clk,Reset :IN std_logic; AA, BB, CE :OUT std_logic); END Upg_3d; d) Redogöra för hur koden skall modifieras. För att uppfylla kraven ovan. (4p) ENTITY Upg_3a IS PORT (A, B :IN std_logic; Clk,Reset :IN std_logic; AA, BB, CE :OUT std_logic); END Upg_3a; ARCHITECTURE Beha OF Upg_3a IS TYPE State_Type IS (St,S0,S1,S2); Signal Y, Next_Y : State_type; P1: PROCESS(Clk,Reset) IF Reset='1' THEN Y<=St; ELSIF Clk'event AND Clk='1' THEN Y<= Next_Y; END IF; END PROCESS P1; P2: PROCESS(Y, A, B) Next_Y<=St; AA<='0'; BB<='0'; CE<='0'; CASE Y IS WHEN St => IF A=B THEN Next_Y<=S0; END IF; WHEN S0 => CE<='1'; IF A=B THEN Next_Y<=S1; END IF; WHEN S1 => CE<='1'; IF A=B THEN Next_Y<=S2; END IF; WHEN S2 => IF A=B THEN Next_Y<=S2; ELSIF A='1' THEN AA<='1'; ELSE BB<='1'; END IF; END CASE; END PROCESS P2; END Beha; Arne Linde, Göteborg 2011 3

4. Synkrona sekvensnät (12p) Ett synkront sekvensnät har två ingångar (w1,w2) och en utgång z. Sekvensnätets funktion är att genera en enable signal till en räknare som räknar pulserna på w1 och w2. Pulserna kommer med långa mellanrum men när pulsen kommer så kan man få pulser samtidigt eller nästan samtidigt på w1 och w2. W1 W2 Z more Z mealy Streckad linje markerar aktiv klockflank a) Rita upp en tillståndsgraf för nätet i form av ett Moore-nät. (3p) b) Rita upp en tillståndsgraf för nätet i form av ett Mealy-nät. (3p) c) Ta fram de Booleska ekvationerna för implementering av nätet (Q + och Z) från del uppgift a), Moore-nät. Använd One-Hot kodning där begynnelsetillståndet kodas som 0000. (3p) d) Ta fram VHDL koden för att implementera deluppgift b), Mealy-nät. (3p) 5. Asynkrona sekvensnät (8p) En klockväljare skall konstrueras. Insignalerna är två klockor (C 1, C 0 ) som har olika frekvens och en styrsignal S. Funktionen är sådan att när S=0 så släpper väljaren igenom C 0 och när S=1 så släpper den igenom C 1. När S byter värde så ska ditt asynkrona nät släppa igenom hela den påbörjade klockperioden och därefter börja på nästa positiva flank på den andra klockan. Insignalrestriktionen gäller, d v s två insignaler kan ej byta värde samtidigt. C 0 C 1 S Ut a) Rita upp en tillståndsgraf för det asynkrona sekvensnätet. (4p) b) Hur många tillståndsvariabler behöver du? (2p) (Motivering krävs) c) Beskriv hur du skulle gå till väga för att göra tillståndstilldelningen. (2p) Arne Linde, Göteborg 2011 4

Kod Poäng Sida Bilaga A: till uppgift 3. CLK Reset A B AA BB X X CE X Y X Ne_Y X Markera tydligt vid vilken flank som signalen (AA,BB,CE,Y och Ne_Y) slår om samt vilket värde signalen får. Riv här! Arne Linde, Göteborg 2011 5

Lösningar 1. a) FPGA:er är stora och innehåller många minneselement men mindre med logik. CPLD:er innehåller få minneselement men förhållandevis mer logik. FPGA:er består av LUT:ar (Lock upp table) och minneselement (3-7 ingångar). CPLD:er består av flera PAL:kretsar och en kopplingsmatris. PAL:en är en stor Och array som ger produkttermer av i storleksordningen 32 variabler sedan summeras produkttermerna upp och kopplas till ett minneselement. CPLD:er är snabba och deterministiska, har men god tjänsla för kretsen så vet man timingen innan man har utfört syntes. FPGA:er är också snabba men strukturen gör att timingen starkt beror på konstruktion och vilken tur man har i syntesen. b) LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY D_Vippa IS PORT ( Clk,Reset,Set, D, E :IN std_logic; Q :OUT std_logic); END T_Vippa; ARCHITECTURE Beha OF T_Vippa IS Signal Int_Q : std_logic; DPros: PROCESS(Clk,Reset) IF Set='1' THEN Q<='1'; ELSIF Clk'event AND Clk='1' THEN IF E='1' THEN IF Reset='1' then Q<='0'; ELSE Q<= D; END IF; -- Reset END IF; -- E END IF; -- Set END PROCESS DPros; END Beha; V x1 V x3 T 1 T 2 V DD T 3 T 4 V x2 V x4 V f c) Se figur Arne Linde, Göteborg 2011 6

2 a. f (x3, x2, x1, x0) = m (2, 4, 6, 7, 13, 15) + d (0, 8, 9, 12) 0 0000 V 0,2 00-0 v 0,2,4,6 0--0 e 2 0010 V 0,4 0-00 v 0,4,8,12 --00 f 4 0100 V 0,8-000 v 8,9,12,13 1-0- g 8 1000 V 2,6 0-10 v 6 0110 v 4,6 01-0 v 9 1001 v 4,12-100 v 12 1100 v 8,9 100- v 7 0111 v 8,12 1-00 v 13 1101 v 6,7 011- a 15 1111 v 9,13 1-01 v 12,13 110- v 7,15-111 c 13,15 11-1 d 2. b+c) f = d + ((b + (c eller f)) eller (c + ( a eller b))) [minimalt] d + b + f 2. d) f= a + d + b + c 3. a) Se figure: b) Mealy eftersom den beter sig som Mealy i tillstånd S2 d) ARCHITECTURE Beha OF Upg_3d IS TYPE State_Type IS (St,S0,S2); Signal Y, Next_Y : State_type; SIGNAL Cnt, N_CNT : std_logic_vector(3 DOWNTO 0); P1: PROCESS(Clk,Reset) IF Reset='1' THEN Y<=St; Cnt<="0000"; ELSIF Clk'event AND Clk='1' THEN Y<= Next_Y; Cnt<=N_Cnt; END IF; END PROCESS P1; 2 4 6 7 13 15 a 6,7 x x b 7,15 x x c 13,15 x x d 0,2,4,6 x x x e 0,4,8,12 x x f 8,9,12,13 x Arne Linde, Göteborg 2011 7

P2: PROCESS(Y,Cnt, A, B) Next_Y<=St; AA<='0'; BB<='0'; CE<='0'; N_Cnt<=Cnt; CASE Y IS WHEN St => N_Cnt<="0000"; IF A=B THEN Next_Y<=S0; END IF; WHEN S0 => CE<='1'; N_Cnt<= Cnt+1; IF A=B THEN Next_Y<=S0; IF Cnt=Comp THEN Next_Y<=S2; END IF; END IF; WHEN S2 => IF A=B THEN Next_Y<=S2; ELSIF A='1' THEN AA<='1'; ELSE BB<='1'; END IF; END CASE; END PROCESS P2; END Beha; c) CLK Rese t A B AA BB X X CE X Y Ne_Y ST ST S0 St ST S0 S1 S2 S2 St S0 S0 S1 St S0 St S0 S1 S2 S2 St St 4. a) c) Z = Q 3 + Q 2 + Q 1 + Q 0 Q 0 = Z W 1 W 2 Q 1 = Z W 1 W 2 Q 2 = Z W 1 W 2 Q3 = Q 0 W 2 + Q 1 W 1 + Q 2 En lösning med 4 tillstånd är också ok! (Strikt enligt spec så kan S0 och S1 slås samman) Arne Linde, Göteborg 2011 8

b) d) USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY Upg_4d IS PORT (W1, W2 :IN std_logic; Clk,Reset :IN std_logic; Z :OUT std_logic); END Upg_4d; ARCHITECTURE Beha OF Upg_4d IS TYPE State_Type IS (S0,S1); Signal Y, Next_Y : State_type; P1: PROCESS(Clk,Reset) IF Reset='1' THEN Y<=S0; ELSIF Clk'event AND Clk='1' THEN Y<= Next_Y; END IF; END PROCESS P1; P2: PROCESS(Y, W1, W2) Next_Y<=S0; Z<='0'; CASE Y IS WHEN S0 => Z<= W1 OR W2; IF (W1 AND W2)='1' THEN Next_Y<=S1; END IF; WHEN S1 => Z<='1'; END CASE; END PROCESS P2; END Beha; Arne Linde, Göteborg 2011 9

5. a) 11-/1 01-/1 00-/0 SC 0 C 1 /U E 11-/1 01-/- C 00-/- A -0-/0 01-/1 101/0 10-/- 100/0 000/0 010/1 1-1/1 G --0/0 B 1-0/- D 1-1/- 0-1/1 1-1/0 1-0/0 1-1/1 01-/0 H 0-0/- F 0-1/1 b) 8-tilltånd ger minst 3 variabler. För att implementera grafen ovan behövs dock minst en extra tillståndsvariabel. c) Tillstånden läggs ut i en Boolesk-hyperkub. Alla tillståndsövergångar via diagonaler elimineras genom användning av transient tillstånd. Arne Linde, Göteborg 2011 10