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

Relevanta dokument
VHDL 1. Programmerbara kretsar

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

Simulering med ModelSim En kort introduktion

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

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

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

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

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

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

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

Konstruktion av digitala system - VHDL

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

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Simulering med ModelSim En kort introduktion

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

INTRODUKTION TILL VIVADO

Konstruktionsmetodik för sekvenskretsar

DIGITALTEKNIK. Laboration D172

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Digital- och datorteknik

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

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

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

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

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

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

Tentamen i Digitalteknik TSEA22

KALKYLATOR LABORATION4. Laborationens syfte

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

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

Sekvensnät. William Sandqvist

Sekvensnät i VHDL del 2

L15 Introduktion modern digital design

VHDL och laborationer i digitalteknik

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

IE1204/IE1205 Digital Design

Digital- och datorteknik

LEJON LABORATION3. Laborationens syfte

Digitala projekt Elektro- och informationsteknik

DESIGN AV SEKVENTIELL LOGIK

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

Tentamen i Digitalteknik, EITF65

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

Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg. Laboration nr 4 i digitala system ht-15. Ett sekvensnät. grupp. namn.

LABORATIONSINSTRUKTION LABORATION

Programmerbar logik och VHDL. Föreläsning 1

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

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

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

std_logic & std_logic_vector

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

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

F5 Introduktion till digitalteknik

Omtentamen IE Digital Design Måndag 14/

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

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

Programmerbar logik och VHDL. Föreläsning 4

(2B1560, 6B2911) HT08

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

Datorkonstruktion. Datorkonstruktion 2018, 8hp

Tenta i Digitalteknik

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

Digital elektronik CL0090

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

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

Tentamen i IE1204/5 Digital Design Torsdag 29/

Tentamen IE Digital Design Måndag 23/

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

Simulera med ModelSim

Tentamen i Digitalteknik 5p

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

SEKVENSKRETSAR. Innehåll

IE1205 Digital Design: F9: Synkrona tillståndsautomater

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

Tentamen IE Digital Design Fredag 15/

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

Digital Design IE1204

Tentamen i Digitalteknik, EIT020

Introduktion till syntesverktyget Altera Max+PlusII

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

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

Tenta i Digitalteknik

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

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

VHDL2. Sekvensnätsexemplet

Tentamen i IE Digital Design Fredag 21/

Laboration i digitalteknik Introduktion till digitalteknik

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

IE1204/5 Digital Design typtenta

VHDL2. Sekvensnätsexemplet

Digitalteknik syntes Arne Linde 2012

Tenta i Digitalteknik

Tentamen i Digitalteknik, TSEA22

TSEA22 Digitalteknik 2019!

LAB VHDL-programmering

IE1204/5 Digital Design typtenta

Laborationshandledning

Tentamensskrivning 11 januari 2016

Tentamen IE Digital Design Fredag 13/

Transkript:

Chalmers ekniska Högskola Institutionen för Data- och Informationsteknik EDA 321 Digitalteknik syntes 2011-2012 Laboration 2 - VHDL 1. Enkelt sekvensnät 2. Trafikräknare i VHDL 3. Syntes av VHDL-kod Namn Personnummer Godkänd Handledare Datum Förberedelser: Se sid 13 120102 LABPM2.v8 1

1 Enkelt sekvensnät Ofta arbetar man med pulser som är ett klockpulsintervall långa. Dessa används t ex för att starta en aktivitet eller t ex för att styra en räknares enable-ingång så att räknaren ökas med ett enbart när pulsen finns. Konstruera i VHDL en krets som lägger ut en etta på utgången under ett klockpulsintervall efter insignalen gått hög och en annan utsignal under ett klockpulsintervall när insignalen gått låg. Insignalen kallas levin och utsignalerna kallas pulson respektive pulsoff.. S0 S1 S2 S3 S0. Tidsdiagrammet kan delas in i 4 tillstånd, S0 S3. och en tillståndsgraf blir då Denna kan kodas i VHDL på många olika sätt. Man göra konstruktionen i en enda process eller, t ex en process som sköter övergång till nästa tillstånd och en annan process som bestämmer utsignaler och nästa tillstånd. Aktuellt tillstånd är state och nextstate anger nästa tillstånd. Processen P0 är klockad och används för att byta tillstånd. Vid varje positiv klockpulsflank tilldelas state ett nytt värde. 2

P0: PROCESS (CLK) BEGIN IF CLK='1' AND CLK'event THEN IF Reset='1' THEN state <= s0; ELSE state <= nextstate; END IF; END IF; END PROCESS; Processen P1 är kombinatorisk och aktiveras i simulering när någon av state eller levin ändras. Den genererar utsignalerna pulson och pulsoff. En template för processen är: P1: PROCESS (state,levin) BEGIN CASE state IS WHEN S0 => Komplettera här >>>>>>>>> WHEN OTHERS => END CASE; END PROCESS; Ett blockschema blir: 3

1.1 Kodning verifiering Komplettera med deklarationer, case-sats och skriv in hela VHDL-koden i filen lev2puls.vhd. Simulera med do-filen -- lev2puls.do -- 111223 restart f nowave view signals wave add wave clk levin reset pulsoff pulson state nextstate force clk 0 0, 1 50ns -repeat 100ns force reset 1 0, 0 80ns force levin 0 0, 1 325, 0 800 run 1000 och verifiera tidsdiagrammet. Notera att nextstate sätts i processen P1 när insignalen levin ändras eller när man byter tillstånd i processen P0. I processen P0 tilldelas state nytt värde från nextstate vid varje positiv flank på clk. Eftersom state har förändrats, ger processen P1 pulson och pulsoff nya värden. 2 Konstruktion av trafikräknare Trafikräknaren skall räkna antalet personbilar, lastbilar och lastbilar med släp som passerar en fotocell fc. Gående, cyklister etc påverkar ej fotocellen. Alla fordon har samma hastighet och man kan bestämma typen av fordon genom att räkna klockpulser under den tid fotocellen är skymd. Personbil Lastbil Lastbil med släp 3 4 klockpulser 7 12 klockpulser 7 12 klockpulser, en puls mellan bil och släp, samt därefter 3 5 pulser. Mellan varje fordon är det minst 2 klockpulser. Insignalerna är klocka, fotocell och reset för initiering. Signalen från fotocellen är 1 om fotocellen är skymd. Utgångarna från räknaren är antalet personbilar, lastbilar samt lastbilar med släp. 4

Konstruktionen skall kunna räkna ett mindre antal foron, max 15 st av varje. Do-fil för testning finns nedan. I do-filen används följande signalnamn: clk, reset, fc, (pb, lb och lbs). Reset är aktiv hög. 2.1 Tillvägagångssätt Uppgiften kan delas upp i två delar: - En detektor som känner igen mönstret från personbil, lastbil och lastbil med släp - Räknare som lagrar antalet fordon av olika typ. Dessa skall kunna ökas med ett när ingången count enable är hög. Den funktionella specifikationen ovan anger att de enda typer av fordon som förekommer är personbil, lastbil och lastbil med skäp och de har de angivna pulstågen. Konstruktionen anses uppfylla specifikationen om angivna fordonstyper detekteras och räknas korrekt. 2.2 Personbilsdetektor En tillståndsgraf för att detektera 3-4 förekomster av fc=1 följt av fc=0, dvs en personbilsdetektor, visas nedan. Vid reset ligger man i tillståndet start. Vid första förekomsten av fc=1 går man till tillstånd fc1 o s v. Konstruktionen förutsätter att indata alltid är korrekta, dvs enstaka pulser på fc förekommer ej. I tillståndet pbfound har man detekterat pulståget från en personbil och då skall utsignalen pbs vara hög. I alla övriga tillstånd är pbs låg. 5

I tillståndet pbfound sätts signalen pbs till 1 för att markera förekomsten av personbil. I alla övriga tillstånd är pbs 0. Koda tillståndsgrafen i VHDL i filen trafik0.vhd, simulera med följande do-fil och verifiera funktionen. -- trafik0.do -- 111223 restart f nowave view signals wave add wave clk reset fc pbs force clk 0 0, 1 50ns -repeat 100ns force reset 1 0, 0 80ns force fc 0 0, 1 110, 0 410, 1 610, 0 1010 run 1200 2.3 Komplettering för lastbil och lastbil med släp Utgå från tillståndsgrafen ovan och komplettera för lastbil och lastbil med släp. Förutsätt att indata alltid är korrekta, dvs fc uppfyller alltid specifikationerna för de olika fordonen, d v s ett släp är ALLTID 3, 4 eller 5 klockpulser långt. Denna förutsättning förenklar tillståndsgrafen avsevärt. 6

2.4 Tillståndsgraf för fordonsdetektor Detektorn skall ha 3 utsignaler för de olika fordonstyperna. Signalerna kallas pbs,lbs och lbss. Koda i VHDL i filen detektor.vhd 2.5 Simulering Simulera koden med nedanstående do-fil Studera signalerna i Wave-fönstret. # trafik.do # Do-file for vehicle detector # restart -f nowave view signals wave add wave clk reset fc pbs,lbs,lbss force clk 0 0, 1 50ns -repeat 100 force reset 1 0, 0 125ns force fc 0 0 run 205ns run 1200ns force fc 1, 0 800ns, 1 900ns, 0 1400ns +släp run 1700ns force fc 1, 0 400ns run 800ns run 1200ns 7

run 1500ns run 600ns force fc 1, 0 800ns, 1 900ns, 0 1400ns +släp run 1700ns force fc 1, 0 400ns run 700ns run 1200ns force fc 1, 0 800ns, 1 900ns, 0 1400ns +släp run 1700ns run 600ns run 1200ns run 1200ns run 600ns force fc 1, 0 800ns, 1 900ns, 0 1400ns +släp run 1700ns run 1200ns run 1500ns Kontrollera att detektorn fungerar på avsett sätt 2.6 Komplettering med räknare Konstruera en binärräknare utgående från tidigare uppgifter. Använd 3 st räknare för de olika fordonstyperna. En komplett trafikräknare kan nu byggas med en detektor och tre räknare. Koda trafikräknaren i VHDL med användande av komponenterna ovan. Filnamn skall vara trafik.vhd och entiteten skall se ut enligt ENTITY trafik IS PORT(clk,reset,fc:IN STD_LOGIC; pbc,lbc,lbsc:out STD_LOGIC_VECTOR(3 DOWNTO 0)); END trafik; Simulera med do-filen trafik.do och kontrollera funktionen. 2.7 Blockschema Ett blockschema för en liknande trafikräknare med samma funktion visas nedan. Schemat har genererats från VHDL-kod av ett syntesprogram. I schemat ser 8

man tydligt tre räknare, återkopplade med ett nät som ökar räknarna med ett, samt sekvensnätet som styr funktionen. 3. Syntes med Synplify Pro Programmet SynplifyPro kan syntetisera VHDL-kod till olika typer av FPGA:er (Field Progammable Gate Array) och CPLD:er. (Complex Programmable Logic Device). 3.1 Starta programmet Starta med symbolen på desktopen licenser, så välj den som är mest tillgänglig och sedan nytt projekt: välj Open Project > New Project.. När det kommer en fråga om.skapa ett Syntes sker alltid till en viss typ av krets eftersom alla FPGA:er och CPLD:er är uppbyggda på olika sätt. Ange typ av målkrets genom att klicka på Implementation Options, välj fliken Device och ange följande för Xilinx CPLD 9

eller för Xilinx FPGA Lägg till filen lev2puls.vhd med Add File. (Om det är flera filer, skall top-filen läggas in sist. ) Markera filen och kör run > Resynthesize all Anm. Även om koden tidigare har gått bra att simulera, är det inte säkert att den går att syntetisera. Vanligtvis är koden syntetiserbar, men man kan stöta på problem här. Om det kommer varningar, titta i log-filen. Klicka på i toolbaren. Då visas ett syntesresultat. Det kan se ut så här: Det går att gå lite djupare med knappen i toolbaren: 10

För en CPLD får man Dvs huvudsakligen grindar, AND, OR, och XOR. Vid implementering i kretsen kopplas AND-OR grindnäten så att logiska funktionen erhålles. I slutet av logfilen I Resource Usage Report anges använda resurser: Mapping to part: xc9572xlpc44-5 Simple gate primitives: AND2 6 uses AND2B1 1 use FD 2 uses OR2 1 use XOR2 2 uses För FPGA:n Spartan6 får man FPGA:n består av LUT:ar (Lookup Tables) innehållande multiplexrar. Dessa konfigureras till önskad funktion. I slutet av log-filen står använda LUT:ar Mapping to part: xc6slx16csg225-2 Cell usage: FD 2 uses GND 1 use VCC 1 use LUT3 2 uses LUT4 2 uses 11

3.2 Exempel fulladder.vhd Använd filen fulladder.vhd från tidigare lab. Skapa ett nytt projekt och addera filen. Titta på syntesen till CPLD och FPGA. 3.3 Exempel count4b.vhd Skapa nytt projekt och addera count4b.vhd från lab 1. Symbolen innehåll. Använd i FPGA. är en krets som adderar värdet av count enable till registrets för att undersöka hur denna implementeras i en CPLD och CPLD:. FPGA:. 3.4 Syntes av trafikräknaren Skapa nytt projekt och lägg till filerna för trafikräknaren. Syntetisera. Titta i log-filen. Det mest intressanta står i slutet på logfilen, nämligen olika typer av vippor etc som använts, samt den plats som konstruktionen tar upp uttryckt i antalet LUT:ar (Look Up Table). Dessa uppgifter återfinnes under Resource Usage Report. 12

4. Redovisning Demonstrera trafikräknaren för handledaren. Inlämning av VHDL-kod för trafikräknaren. Skriv namn och personnummer som kommentarer överst i vhdl-filen. Lägg denna och slutet av log-filen (Resource Usage Report) i ett email och skicka till syntes.cse@chalmers.se. Ange LAB2 som subject i mailet. 5. Förberedelser Alla labuppgifter kan utföras i förväg och enbart redovisas vid labtillfället. Programmet Questa finns på Chalmers Linuxsystem och startas med vsim. Programmet SynplifyPro finns på linux i datasalar och även på remote.chalmers.se Skriv tcsh s ource /chalmer s/sw/sup/mgcdvt/synplify/setup och starta sedan med synplify_pro 6. Inlämningsuppgift Glöm ej veckans inlämäningsuppgift. 13