7HQWDPHQL.XQGDQSDVVDGHNUHWVDUI U(P Datum: 991012 Tid: 8.00-13.00 Lokal: E138 Hjälpmedel: Appendix A. VHDL-syntax. (bifogas detta prov) Appendix B.2. IEEE-package (bifogas detta prov) Vid eventuella frågor under tentamen ring följande nummer: Alf Johansson: 15 74 78 Betyg: Godkänd 10-14 4 15-19 5 20-25 Max poäng: 25 Examinator: Alf Johansson 8SSJLIWHUQDL'HO$RFK&UHGRYLVDVGLUHNWLIUnJHEODGHWRFKXSSJLIWHUQDL'HO% UHGRYLVDVSnVHSDUDWSDSSHU'HO%NUlYHUIXOOVWlQGLJDO VQLQJDU Namn: Sidan 1 av 8
7HQWDPHQVIUnJRU'HO$ 1. VHDL-språket var från början ett beskrivnings- och simuleringsspråk. Det används idag även för att konstruera allt från stora ASIC-kretsar till ganska enkla PLD-kretsar. Vad innebär då begreppet syntes? (1p) VHDL-beskrivningen överförs till grindar och vippor etc. Det kallas också teknologimappning. 2. Vad innebär en testbänk i samband med VHDL? (1p) En testbänk i VHDL är en komponent som testar andra komponenter. Testbänken skapar stimuli till testobjektet och verifierar testobjektets utgångar. 3. Beskriv följande grindnät i VHDL. Enbart tilldelningen av signalen X behöver tas med. X<=not A or (B and C) or D 4. Varför är följande kombinatoriska process inte korrekt om syftet är att den skall vara rent kombinatorisk och inte innehålla några latchar? C tilldelas inte alltid ett värde när processen körs. Om a= 1 så får c inget nytt värde och en latch skapas. 5. Vad blir detta för vektor? Skriv den som ett bitmönster inom citationstecken. (1p) 00101011 Sidan 2 av 8
6. Vad får signalerna q1 och q2 för värde när koden är simulerad i 10 ns? Typen std_logic är definierad i Appendix B.2, vilket är bifogat. (3p) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity T6 is end; architecture rtl of T6 is signal q1,q2: std_logic; signal a: std_logic:= 1 ; begin process(a) q1<= 0 ; if a= 1 then q1<= 1 ; end process; I sekventiella delen fås en drivare och det är den sista i sekvensen som gäller. q1 blir 1. end; q2<= 0 ; q2<= 1 when a='1' else 0 ; Två drivare för q2 i parallella delen. Första drivaren 0 och andra 1.Detta ger i std_logic X. Sidan 3 av 8
'HO% 7. I följande VHDL-beskrivning finns ett antal insmugna fel. Markera felen och beskriv varför Du anser att det är fel. Förutsättning är att koden skall vara syntetiserbar (4 p) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity T7 is port( a: std_logic; reset: std_logic; c: out std_logic); end; architecture RTL of T7 is signal X: std_logic; signal clk: std_logic:= 0 ; signal Y: std_logic_vector( 3 downto 0); variable Z: std_logic; begin p: process(a,clk,reset) signal PX: std_logic; begin if reset= 1 then PX<= 0 ; end if; wait until clk= 1 ; PX<=not a; end process; Z:= 1 when a= 1 else 0 ; Wait får ej användas tillsammans med sensitivity list. Variabler kan enbart deklareras och användas i sekentiella delen. Signaler kan enbart deklareras i parallella delen. end ; Clk <= not Clk after 100 ns; Ej syntetiserbar. Sidan 4 av 8
8. Konstruera en flankdetektor, Edge_Detect, med hjälp av VHDL. Fullständig kod för VHDL-komponenten skall vara med i lösningen, både entity och architecture. (5p) Flankdetektorns funktion Flankdetektorn skall skapa en puls på utgången Output för stigande flank hos insignalen Input. Pulsen på utgången Output skall vara en period hos klocksignalen Clk. Utgången Output skall vara spikfri. Komponenten Edge_Detect skall ha en Reset-ingång. Reset-funktionen skall vara av asynkron typ. Alla signaler skall vara av std_logic typ. Input, clk och reset är ingångar och Output är utgång. Sidan 5 av 8
'HO& 9. FPGA-kretsar (Field Programmable Gate Array) har i många tillämpningar ersatt GAkretsar. (Gate Array). Vilka egenskaper hos FPGA gör att Du skulle välja den framför GA? Enkelt att bygga prototyper. (FPGA är lämpligt för prototyper även av GA) Korta omloppstider vid konstruktionsändringar genom att man kan själv kan programmera kretsarna. Omprogrammerbara i fält. Låga fasta kostnader (NRE, NonREcurring Engineering cost för en GA går på flera hundratusentalskronor). God tillgång på billiga och bra konstruktionsverktyg. Vilka egenskaper hos GA gör att Du skulle välja den framför FPGA? Lägre styckekostnad än för FPGA Snabbare och effektsnålare än FPGA Det finns större kretsar i GA än i FPGA, 10. Vad innebär begreppen styrbarhet och observerbarhet? Vad beskriver dessa båda begrepp tillsammans? Styrbarhet = hur väl man från primära ingångar kan styra tillstånd i interna noder Observerbarhet = hur väl man på primära utgångar kan avläsa tillstånd i interna noder. Styrbarhet + observerbarhet = testbarhet Sidan 6 av 8
11. Scan-teknik och Boundary Scan-teknik används vid debugging och test. Vad innebär scan-teknik? Varför används den? Beskriv scan-teknikens realisering med illustrerat exempel. Scan-teknik innebär att man t.ex. i en ASIC, i testmod, kopplar samman vipporna i scankedjor. Detta gör man för att kunna styra och observera interna tillstånd. Styrbarhet och observerbarhet i en krets med hundratals till hundratusentals vippor blir i annat fall synnerligen dålig och det kan vara omöjligt att skapa alla tänkbara interna tillstånd med enbart tillgängliga ingångar. Sidan 7 av 8
Vad innebär Boundary Scan-teknik? Exemplifiera realiseringen av Boundary Scan-teknik i en komponent. I standarden ingår tre tillämpningar, nämligen extern test, intern test och sampling. Illustrera extern test. Boundary Scan används för att testa kretskort och flerchipsmoduler. Kompakta byggsätt gör det svårt att skapa interna mätpunkter på kortet eller i modulen. De olika kretsarna kan förses med Boundary Scan, vilket gör det möjligt att läsa av ingångar och sätta utgångar. Detta görs med Boundary Scan-kedjor. Genom att sätta en utgång på en krets och läsa av motsvarande ingång på en annan krets så kan kortslutningar och avbrott hos mönsterkortet detekteras. In- och utgångar hos kretsar förses med Boundary Scan-vippor vilka, i testmod, tar över funktionen hos dessa IO-pinnar. Boundary Scan-vipporna bildar nämnda scan-kedjor. För att styra Boundary Scan-funktionen i en krets används en Tillståndsmaskin ( TAP, Test Access Port). Sidan 8 av 8