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



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

Exempel på tentamensfrågor Digitalteknik

Tentamen i IE1204/5 Digital Design onsdagen den 5/

DIGITALTEKNIK. Laboration D172

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

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

IE1204/IE1205 Digital Design

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Laboration D181. ELEKTRONIK Digitalteknik. Kombinatoriska kretsar, HCMOS v 2.1

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

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

F5 Introduktion till digitalteknik

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

VHDL 1. Programmerbara kretsar

Omtentamen IE Digital Design Måndag 14/

DIGITALTEKNIK I. Laboration DE1. Kombinatoriska nät och kretsar

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

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

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

Digital elektronik CL0090

Digital elektronik CL0090

Konstruktionsmetodik för sekvenskretsar

F5 Introduktion till digitalteknik

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

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

Lösningsförslag till tentamen i Digitalteknik, TSEA22

VHDL och laborationer i digitalteknik

Tentamen i IE1204/5 Digital Design Torsdag 29/

Laboration i digitalteknik Introduktion till digitalteknik

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Övningsuppgifter i Mikrodatorteknik för U2

Simulering med ModelSim En kort introduktion

DIGITALTEKNIK. Laboration D173. Grundläggande digital logik

Programexempel 1 AND-funktionen

Tentamen i Digitalteknik, EITF65

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

Digital- och datorteknik

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

Tentamen i IE Digital Design Fredag 21/

Digitalteknik TSIU05 Laborationer

std_logic & std_logic_vector

Tenta i Digitalteknik

Sekvensnät. William Sandqvist

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

SEKVENSKRETSAR. Innehåll

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

DIGITALTEKNIK. Laboration D161. Kombinatoriska kretsar och nät

Konstruktion av digitala system - VHDL

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Tenta i Digitalteknik

Laboration D151. Kombinatoriska kretsar, HCMOS. Namn: Datum: Epostadr: Kurs:

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

D0013E Introduktion till Digitalteknik

IE1204/5 Digital Design typtenta

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

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

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

IE1205 Digital Design: F9: Synkrona tillståndsautomater

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

Tenta i Digitalteknik

Laborationshandledning för mätteknik

Introduktion till digitalteknik

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

Definition av kombinatorisk logik Olika sätt att representera kombinatorisk logik Minimering av logiska uttryck

Tentamen IE Digital Design Fredag 15/

Tentamen IE Digital Design Måndag 23/

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

Styrteknik: Grundläggande logiska funktioner D2:1

IE1204 Digital Design

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

Repetition och sammanfattning av syntes och analys av sekvensnät

DESIGN AV SEKVENTIELL LOGIK

DIGITALTEKNIK. Laboration D164. Logiska funktioner med mikroprocessor Kombinatoriska funktioner med PIC16F84 Sekvensfunktioner med PIC16F84

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

Programmerbar logik och VHDL. Föreläsning 4

Tenta i Digitalteknik

IE1204/5 Digital Design typtenta

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

TSEA22 Digitalteknik 2019!

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

Tentamen IE1204 Digital Design Måndag 15/

IE1204 Digital Design

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

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Översikt, kursinnehåll

Sekvensnät Som Du kommer ihåg

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

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

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

Tentamen i Digitalteknik 5p

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

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

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

LABORATIONSINSTRUKTION

Tentamen i Digitalteknik, TSEA22

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

Tenta i Digitalteknik

Transkript:

Lösningsföslag till Exempel på tentamensuppgifter i Digitalteknik I Flervalsfrågor. A 2. C 3. B 4. D 5. A 6. B 7. C 8. D 9. C 0. B. B 2. C 3. A 4. C 5. A Problemuppgifter. Uttryckt i decimal form: A=28+32+8 + 2 =70 B=59 C=7 A+B+C=246 2. Jag låter A' betyda "icke A" A'B'C'D'+ABC'D'+A'BCD'+AB'CD'=D'(A'(B'C'+BC)+A(BC'+B'C))= =D'(A'(B' C)+A(B C))=D'(A'(B C)'+A(B C))=D'(A' B C) Det finns även andra lösningar - exempelvis någon av följande: D'(A B' C) eller D'(A B C') eller D'(A' B' C') 3. Jag vill få räknaren att nollställa sig själv omedelbart när det kommet till värdet 5. 4 a) F = CD(A B) + CD(A B) + (B+C+D)

b) A B C D F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c) F = BD + CD AB CD 00 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 d) B F C D 5 a) 00 0 0 0 0 0 0

Tillståndstabell för Nästa tillstånd q + + 2 q I 0 00 0 0 q 2 q 0 00 0 0 0 00 q 2+ q + q 2+ q + Minimering Minimering D 2 = q i + q i = q i I 0 00 0 q 2 q 0 0 0 0 0 D = q 2 i + q 2 i = q 2 i I 0 00 0 q 2 q 0 0 0 0 0 b) i _ i q _ q q 2 _ q 2 Q q 2 D C Q q D C Clk u2 u

6 a. Sekvensen 0,, 2, 3, 4, 5, 6, 7, 8, 9, 0,, (binärt 0000 000 000 000 00, 0000, 000) innebär en 0-räknare. Kretsen är byggd för att kunna användas som en 0- räknare (en 2-räknare i serie med en 5-räknare blir en 2x5=0-räknare). Därför behöver inte RESET-ingången användas. Den kopplas till jord för att aldrig aktiveras. Seriekoppling av de två räknarna innebär att utgången från den ena klockar den andra. Kapseln innehåller två identiska räknar-uppsättningar. Jag väljer den "högra". (I princip kan man seriekoppla tvärtom, dvs ben 2 blir klockingång och 2-räknaren klockas med Q D. Q B blir då LSB (Ut 0) och Q A blir MSB (Ut 3 ).) 74HC390 CK 5 /2 COUNTER 3 Qa = Ut0 2 /5 COUNTER 0 9 Qb = Ut Qc = Ut2 Qd = Ut3 4 6. Vcc 8. GND b. Här är räknesekvensen 0,, 2, 0,, 2, dvs en 3-räknare. Den ska alltså räkna binärt 00, 0, 0, nollställas på, för att börja om 00, 0... Signalbilden ska alltså generera ett RESET. I uppgiften specificerades det att klockpulsen skulle anslutas till ben 2. Det betyder att det blir den "vänstra" 5-räknaren som ska användas. Jag låter då Q B vara Ut 0 och Q C vara Ut, och triggar en RESET med logiskt Q B + Q C. Det vara bara NAND-grindar som fick användas. Jag använder 2, varav som inverterare. 74HC390 3 NC /2 COUNTER (alt. GND) Qa (NC) CK 4 /5 COUNTER 5 6 7 Qb = Ut0 Qc = Ut Qd (NC) 2 6. Vcc 8. GND (I denna uppgift var det specificerat att klockpulsen skulle anslutas till ben 2. Annars kunde man teoretiskt tänkas sig att få en 3-räknare genom att koppla ihop båda räknarna som i uppgift a., använda Q A som Ut 0 och Q B som Ut, och trigga en RESET med logiskt Q A + Q B.) 7. (I min text använder jag notationen att /X betecknar NOT X.) 6 st ingångar: Apparat/anordning levererar logisk :a när den slås på. (Tex V= betyder att V är påslagen, B3=0 betyder att B3 är avslagen.) 6 st ingångar ger 2 6 = 64 möjliga insignalskombinationer. utgång: Jag väljer att när L blir logiskt hög (L=) aktiveras larmet. Sanningstabell och/eller logiskt resonemang visar att 23 inkombinationer ger larm (23 st L) och 4 inkombinationer ger inte larm (4 st /L). För att inte måsta koda alla 64 kombinationer kan jag välja att inrikta mej på L eller /L. Inriktning på L.

(Jag anger värden för V och B i ordningsföljden: V V2 B B2 B3 B4.) Studerar man de logiska villkoren för larm, kan man gruppera dem efter de fyra fallen som ges av V och V2. Man finner att för V=00 blir det aldrig larm; för V= ger alla kombinationer av B utom B=0000 larm (5 st); för V=0 ger 4 kombinationer av B larm (0, 0, 0, ); och för V=0 ger 4 kombinationer av B larm (0, 0, 0, ). Minimerar man (tex m.h.a. Karnaugh-diagram) kombinationerna av B för de tre fallen av V som ger larm, får man tre grupper av logiska uttryck som ger larm: När båda V är påslagna och något B samtidigt är påslaget: V V2 (B+B2+B3+B4) När V=0 och samtidigt något av 3 3B-kombinationer: V /V2 ((B B2 B3)+(B2 B3 B4)+(B B3 B4)) När V=0 och samtidigt något av 3 3B-kombinationer: /V V2 ((B B2 B3)+(B2 B3 B4)+(B B2 B4)) De två senare kan arbetas ihop om man vill: Två av 3B-kombinationerna är gemensamma för V och V2, dvs ger larm antingen om bara V är påslagen eller bara V2 är det. Övriga två är unika och måste kodas specifikt. Alternativ som jobbar med bitvärden och [totalt] logiskt uttryck. -- Lösningsförslag till uppgift 2 i tentamen i Digitalteknik I 00026 -- hj v.0 00025 -- Tänkt för att implementeras i tex en GAL22V0 pld-krets. -- Larmanordning åt Iris Grönkvist. -- 2 ingångsbitar från varsin värmeslinga V, V2). -- 4 ingångsbitar från varsin bevattningsslinga B-B4). -- utgångsbit (L). ENTITY green_alarm IS PORT (V, V2, B, B2, B3, B4 :IN bit; L :OUT bit); END; ARCHITECTURE alarm OF green_alarm IS BEGIN L <= (V AND V2 AND (B OR B2 OR B3 OR B4)) OR (V AND NOT V2 XOR (NOT V AND V2) AND ((B AND B2 AND B3) OR (B2 AND B3 AND B4))) OR (NOT V AND V2 AND B AND B2 AND B4) OR (V AND NOT V2 AND B AND B3 AND B4); END; Alternativ med signaler som tilldelas bitvärden från Iris elektriska enheter. Kan ha samma ENTITY som ovan och sedan tex: ARCHITECTURE alarm OF green_alarm IS SIGNAL V : bit_vector ( downto 0); SIGNAL B : bit_vector (3 downto 0); BEGIN V() <= V; V(0) <= V2; B(3) <= B; B(2) <= B2; B() <= B3; B(0) <= B4; WITH V() SELECT L <= '0' WHEN "00" AND (B = '000' OR B =... OR...); -- Ofullständig. WHEN "0" AND (B = "0" OR B = "0" OR B = "0" OR B = ""); WHEN "0" AND (B = "0" OR B = "0" OR B = "0" OR B = ""); L <= '' WHEN OTHERS; END ARCHITECTURE; Alternativ med bit-vektorer. (Möjlig om man tolkar att direktiven i uppgiften ["beteckningarna V,... B, ska ovillkorligt användas"] medger det.) I denna variant tar jag fasta på kombinationerna som inte ger larm, alltså Inriktning på /L. ENTITY green_alarm IS PORT( V :IN bit_vector( TO 2); B :IN bit_vector( TO 4); L :OUT bit ); END; ARCHITECTURE alarm OF green_alarm IS BEGIN

PROCESS begin if (V = "00" OR B = "0000" -- Bara värme eller bara vatten. OR (V = "0" AND B = "000") -- 0 vattenkombinationer med ena värmen. OR (V = "0" AND B = "000") OR (V = "0" AND B = "000") OR (V = "0" AND B = "000") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "000") -- 0 vattenkombinationer med andra värmen. OR (V = "0" AND B = "000") OR (V = "0" AND B = "000") OR (V = "0" AND B = "000") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "00") OR (V = "0" AND B = "0") -- Sist 2 specialfall. OR (V = "0" AND B = "0")) then L <= '0'; -- Alla fall som inte ger larm. else L <= ''; -- Övriga kombinationer larmar. end if; END PROCESS; END ARCHITECTURE; 8. Ett klurproblem. Syntes. Generell angreppsmodell: identifiera insignaler och utsignaler. Utsignal ganska given: väckningslarm går igång - tydligen av brandlarmsmodell med sirener och klockor i hela huset så att alla vaknar på en gång. Utsignal ska aktiveras i ett antal olika fall. För varje fall finns det specifika villkor (insignalskombinationer). a) Insignaler i systemet hör ihop med händelser. Beteckn. Sanningshalt Logisk nivå Veckodagar Lö Det är inte lördag 0 Det är lördag Sö Det är inte söndag 0 Det är söndag Klockslag Kl_6 Det är inte klockan 6 0 Det är klockan 6 Kl_7 Det är inte klockan 7 0 Det är klockan 7 Kl_8 Det är inte klockan 8 0 Det är klockan 8 Kl_9 Det är inte klockan 9 0 Det är klockan 9 Väderlek Regn Smaskens väder 0 Regnväder Farmors födelsedag Farm Farmor fyller inte år 0 Farmor fyller år b) Med så många insignaler blir det tungt att ställa upp en sanningstabell. Dessutom är det svårt att minimera på sedvanligt sätt med så många insignaler. Jag väljer att söka samverkande villkor och gruppera i fall. Alltså: larmet aktiveras i ett antal olika fall. () Vardag + (2) Vanl lö + (3) Vanl sö + (4) Farmor föd.d

Lö Sö Kl_6 Kl_7 Kl_8 Kl_9 Regn Farm () (2) (3) Larm (4) c) Larm = Lö Sö Kl_6 + Lö Kl_9 Farm + Sö Kl_7 Regn Farm + (Lö + Sö) Kl_8 Farm d) Sö Regn 9. Jag väljer att låta hela PortA vara ingång, eftersom den består av 5 bitar. Jag väljer att låta PortB vara utgång, alla bitar. ;Program som implementerar den logiska funktionen ;F = A/BCDE + /ABC/D list P=PIC6F84 #include <P6F84.INC> org 0x00 goto init ;--Initiera---------------- init clrf PORTB bsf STATUS,RP0 ;Till Bank clrf TRISA ;Denna och nästa rad onödiga comf TRISA ;TRISA ettställd vid Reset ;Hela PortA = ingångar clrf TRISB ;PortB = utgång bcf STATUS,RP0 ;Tillbaka till Bank 0 ;--Huvudprogram------------ start movf PORTA,W ;Läs PortA sublw b'0000' ;Kolla insignal, jämför ;med ena funktionstermen btfsc STATUS,2 goto one-out ;Om lika, gå till utskrift movf PORTA,W ;Förnya PortA-värdet i W andlw b'0000' ;Vaska fram intressanta bitarna sublw b'000000' ;Jämför med andra ;funktionstermen btfsc STATUS,2 goto one-out ;Om lika goto zero-out ;Om olika one_out bsf PORTB,0 Funktionsresultat: sant goto start zero-out bcf PORTB,0 Funktionsresultat: falskt goto start

0. Diskreta kretsar. Snabba. Enda tidsåtgången är elektriska fördröjningarna genom nätet. Kräver rätt mycket arbete och material, ger därmed ganska dyra lösningar. Lämpar sig bäst numera för mycket små funktioner. PLD. Snabba. Fungerar i praktiken som nät av enskilda vippor och grindar, men utan att man behöver göra omfattande ledningsdragningar. Ganska billiga. Lämpliga för många kombinatoriska och sekvensfunktioner. Dessa kan vara ganska omfattande. Kan modifieras eller helt programmeras om. Mikroprocessor. Flexibla som PLD. Men långsammare, eftersom de fungerar sekventiellt: instruktion efter instruktion ska utföras. Ganska billiga. Kan ibland på ett fiffigt sätt förverkliga ganska komplicerade operationer som skulle kräva mycket av en PLD eller ett grindnät.. Jag lägger den önskade signalföljden på ingångarna till multiplexern och låter en räknare välja insignalerna i rätt följd.