LABORATIONSINSTRUKTION LABORATION

Relevanta dokument
LABORATIONSINSTRUKTION LABORATION. Räknare och skiftregister med sekvensiell VHDL. LAB NR Ver KURS. Digitalteknik INNEHÅLL. 1.

VHDL och laborationer i digitalteknik

Konstruktionsmetodik för sekvenskretsar

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

LABORATIONSINSTRUKTION

VHDL 1. Programmerbara kretsar

DESIGN AV SEKVENTIELL LOGIK

KALKYLATOR LABORATION4. Laborationens syfte

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

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

Konstruktion av digitala system - VHDL

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Sekvensnät. William Sandqvist

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

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

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

std_logic & std_logic_vector

Digital elektronik CL0090

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

Sekvensnät i VHDL del 2

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

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

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

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

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

VHDL2. Sekvensnätsexemplet

VHDL2. Sekvensnätsexemplet

LABORATION TSEA22 DIGITALTEKNIK D

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

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Simulering med ModelSim En kort introduktion

IE1205 Digital Design: F9: Synkrona tillståndsautomater

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

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

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

Programmerbar logik och VHDL. Föreläsning 4

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

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

DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning...

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

DIGITALTEKNIK. Laboration D172

Digitala projekt Elektro- och informationsteknik

Strukturell VHDL. Grundläggande kunskaper om. och TESTBÄDD. UMEÅ UNIVERSITET Tillämpad fysik och elektronik Lars Wållberg ver 1.

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

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

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

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

LEJON LABORATION3. Laborationens syfte

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

Digitalteknik: CoolRunner-II CPLD Starter Kit

TSIU05 Digitalteknik. LAB1 Kombinatorik LAB2 Sekvensnät LAB3 System

(2B1560, 6B2911) HT08

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

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

KOMBINATORISKA FUNKTIONER...1

Laboration i digitalteknik Introduktion till digitalteknik

LiTH Lab1: Asynkron seriell dataöverföring via optisk länk Laboration 1. Asynkron seriell dataöverföring via optisk länk

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

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

DESIGN AV KOMBINATORISK LOGIK

Digital Design IE1204

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

Tenta i Digitalteknik

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

Tenta i Digitalteknik

Tentamen i IE1204/5 Digital Design Torsdag 29/

LABORATION TSEA22 DIGITALTEKNIK D

L15 Introduktion modern digital design

Flödesschema som visar hur man använder Quartus II.

Tenta i Digitalteknik

Tentamen IE Digital Design Måndag 23/

TSEA22 Digitalteknik 2019!

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

Tentamen i Digital Design

Laborationshandledning

Laboration i digitalteknik

Tentamen i Digitalteknik 5p

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

IE1204/IE1205 Digital Design

LABORATIONER I DIGITALTEKNIK. Laboration 3 Speciella sekvenskretsar

LABORATIONSINSTRUKTION

F5 Introduktion till digitalteknik

LAB VHDL-programmering

Digital Design IE1204

LABORATIONSINSTRUKTION

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Laborationshandledning

Exempel på tentamensfrågor Digitalteknik

Omtentamen IE Digital Design Måndag 14/

Examens arbete 10-poäng C-nivå Mälardalens Högskola Testbed for a semi-full-custom mixed signal ASIC

Tenta i Digitalteknik

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

Introduktion till syntesverktyget Altera Max+PlusII

Tentamen i Digitalteknik, EITF65

Digitala elektroniksystem

Kodlås. Kopplingsschema över kodlåset PAL-18

Tentamen i Digitalteknik TSEA22

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

Digitalteknik syntes Arne Linde 2012

Transkript:

Högskolan Dalarna Elektroteknik LABORATION LABORATIONSINSTRUKTION Sekvensnät med VHDL KURS Digitalteknik LAB NR Ver9 5 INNEHÅLL. Kaskadkopplad räknare 2. Elektronisk tärning NAMN KOMMENTARER PROGRAM/KURS UTFÖRD GODKÄND SIGN

Laboration nr 5 Digitalteknik Innehåll: Syfte: Konstruktion av sekvensiella nät med VHDL Att få kunskap och praktisk efarenhet av: grafiskt gränssnitt för strukturell VHDL principen för kaskadkopplade räknare beskrivning av ett sekvensnät av Moore-typ med VHDL simulering av digitala konstruktioner realisering (programmering) av VHDL-konstruktioner i en CPLD dokumentation Kaskadkopplade räknare För att konstruera räknare som innehåller flera siffror använder man ofta kaskadkoppling. Kaskadkoppling innebär att räknaren delas upp i ett antal separata räknare, t.ex. entalstiotals-, hundratalsräknare, där varje räknare ger en signal när den har räknat till sitt slutvärde. Signalen används för att göra nästa räknare enable under en klockperiod och man kan lätt göra räknare med godtyckligt många siffror. Anledningen till att man inte kan göra räknare med många siffror direkt är att logiken växer dramatisk med antalet räknarsteg. I läroboken finns exempel som visar principen för en kaskadkopplad räknare på sidan 262, studera figuren. En nackdel med kaskadkopplade räknare är att räknarens snabbhet minskar med antalet kaskadkopplade räknesteg. Orsaken är att varje gång enablesignalen aktiverar nästa räknare så används kombinatorisk logik efter räknarens registerutgångar och det innebär en extra tidsfördröjning. För en 3-siffrig dekadräknare blir den största fördröjningen varje gång räknaren ökar -tals-siffran (t.ex.99 till ) eftersom då måste två enablesignaler aktiveras innan -tals siffran kan ändras. Det kan verka onödigt att ta hänsyn till detta men för en tresiffrig dekadräknare kan det innebära att räknehastigheten minskar från MHz för entalssiffran till 5 MHz på hundratalssiffran. Den maximala räknehastigheten för hela räknaren blir naturligtvis bara 5 MHz vilket är en rejäl försämring. Ett sätt att undvika den extra fördröjningen är att avkoda räknevärdet innan slutvärdet dvs värdet (8) för en dekadräknare och att använda det avkodade värdet som insignal till en extra D-vippa. Utsignalen från den extra D-vippan erhålles direkt efter nästa klockflank, dvs på räknevärdet (9), och utsignalen används för att göra nästa räknare enable. Metoden innebär att den extra tidsfördröjningen försvinner och att alla siffrorna i räknaren kan klockas med samma frekvens. Med en trebitars dekadräknare enligt förutsättningarna ovan innebär det att två extra D-vippor alltså fördubblar räknehastigheten. Metoden kallas för pipelining och den används ofta i datorer i liknande sammanhang. Ofta är programvarorna som gör syntesen mycket effektiva och beräknar själv den optimala lösningen. För en enkel räknare är det knappast troligt att räknehastigheten blir högre om man gör en egen pipelining. Lab 5 - - pls

På laborationen ska en 3-siffrig dekadräknare simuleras och testas med utvecklingskortet till CoolRunner. Räknaren ska enbart kunna räkna uppåt. På kortet finns 4 sifferdisplayer och 3 av dem ska användas för att visa räknevärdet som kommer att variera från till 999. Eftersom sifferdisplayen är multiplexerad krävs ytterligare en del elektronik som finns klar i laborationsbeskrivningen. Räknaren ska ha anslutningar enligt figuren nedan. en clk resetn cnt_dec cnt_dec cnt_dec ones tens hdrs De färdiga rutinerna och anslutningarna till CPLD:en framgår av schemat: Anslutningar: clk till stift 38 resetn till stift 94 transistors till stift 3,29,28,26 led till stift 56,53,6,58,57,54,6 Modulerna: clock_divider delar ner systemklockans MHz till en passande frekvens. cnt_4 ger adressignaler,,, som styr mux:en, ger även signaler till transistorerna,,, i samma takt. mux4 väljer rätt siffra, ones, tens, hdrs som ska visas på sifferdisplayen. hex2led omvandlar siffran till 7-segmentkod. Uppgift Kopiera koderna för de färdiga modulerna, generera schemasymboler. Skriv en modul för en dekadräknare och använd den tre gånger för att göra den tresiffriga dekadräknaren. Simulera modulen och övertyga dig om att den gör rätt innan du kopplar ihop den med de övriga. Tips för simuleringen finns i slutet av laborationen. Redovisning Redovisa uppgiften med schemaritning, antal använda makroceller, register etc (från Fitter report), väsentliga data från timing report och eventuellt egna kommentarer. Redovisa i ett Word-dokument med typsnittet Courier på passande ställen. Frivillig uppgift: Gör en styrbar 999-räknare som kan räkna uppåt/nedåt! Lab 5-2 - pls

2. Elektronisk speltärning (sekvenskrets) Uppgift: Konstruera en elektronisk speltärning beskriven av nedanstående tillståndsdiagram. Tärningen utförs som ett synkront sekvensnät av Moore-typ innehållande totalt 7 nyttiga tillstånd S-S7. S är start- eller resettillståndet med utsignalen, dvs alla ögon släckta. S2-S7 utgör de normala räknetillstånden för tärningen. Asynkr. reset S GOn S2 S7 6 S3 2 S6 S4 5 S5 3 4 Då insignalen GOn (obs tag bort strecket ovanför GOn i figuren) aktiveras skall tärningen räkna modulo-6 enligt tillståndsgrafen ovan tills GOn deaktiveras varvid tärningen stannar och visar värdet av tärningskastet. Resultatpresentationen sker med 7 st. lysdioder arrangerade som ögonen på en tärning enligt figuren nedan. Synkronisera insignalen GOn med en D-vippa. Tabellen anger hur resp. LED skall aktiveras beroende av tärningsvärdet. L L2 L3 L4 L5 L6 L7 LLLLLLL 234567 2 3 4 5 6 Vid laborationstillfället finns en färdig modul med lysdioder och motstånd. Lysdiderna är kopplade så att de tänds av en låg nivå från CPLD:n. Undersök hur modulen är kopplad innan du bestämmer vilka pinnar som ska användas på CPLD-kretsen. Som klocksignal till tärningen kan systemklockan frekvens delad till ca Hz användas. Redovisning: På ett bra sätt. Lab 5-3 - pls

Färdiga moduler för 999-räknaren: -- Engineer: pls -- Create Date: 3:: 9/27/2 -- Module Name: clock_divider - rtl use IEEE.STD_LOGIC_64.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity clock_divider is port(clk_in,resetn: in std_logic; en_div_clk: out std_logic); end clock_divider; architecture rtl of clock_divider is signal cnt_b: std_logic_vector(6 downto ); process(clk_in,resetn) if resetn='' then cnt_b<= ""; elsif clk_in='' and clk_in'event then cnt_b<= cnt_b +; end if; end process; en_div_clk<='' when cnt_b="" else ''; -- Engineer: pls -- Create Date: 3:5:24 9/27/2 -- Module Name: cnt_4 - rtl use IEEE.STD_LOGIC_64.ALL; use IEEE.STD_LOGIC_unsigned.ALL; entity cnt_4 is port(clk,resetn: in std_logic; cnt4: out std_logic_vector( downto ); transistors: out std_logic_vector(3 downto )); end cnt_4; architecture rtl of cnt_4 is signal cnt4_b: std_logic_vector( downto ); process(clk,resetn) if resetn='' then cnt4_b<=""; elsif rising_edge(clk) then cnt4_b<=cnt4_b+; end if; end process; cnt4<=cnt4_b; transistors<= "" when cnt4_b="" else "" when cnt4_b="" else "" when cnt4_b="" else ""; Lab 5-4 - pls

-- Engineer:pls -- Create Date: 3:43:7 9/27/2 -- Module Name: mux4 - rtl use IEEE.STD_LOGIC_64.ALL; entity mux4 is port(one,ten,ths: in std_logic_vector(3 downto ); mux_adr: in std_logic_vector( downto ); bcd: out std_logic_vector(3 downto )); end mux4; architecture rtl of mux4 is bcd<= one when mux_adr="" else ten when mux_adr="" else ths when mux_adr="" else ""; -- Module Name: hex2led - rtl -- Target Devices: CoolRunner -- Description: -- segment encoding -- -- --- -- 5 -- --- <- 6 -- 4 2 -- --- -- 3 use IEEE.STD_LOGIC_64.ALL; entity hex2led is port( HEX: in STD_LOGIC_VECTOR (3 downto ); LED: out STD_LOGIC_VECTOR (6 downto )); end hex2led; architecture rtl of hex2led is with HEX SELect LED<= "" when "", -- "" when "", --2 "" when "", --3 "" when "", --4 "" when "", --5 "" when "", --6 "" when "", --7 "" when "", --8 "" when "", --9 "" when "", --A "" when "", --b "" when "", --C "" when "", --d "" when "", --E "" when "", --F "" when others; -- Lab 5-5 - pls