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



Relevanta dokument
Datorkonstruktion. Datorkonstruktion 2018, 8hp

KALKYLATOR LABORATION4. Laborationens syfte

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

Bussar och I/O. samt. vad kan man göra med NEXYS3

Sekvensnät i VHDL del 2

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

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

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Bussar och I/O. samt. vad kan man göra med NEXYS3. Nexys3. Prog + spänningsmatning. Expansionskort

VGA-lab TSEA83 Datorkonstruktion

LEJON LABORATION3. Laborationens syfte

VHDL 1. Programmerbara kretsar

Simulering med ModelSim En kort introduktion

Laboration VHDL introduktion

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

INTRODUKTION TILL VIVADO

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

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

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

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

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

Projektlaboration 4, synkronisering av klockan

Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning

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

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

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

Konstruktion av digitala system - VHDL

Sekvensnät. William Sandqvist

std_logic & std_logic_vector

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

Simulering med ModelSim En kort introduktion

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

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

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

Digitala projekt Elektro- och informationsteknik

Datakommunikation med IR-ljus.

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Laboration i digitalteknik Introduktion till digitalteknik

DIGITALTEKNIK. Laboration D172

Konstruktionsmetodik för sekvenskretsar

VHDL2. Sekvensnätsexemplet

Systemkonstruktion SERIEKOMMUNIKATION

VHDL2. Sekvensnätsexemplet

(2B1560, 6B2911) HT08

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

Programmering av. PADDY mini

IE1204/IE1205 Digital Design

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

Profibus. Altivar/Altistart. Kom-igång med Profibus till ATS48/ATV28 (via Modbusgateway)

Övning 7. Timer, serieport

Seriekommunikation. Ur innehållet: Nätverkstopologier Nätverksprotokoll Asynkron/synkron seriell överföring Programmering av USART-krets

DESIGN AV SEKVENTIELL LOGIK

Dataöverföring på Parallell- och serieform MOP 11/12 1

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

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

F6: I/O hantering. Typer av I/O i ett datorsystem. Protokoll för synkronisering. Drivrutiner. Memory mapped Port mapped. Polling Timed Interrupt DMA

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

PROGRAMMERING AV MCU LABORATION6. Laborationens syfte

JavaScript Block Editor:

Simulera med ModelSim

LABORATIONSINSTRUKTION LABORATION

TSEA22 Digitalteknik 2019!

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager

Läs igenom hela laboration 5 innan du börjar beskriva instruktionsavkodaren i VHDL!

L15 Introduktion modern digital design

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

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

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok

Tentamen IE Digital Design Måndag 23/

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.

LABORATION TSEA22 DIGITALTEKNIK D

Laboration nr2 med enchipsdatorn PIC-16F877

Tentamen i Digitalteknik 5p

Laboration Datorteknik D 1. IR-länk

Låskretsar och Vippor

SportIdent Radio Application Poller Version 1.2

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

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

HF0010. Introduktionskurs i datateknik 1,5 hp

Tenta i Digitalteknik

LAB VHDL-programmering

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

Digital Termometer J10 B4 A4 GND GND GND B1 GND GND GND GND B3 A3 +5V +5V A3 +5V A2 +5V +5V A2. +5v B16 A16 UREG UREG B1 6 AC AC A1 6 A6 6

Lathund - Konfiguration av PLC och dator

AVR 5. Styrning av trafikljus. Digitala system 15 p

Digitalteknik F12. Några speciella automater: register räknare Synkronisering av insignaler. Digitalteknik F12 bild 1

Om konsolporten. Beskrivning av portarna

PNSPO! Tips! Xpectia kommunikation till OMRON PLC via Seriellt. 14 mars 2012 OMRON Corporation

Digital Design IE1204

Introduktion till E-block och Flowcode

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

IS1500 Lösningar övning CE_O CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io.

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Digitala elektroniksystem

Digital elektronik CL0090

Micro USB till RS232 DB9 seriell adapterkabel för Android med USB-laddning - M/M

Transkript:

LABORATION DATORKONSTRUKTION TSEA83 UART Version: 1.0 2013 (OS) Namn och personnummer Godkänd 1

blank sida 2

Innehåll 1 Inledning 5 1.1 Syfte................................. 5 1.2 Förberedelser............................ 5 2 Teori 6 2.1 RS232................................ 6 2.2 Partitionering............................ 6 2.3 Goda råd om VHDL........................ 8 2.3.1 Klockade processer..................... 8 3 Uppgifter 9 3.1 Hemuppgift - Kodning....................... 9 3.1.1 Lättläst kod......................... 9 3.2 Uppgift - Simulering........................ 9 3.3 Uppgift - Demonstration...................... 9 A User Constraint file 11 3

blank sida 4

0123 USB PROG NEXYS 3 xtal clk FPGA seg rx tx 7 an 4 FTDI USB UART Figur 1: Laborationsuppställning. Siffror skickas på seriell form från datorns tangentbord till FPGA-kortets display. 1 Inledning Siffror inmatade från en dators tangentbord ska sändas seriellt över en RS232- förbindelse och presenteras på 7-segmentsdisplayen på FPGA-kortet Nexys-3, se figur 1. 1.1 Syfte I denna laboration får du lära dig att: använda FPGA-kortet Nexys 3, som du sedan ska använda i ditt projekt. skriva VHDL-kod, som knyter an till både blockschema och signalschema. simulera din konstruktion med ModelSim. syntetisera och testa din konstruktion. 1.2 Förberedelser Innan du kommer till laborationen måste du vara väl förberedd. Alla uppgifter som ska redovisas är utmärkta med ett pekfinger. En del av dem kan med fördel utföras hemma som förberedelseuppgifter. 5

start 1 0 0 0 0 1 1 0 stopp Figur 2: Överföring av siffran 1. ASCII-koden 0x31 skickas med LSB först. 2 Teori 2.1 RS232 RS232 är en (gammal) standard för seriell kommunikation mellan en sändare och en mottagare. Vanligast är att kommunikationen pågår åt båda hållen samtidigt, så kallad full duplex. En krets som klarar detta brukar kallas UART (Universal Asynchronous Receiver Transmitter). I vårt fall ska endast sändning från datorn till FPGA-kortet implementeras. Dessutom nöjer vi oss med att skicka siffror, som kan visas på på displayen. FPGA-kortet är utrustat med en FTDI-krets (Googla på detta ord), vilket innebär att en USB-kabel kan användas. De seriella signalerna rx (receive) och tx (transmit) är endast tillgängliga inuti FPGA-kretsen, se figur 1. RS232 är en asynkron och långsam överföringsmetod. Tecken skickas ASCIIkodade med minst signifikant bit först. Tecknet föregås av en startbit (0:a) och avslutas med en stoppbit (1:a), se figur 2. Varje tecken är således 10 bitar långt. I denna laboration används hastigheten 115200 bit/s. Detta innebär att varje bit är 8, 68µs lång, eller med 100 MHz klocka 868 klockpulser. 2.2 Partitionering Ett blockschema med tillhörande signalschema för vår UART visas i figur 3. Klockfrekvensen är 100 MHz. Konstruktionen är indelad i följande block: Synkroniseringsvippor. Förändringarna på insignalen ska komma i takt med vår klocka. Styrenhet. Denna producerar två styrsignaler, båda enpulsade: Skiftpulsen sp, som kommer mitt i (ungefär) varje bit. Laddpulsen lp, som kommer efter den sista skiftpulsen. Skiftregister. De 10 bitarna i varje siffra skiftas in i skiftregistret. Register för 4 siffror. Laddas av laddpulsen, samtidigt räknas räknaren upp. 6

a) styrenhet sp rx rx1 rx2 10 bit skiftregister sreg synkroniseringsvippor 4 pos 2 bit raknare 0 1 2 3 2 4 4 4 4 16 bit register tal lp till LED display b) rx2 (insignal) sp (skiftpuls) 0_000000000_0 1_011000001_0 sreg lp (laddpuls) 1 2 pos 0x0000 0x0100 tal Figur 3: a) Blockschema. b) Signalschema. Siffran 1 tas emot och skrivs in i position 1 i displayen. 7

2.3 Goda råd om VHDL 2.3.1 Klockade processer Nästan precis så här måste alla klockade processer se ut. Vi rekommenderar att du helt enkelt använder denna kodsnutt som mall. Rad 1 och rad 2 ska se ut som nedan. Rad 3 bör vara med. Signalen clk har frekvensen 100 MHz. Du får inte klocka på något annat än clk. process(clk) begin if rising_edge(clk) then if rst= 1 then <init> elsif <villkor> then <gör något> else <gör något annat> end if; end if; end process; 8

3 Uppgifter 3.1 Hemuppgift - Kodning Börja med att ladda ner lab-skelettet lab4.tgz från hemsidan. Packa upp med tar xzvf lab4.tgz. Översätt blockschemat i figur 3 till VHDL-kod. Använd samma signalnamn som i figuren 3. Innan du går vidare ska laborationsassistenten godkänna koden. Kod, som inte är tillräckligt lättläst riskerar att bli underkänd. 3.1.1 Lättläst kod För att blockschemat i figur 3 ska vara ett naturligt steg i konstruktionen, ska blockschemat och signalschemat översättas till VHDL-kod med samma struktur. Översätt alltså enligt följande: Synkroniseringsvippor. 1 process. Styrenhet. 1 eller 2 processer. Skiftregister. 1 process. 16 bit register + demultiplexer. 1 process. 2 bit räknare. 1 process. 3.2 Uppgift - Simulering Simulera konstruktionen genom att köra kommandot: make lab.sim Glöm inte heller bort module add TSEA83. Högerklicka på lab_tb uppe till vänster i ModelSim-fönstret och välj Add->To Wave->All Items in design. Ett wave-fönster hoppar nu upp. Skriv sedan run 500 us i ModelSimfönstret. Testbänken, som körs är lab_tb.vhd. Ta reda på vad testbänken gör! Du ska nu kunna se samma signaler som i figuren 3. Innan du går vidare ska laborationsassistenten godkänna simuleringen. 3.3 Uppgift - Demonstration Gör en bit-fil för konstruktionen genom att köra kommandot: make lab.bitgen Nu kan du programmera FPGA-n med make lab.prog 9

Starta terminalprogrammet gtkterm och konfigurera enligt följande: parameter värde Port /dev/ttyusb0 Baud Rate 115200 Parity None Bits 8 Stopbits 1 Flow control none Det ska nu gå att skriva siffror efter varandra på displayen. Referenser [1] Ragnemalm,Seger: Digital konstruktion TSEA43, http://www.da.isy.liu.se/courses/tsea83 10

A User Constraint file Innehåll i filen lab.ucf: ################################################ # Define Device, Package, And Speed Grade ################################################ # CONFIG PART = xc6slx16-3-csg324; ################################################ # clk, rst ################################################ ##Clock signal Net "clk" LOC=V10 IOSTANDARD=LVCMOS33; Net "clk" TNM_NET = sys_clk_pin; TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100000 khz; Net "rst" LOC = B8 IOSTANDARD = LVCMOS33; ###################################### # Multiplexed display # ###################################### ## 7 segment display Net "seg<7>" LOC = M13 IOSTANDARD = LVCMOS33; Net "seg<6>" LOC = T17 IOSTANDARD = LVCMOS33; Net "seg<5>" LOC = T18 IOSTANDARD = LVCMOS33; Net "seg<4>" LOC = U17 IOSTANDARD = LVCMOS33; Net "seg<3>" LOC = U18 IOSTANDARD = LVCMOS33; Net "seg<2>" LOC = M14 IOSTANDARD = LVCMOS33; Net "seg<1>" LOC = N14 IOSTANDARD = LVCMOS33; Net "seg<0>" LOC = L14 IOSTANDARD = LVCMOS33; Net "an<0>" LOC = N16 IOSTANDARD = LVCMOS33; Net "an<1>" LOC = N15 IOSTANDARD = LVCMOS33; Net "an<2>" LOC = P18 IOSTANDARD = LVCMOS33; Net "an<3>" LOC = P17 IOSTANDARD = LVCMOS33; ## Usb-RS232 interface Net "rx" LOC = N17 IOSTANDARD=LVCMOS33; 11