Toets igitale Systemen 0/06/2006, 8.45 0.30 uur e toets is open boek en bestaat uit 0 multiple-choice (MC) vragen en 3 open vragen. e MC-vragen dienen beantwoord te worden op het uitgereikte MC-formulier. Enkele aanwijzingen bij het invullen van de MC-formulieren: slechts antwoord is het correcte antwoord (NB: a,b,c,d staan door elkaar) vul de gekozen vakjes helemaal in (liefst met ballpoint, of met potlood) vul het formulier pas aan het einde in om fouten te voorkomen geen veranderingen aanbrengen: haal dan een nieuw formulier het onbeantwoord laten van een vraag werkt altijd in uw nadeel vergeet niet uw studienummer in te vullen (cijfers en vakjes!) U mag het boek "Contemporary Logic esign", het VHL boek, en eventuele prints van het college slides bij u hebben. Verder dus niets! Wij benadrukken dat u tijdens toetsen het tentamen dus GEEN gebruik mag maken van oude examens en toetsen. Gebruikt u deze toch dan zijn de tentamen fraude regels van toepassing. e toets is niet verplicht maar kan u in sommige gevallen van een 5 naar een 6 helpen bij het eindtentamen. Succes!! A. MC-vragen (gewicht: 0 6 % = 60 %) Vraag Gegeven bijgaand circuit: A Q it circuit is B Q a. een latch met geen verboden ingangscombinatie b. een latch; AB = 0 is de verboden ingangscombinatie c. geen bruikbaar geheugenelement: de Hold-combinatie ontbreekt d. geen van bovenstaande antwoorden. Vraag 2 Gegeven het volgende circuit met positive edge-triggered filpflops: In FF Q FF Q FF Q FF Q Out CLK CLK: t t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9...
Indien voor tijdstip t op In het constante signaal X wordt gezet, wanneer wordt X op zijn vroegst op Out waargenomen? Op of direct na: a. t 4 b. t 5 c. t 6 d. t 7 of later. Vraag 3 Welke van de volgende vereenvoudigingen is correct? A B C a. F = ((a + b )(a + c)) b. F = a d + c (a + bd) c. F = a(c + b) + cb + bd d. geen van bovenstaande antwoorden. F Vraag 4 Gegeven bijgaand circuit: e ROM heeft de volgende inhoud: A A0 0 ---------------------- 0 0 0 0 0 0 0 0 a b 2 bit ROM 2:4 EC A A0 0 S S0 G 0 2 3 F Welke van de volgende vereenvoudigingen is correct? c a. F = ca + cb b. F = c (a b) c. F = (a b) + cb d. geen van bovenstaande antwoorden. 2
Vraag 5 Gegeven de berekening C = A B in 2 s complement notatie. Er geldt A = 000 en C = 000. Wat is de waarde van B? a. B = -8 b. B = 46 c. B = 4 d. B kan niet in een 6-bit 2 s complement representatie worden berekend wegens overflow. Vraag 6 Gegeven de volgende elta I assembly code: set ld and add st xor add c 0000b 0000b 0000b R 0000b 000000b Wat gebeurt met A, Z en C na de executie van de laatste instructie? a. A = 08 H, C = 0, Z = 0 b. A = 08 H, C =, Z = 0 c. A = 09 H, C = 0, Z = d. A = 09 H, C =, Z = 0 Vraag 7 e onderstaande schakeling bestaat uit een nand -gate en een nor -gate waarop 4 signalen zijn aangesloten volgens de 9-waarden stdlogic standard. e uit -signaal is eveneens een stdlogic signaal. Wat is de waarde van het uitgangssignaal uit? (Hint: gebruik de Uittreksel van std_logic_64 ) a. U b. L c. X d. Z 3
Vraag 8 Gegeven is een hardware component met de volgende entity en architecture beschrijving: entity onbekend is port (a, b, c: in bit; d: out bit); end onbekend; architecture gedrag of onbekend is P: process (b, c) is if (b= ) then d<= 0 ; elsif (c event and c= 0 ) then d<=not(a); else d<=not(a); end if; end process; end gedrag; Welk van de onderstaande beweringen is juist? a. e component is een -flipflop met c als klok die werkt op alleen de neergaande flank en heeft tevens een asynchrone reset. b. e component is een -flipflop met c als klok die werkt op beide flanken en heeft tevens een asynchrone reset. c. e component is een T-flipflop met c als klok die werkt op beide flanken en heeft tevens een synchrone reset. d. e component is een T-flipflop met c als klok die werkt op beide flanken en heeft tevens een asynchrone reset. Vraag 9 Hieronder is de beschrijving van een entity schakeling gegeven met een aantal mogelijke architectures: entity schakeling is port (a, b, c: in bit; d: out bit); end schakeling; architecture een of schakeling is process (a,b) if (b= ) then d<=a; end process; end een; architecture twee of schakeling is process (a,b,c) if (c event and c= ) then if (b= ) then d<= 0 ; else d<=a; end if; end if; end process; end twee; 4
architecture drie of schakeling is process (b) if (b= ) then d<=a; end if; end process; end drie; architecture vier of schakeling is process (a,b,c) if (b= ) then d<= 0 ; elsif (c event and c= ) then d<=a; end if; end process; end vier; architecture vijf of schakeling is process (a) if (b= ) then d<=a; end if; end process; end vijf; Zie bovenstaande beschrijving van schakeling. Welke uitspraak is correct? a. architecture een beschrijft de werking van een flipflop met het signaal a als input, het signaal b als reset, en het signaal c als klok. b. architecture een beschrijft de werking van een latch met het signaal a als input en het signaal b als enable. c. architecture drie beschrijft de werking van een latch met het signaal a als input en het signaal b als enable. d. architecture vijf beschrijft de werking van een flipflop met het signaal a als input en het signaal b als klok. 5
Vraag 0 Hieronder wordt een beschrijving gegeven van een 4-bits comparator. e binaire signalen a en b worden vergeleken. Het resultaat hiervan wordt de boolean c. We geven 3 entitities en een architecture: --mogelijkheid : library IEEE: use IEEE.std_logic_64.all; use IEEE.std_logic_arith.all; entity comparator is port (a: in unsigned(3 downto 0); b: in unsigned(3 downto 0); c: out boolean); end comparator; --mogelijkheid 2: library IEEE: use IEEE.std_logic_64.all; use IEEE.std_logic_arith.all; entity comparator is port (a: in signed(3 downto 0); b: in signed(3 downto 0); c: out boolean); end comparator; --mogelijkheid 3: library IEEE: use IEEE.std_logic_64.all; use IEEE.std_logic_arith.all; entity comparator is port (a: in unsigned(3 downto 0); b: in std_logic_vector(3 downto 0); c: out boolean); end comparator; architecture werking of comparator is c <= (a < b); end werking; Welke van de drie entities wordt door de VHL compiler niet geaccepteerd? a. mogelijkheid wordt niet geaccepteerd. b. mogelijkheid 2 wordt niet geaccepteerd. c. mogelijkheid 3 wordt niet geaccepteerd. d. alle drie worden niet geaccepteerd. 6
Uittreksel van std_logic_64 ------------------------------------------------------------------- -- tables for logical operations ------------------------------------------------------------------- -- truth table for "and" function CONSTANT and_table : stdlogic_table := ( -- ---------------------------------------------------- -- U X 0 Z W L H - -- ---------------------------------------------------- ( 'U', 'U', '0', 'U', 'U', 'U', '0', 'U', 'U' ), -- U ( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ), -- X ( '0', '0', '0', '0', '0', '0', '0', '0', '0' ), -- 0 ( 'U', 'X', '0', '', 'X', 'X', '0', '', 'X' ), -- ( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ), -- Z ( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ), -- W ( '0', '0', '0', '0', '0', '0', '0', '0', '0' ), -- L ( 'U', 'X', '0', '', 'X', 'X', '0', '', 'X' ), -- H ( 'U', 'X', '0', 'X', 'X', 'X', '0', 'X', 'X' ) -- - ); -- truth table for "or" function CONSTANT or_table : stdlogic_table := ( -- ---------------------------------------------------- -- U X 0 Z W L H - -- ---------------------------------------------------- ( 'U', 'U', 'U', '', 'U', 'U', 'U', '', 'U' ), -- U ( 'U', 'X', 'X', '', 'X', 'X', 'X', '', 'X' ), -- X ( 'U', 'X', '0', '', 'X', 'X', '0', '', 'X' ), -- 0 ( '', '', '', '', '', '', '', '', '' ), -- ( 'U', 'X', 'X', '', 'X', 'X', 'X', '', 'X' ), -- Z ( 'U', 'X', 'X', '', 'X', 'X', 'X', '', 'X' ), -- W ( 'U', 'X', '0', '', 'X', 'X', '0', '', 'X' ), -- L ( '', '', '', '', '', '', '', '', '' ), -- H ( 'U', 'X', 'X', '', 'X', 'X', 'X', '', 'X' ) -- - ); -- truth table for "not" function CONSTANT not_table: stdlogic_d := -- ------------------------------------------------- -- U X 0 Z W L H - -- ------------------------------------------------- ( 'U', 'X', '', '0', 'X', 'X', '', '0', 'X' ); ------------------------------------------------------------------- -- overloaded logical operators ( with optimizing hints ) ------------------------------------------------------------------- FUNCTION "and" ( l : std_ulogic; r : std_ulogic ) RETURN UX0 IS RETURN (and_table(l, r)); EN "and"; FUNCTION "nand" ( l : std_ulogic; r : std_ulogic ) RETURN UX0 IS RETURN (not_table ( and_table(l, r))); EN "nand"; FUNCTION "or" ( l : std_ulogic; r : std_ulogic ) RETURN UX0 IS RETURN (or_table(l, r)); EN "or"; FUNCTION "nor" ( l : std_ulogic; r : std_ulogic ) RETURN UX0 IS RETURN (not_table ( or_table( l, r ))); EN "nor"; FUNCTION "not" ( l : std_ulogic ) RETURN UX0 IS RETURN (not_table(l)); EN "not"; 7
B. Open vragen (gewicht: 40%) Stel u wordt gevraagd om een digitaal systeem te ontwerpen die een inbraakbeveiliging van een woonhuis realiseert. e inbraakbeveiliging kan door de eigenaar mbv. een afstandsbediening aan en uit worden gezet. Als de eigenaar zijn huis verlaat zet hij de inbraakbeveiliging aan. In de stand aan moet het systeem als volgt werken. Als het woonhuis betreden wordt (hetzij via de voordeur, hetzij via een andere ingang), wordt (via sensors) een timer geactiveerd, die na een vertragingstijd Δ een alarm doet afgaan. Indien de eigenaar voor die tijd de inbraakbeveiliging mbv. zijn afstandsbediening uit zet, is er niets aan de hand. In geval van een inbreker zal de inbraakbeveiliging echter niet uitgezet worden, waarop na Δ het alarm zal afgaan. it alarm kan alleen beëindigd worden door de inbraakbeveiliging uit te zetten. U wordt gevraagd om een FSM te ontwerpen die de besturing vormt van de inbraakbeveiliging. U heeft de beschikking over de volgende signalen: signaal betekenis: -------------------------------------------------------------------------------------------------------------- E ingangsignaal: ( enable ), E = 0: er is op uit gedrukt op de afst.bed. E = : er is op aan gedrukt op de afst.bed. S ingangsignaal: ( sensor ), S = 0: deuren en ramen zijn dicht en heel S = : deuren of ramen zijn open of kapot A uitgangsignaal: ( alarm ), A = 0: alarm niet actief A = : alarm actief Naast bovengenoemde signalen E, S, en A heeft u de beschikking over een clocksignaal CLK. Om de gewenste vertragingstijd te implementeren kunt u gebruik maken van een reeds ontworpen timer met ingangsignaal R (run timer) en uitgangsignaal T (timeout). Het gedrag van de timer kunt u bepalen aan de hand van de bijbehorende VHL specificatie (wat gebeurt er met T en hoe moet R bestuurd worden?): ENTITY timer IS PORT ( R: IN bit; -- run T: OUT bit; -- timeout CLK: IN bit -- clock ); EN timer; ARCHITECTURE timer_arch OF timer IS PROCESS (CLK) VARIABLE count: INTEGER := 0; IF (CLK event AN CLK = ) THEN IF (R = 0 ) THEN T <= 0 ; count := 0; ELSE IF (count < 00000000) THEN T <= 0 ; count := count + ; ELSE T <= ; EN IF; EN IF; EN IF; EN PROCESS; EN timer_arch; 8
Vraag (0%) Kies voor de FSM van de besturing een Moore machine en specificeer het gewenste gedrag mbv. een ASM (dit moet een ASM zijn!) met gebruikmaking van de eerder beschreven signalen A, E, R, S, T. eze ASM vormt tevens de basis voor de volgende vraag. (Ook als uw ASM fout is, wordt uw ASM als uitgangspunt gehanteerd bij de beoordeling). Vergeet niet dat de inbraakbeveiliging altijd uit gezet moet kunnen worden. Vraag 2 (5%) Ontwerp nu een hardware-oplossing voor de besturing aan de hand van uw FS/ASM. a. Schrijf de waarheidstabel op, die aangeeft hoe de nieuwe state (S i, i = 0.. 3) en uitgangsignalen (A, R) afhangen van de huidige state (S i ) en ingangsignalen (E, S, T). b. Kies een state assignment die de states S i afbeeldt op de state-variabelen Q j. e state-opvolging hoeft niet progressief te zijn. c. Hoeveel ingangsvariabelen hebben de K-maps van Q j +, A en R? Teken de K-maps alleen voor A en R, en leidt de expressies af voor A en R. Vraag 3 Gegeven het volgende systeem met de getekende componenten: Component_type I: - architecture fast - gate_delay = 3ns Systeem Component_type I: - architecture small - gate_delay = 4ns A C A C B B Component_type I: - architecture slow - gate_delay = 6ns A C Component_type II: - gate_delay = 2ns A B B C Vraag 3 a (5%) Geef de entity beschrijvingen van de getekende componenten. Let op: tel goed het aantal benodigde componenten. Let op: benut de mogelijkheid in VHL om verschillende delays te kunnen specificeren voor entities. Vraag 3 b (0%) Geef de entity beschrijving en de structurele architecture beschrijving van het gegeven systeem. Hierbij wordt aangenomen dat de benodigde componenten in de huidige werk-directory staan. Let op: vergeet niet alle benodigde declaraties te doen binnen de architecture beschrijving. 9
Uitwerkingen Toets igitale Systemen 0/06/2006, 8.30 0.30 uur MC-vragen:. b 6. d 2. a 7. c 3. c 8. d 4. a 9. b 5. d 0. c Vraag e ASM ziet er als volgt uit: S0 0 E S 0 E S S2 R = 0 E T S3 A = 0 0 0 E 0
Vraag 2 a) e toestandstabel: Huidige state Volgende state Uitgang EST 0XX 00 0 0 R A ---------------------------------------------------------------- S0 S0 S S S S 0 0 S S0 S S S2 S2 0 0 S2 S0 S2 S3 S2 S3 0 S3 S0 S3 S3 S3 S3 0 b) State assignment: state Q Q 0 ----------------------- S0 0 0 S 0 S2 S3 0 c) e K-maps van Q + 0, Q +, A en R hebben respectievelijk 5, 5, 2 en 2 variabelen (zie ook toestandstabel). e K-maps van R en A (gegeven de eerdere state assignment): R: Q : 0 Q 0 : ----------- 0 0 0 0 => R = Q. Q 0 ----------- A: Q : 0 Q 0 : ----------- 0 0 0 0 => A = Q. Q 0 -----------
Vraag 3 a) entity component is generic (gate_delay: Time = 2 ns); port (a, b: in bit; c, d: out bit); end component; entity component2 is generic (gate_delay: Time = 2ns); port (a, b, c: in bit; d: out bit); end component2; b) entity systeem is port (a, b, c, d: in bit; e, f, g: out bit); end component2; architecture circuit of systeem is --component and signal declarations component component is generic (gate_delay: Time = 2ns); port (a, b: in bit; c, d: out bit); end component; component component2 is generic (gate_delay: Time = 2ns); port (a, b, c: in bit; d: out bit); end component; signal s, s2, s3, s4: bit; -- configuration specification for C: component use entity WORK.component(fast); for C2: component use entity WORK.component(slow); for C3: component use entity WORK.component(small); C: component generic map (gate_delay => 3 ns) port map (a => a, b => b, c => s, d => s2); C2: component generic map (gate_delay => 6 ns) port map (a => c, b => d, c => s3, d => s4); C3: component generic map (gate_delay => 4 ns) port map (a => s, b => s2, c => e, d => f); C4: component2 port map (a => s2, b => s3, c => s4, d => g); end circuit; 2