Digital elektronik CL9 Föreläsning 5 27-2-2 8.5 2. Naxos Demonstration av uartus programvara. Genomgång av uartus flödesschema. Detta dokument finns på kurshemsidan. http://www.idt.mdh.se/kurser/cl9/ VHDL-kod för en multiplexer. filnamn My Documents\CL9\VHDL8_mux\vhdl8_mux.vhd Program för en 4- MUX Två streck innebär att resten av raden är en kommentar. Tag för vana att alltid skriva in filnamn och sökväg UP3 kortet utgång ut på D6 FPGA 53 ingångar d på SW4 FPGA 48 d på sw5 FPGA 49 d2 på SW6 FPGA 57 d3 på SW7 FPGA 62 a på SW3. FPGA 58 a på SW3.4 FPGA 6 Var noggran med parenteser!! library ieee; use ieee.std_logic_64.all; entity VHDL8_mux is port( d,d,d2,d3: in std_logic; a,a: in std_logic; ut: out std_logic); end VHDL8_mux; architecture beteende of VHDL8_mux is begin ut<= ( (d and (not a) and (not a)) or (d and ( not a) and a) or (d2 and a and ( not a)) or (d3 and a and a)); end beteende; 27-2-2 H:\CL9\F-27_P3\F5_27.doc /7
Tag för vana att skriva in vilka portar som skall användas. Detta kan man vänta med tills man lyckats att kompilera koden. Det finns en förteckning över en del portar på kurshemsidan Portadresser UP3_pin resp Utvecklingskort_DE2 En fullständig förteckning finns i manualerna till respektive kort. För att simulera koden behövs inte portar anges. Programmet för MUX är skrivet med ledning av hur en multiplexer är konstruerad. Se figur 2.3 Hemert, Digitala kretsar. Koden är inte speciellt lättläst, och det är lätt att göra fel bland alla parenteser. Här visas ett bättre program. filnamn My Documents\CL9\VHDL9_mux2\mux2.vhd Ett bättre program för en 4- mux UP3 kortet utgång på D6 FPGA 53 Ingångar: d[] på SW4 FPGA 48 d[] på sw5 FPGA 49 d[2] på SW6 FPGA 57 d[3] på SW7 FPGA 62 a[] på SW3. FPGA 58 och a[] på SW3.4 FPGA 6 library ieee; use ieee.std_logic_64.all; entity mux2 is port( d: in std_logic_vector(3 downto ); a: in std_logic_vector( downto ); ut: out std_logic); end; architecture bet of mux2 is begin with a select ut<= d() when "", d() when "", d(2) when "", d(3) when others; end; Här har samhörande variabler samlats i vektorer. Det finns fyra d-ingångar. Dessa är samlade i en vektor d. Index 3 till. Lägg märke till d(3), där kan man skriva : d(3) when men man föredrar konstruktionen d(3) when others. 27-2-2 H:\CL9\F-27_P3\F5_27.doc 2/7
Jämför med C-programmering. Switch Man använder ett antal case och det sista får vara default. Del två av föreläsningen. Inledning till vippor och tillstånd. Vad händer om man kopplar upp en sådan här krets? A Antingen blir A = och därmed så blir = eller A= och =. Kretsen har två möjliga tillstånd. För att växla tillstånd måste man tvinga A att anta ett lågt eller ett högt värde. Anslut till jord eller till matningsspänning. Det utmärkande för den här typen av kretsar är att det finns en återkoppling. En koppling mellan utgång och ingång. Latch med NOR-grindar. B A Figuren ovan kan också ritas som B A 27-2-2 H:\CL9\F-27_P3\F5_27.doc 3/7
Rita en tabell över vad som händer för olika insignaler. Insignaler är A, B och Utsignaler är och Nuvarande Nästa A B Nuvarande och nästa har olika värden Nuvarande och nästa har olika värden Om insignalerna är =, A= och B= så blir nästa -värde =. Man säger att kretsen växlar till ett nytt tillstånd. Tillståndet =, A= och B= är stabilt. Detta visas med fetstil i tabellen ovan. Karnaughdiagram kan ritas för tabellen ovan AB Diagrammet visar näta tillstånd. Detta brukar betecknas med + A och B är inte vedertagna namn på insignalerna. A = S Set. Ett-ställer B = R Reset. Noll-ställer. Man kan inte ett-ställa och noll-ställa samtidigt. ( Resultatet ovan blir noll ) Så här brukar diagrammet se ut: SR SR = leder till ett förbjudet tillstånd, kombinationen SR = får inte inträffa Kretsen har två tillstånd. Man kan rita ett tillstånds-diagram. 27-2-2 H:\CL9\F-27_P3\F5_27.doc 4/7
Övergången mellan de två tillstånden bestäms av SR = = Kretsen kallas en latch, låskrets. Kretsen är asynkron. Med detta menas att utsignalen ändras oberoende av en klocka. ( I det här fallet finns ingen klocka ). Ett sätt att undvika tillståndet S= R= är att koppla en inverterare mellan S och R. Man får då endast en ingång. Denna ingång kallas D. Man har fått en D-latch. D R S Figuren ovan sammanfattas sedan till: D Synkrona sekvenskretsar styrs av en klocka. Klockingången anges på något av följande sätt: D D D D Första vippan är positivt nivåtriggad. Den kan ändras då klocksignalen är en etta. Andra vippan är negativt nivåtriggad. Ändras då klocksignalen är noll. Tredje vippan är flankrtiggad. Ändras då klocksignalen går från noll till ett. Alltså endast möjlig att ändra under en kort kort tidsperiod. Fjärde vippan är negativt flanktriggad. Motsattsen mot vippa tre. 27-2-2 H:\CL9\F-27_P3\F5_27.doc 5/7
Tillståndsdiagram för D-vippa kan ritas utifrån diagrammet för SR-vippan SR = = = D = medför att SR = och D = medför att SR =. D = = = Ett annat sätt att undvika att SR = är att göra ytterligare återkopplingar för SRvippan. Detta leder till JK-vippan. Karnaughdiagrammet för denna vippa är: JK Ingångarna kallas i det här fallet J för set och K för reset. Funktionstabellen skrivs som: J K innebär att nästa tillstånd är det motsatta mot tidigare tillståndet. 27-2-2 H:\CL9\F-27_P3\F5_27.doc 6/7
Till sist. Rita tillståndsdiagram för följande sekvenskrets. & x & D D x är insignal. Tillståndet för kretsen ges av värdena på. x D = x D = x + + Tillstånden i bubblorna Insignalen vid pilarna. Observera att det i det här fallet inte finns någon utsignal. 27-2-2 H:\CL9\F-27_P3\F5_27.doc 7/7