std_logic & std_logic_vector

Relevanta dokument
VHDL och laborationer i digitalteknik

VHDL 1. Programmerbara kretsar

DESIGN AV SEKVENTIELL LOGIK

Konstruktionsmetodik för sekvenskretsar

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

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

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

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

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

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

KOMBINATORISKA FUNKTIONER...1

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

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

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

Digital elektronik CL0090

Konstruktion av digitala system - VHDL

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

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

DIGITALTEKNIK. Laboration D172

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

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

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

VHDL2. Sekvensnätsexemplet

VHDL2. Sekvensnätsexemplet

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

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

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

Sekvensnät. William Sandqvist

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

KALKYLATOR LABORATION4. Laborationens syfte

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

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

LABORATIONSINSTRUKTION LABORATION

Simulering med ModelSim En kort introduktion

Tentamen i IE1204/5 Digital Design onsdagen den 5/

L15 Introduktion modern digital design

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

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

Digitala projekt Elektro- och informationsteknik

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

Översikt, kursinnehåll

IE1205 Digital Design: F9: Synkrona tillståndsautomater

VHDL3. Angående buffer

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

Sekvensnät i VHDL del 2

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

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

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

IE1204/IE1205 Digital Design

Digitala elektroniksystem

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

Omtentamen IE Digital Design Måndag 14/

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

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

Programmerbar logik och VHDL. Föreläsning 4

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

LAB VHDL-programmering

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

Programmerbar logik och VHDL. Föreläsning 1

Generering av analoga signaler från XSV300

F5 Introduktion till digitalteknik

LEJON LABORATION3. Laborationens syfte

Datorkonstruktion. Datorkonstruktion 2018, 8hp

Digital Design IE1204

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

Digital elektronik CL0090

IE1204/5 Digital Design typtenta

Tenta i Digitalteknik

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

Tentamen i IE1204/5 Digital Design Torsdag 29/

LABORATION TSEA22 DIGITALTEKNIK D

IE1204/5 Digital Design typtenta

Programable Logic Devices

IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

Digital Design IE1204

LABORATIONSINSTRUKTION

Laboration VHDL introduktion

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

VHDL Basics. Component model Code model Entity Architecture Identifiers and objects Operations for relations. Bengt Oelmann -- copyright

INTRODUKTION TILL VIVADO

Digital Konstruktion TSEA43. Ingemar Ragnemalm 2001, Olle Seger 2003-,

Exempel på ett litet Ada-program

Tentamen IE Digital Design Måndag 23/

Tenta i Digitalteknik

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

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

Omtentamen med lösningar IE Digital Design Måndag 14/

Tenta i Digitalteknik

Digital Design IE1204

Digitalteknik syntes Arne Linde 2012

TSEA22 Digitalteknik 2019!

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

Sekvensnät Som Du kommer ihåg

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

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

T1-modulen Lektionerna Radioamatörkurs OH6AG OH6AG. Bearbetning och översättning: Thomas Anderssén, OH6NT Heikki Lahtivirta, OH2LH

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

Tentamen i Digitalteknik, EITF65

Transkript:

VHDL VHDL - Very high speed integrated circuit Hardware Description Language VHDL är ett komplext språk, avsett för att beskriva digitala system på olika abstraktionsnivåer (beteende- och strukturmässigt). En stor del av syntaxen i VHDL är avsedd för modellering och abstrakt beskrivning av hårdvara, endast en liten del av VHDLs syntax går att syntetisera till verklig hårdvara. Entity & Architecture En VHDL-l som beskriver en krets följer ofta mönstret nedan. entity krets is port( insignal : in std_logic; utsignal : out std_logic ); end entity; architecture beteende of krets is signal intern_signaler : std_logic; end architecture; Avsnittet entity beskriver hur kretsen ser ut från utsidan, det vill säga vilka in- och utsignaler den har. I avsnittet architecture beskrivs kretsens funktion beteendemässigt och/eller strukturmässigt. Signal Interna signaler deklareras i architecture innan ordet. Signaler syntetiseras till ledningar/sladdar i hårdvara eller ledningar/sladdar med minne om de beskrivs som register (vippor) eller latchar. std_logic & std_logic_vector Datatyp som ska efterlikna egenskaper hos elektriska signaler. Kan anta värdena: '1','0' : driver signalen hög resp. låg. 1

'Z': högimpedansig, tri-state. 'L', 'H': svag låg och svag hög. 'X', 'W': okänd och svag okänk. Signalen drivs från två ställen med olika nivåer. 'U': ej initialiserad. '-': don't care. Allmänt går endast '1', '0' och 'Z' att syntetisera. Datatyperna std_logic & std_logic_vector är denerade i IEEE.std_logic_1164.all. Datatyperna blir tillgängliga att använda i en VHDL-l med följande syntax. library IEEE; use IEEE.std_logic_1164.all; Egna Datyper Ibland kan det vara motiverat att använda egendenierade datatyper. Till exempel vid konstruktion av en tillståndsmaskin kan det vara lämpligt att deniera en datatyp som beskriver nuvarande- och nästatillstånd på ett bättre sätt än std_logic eller std_logic_vector. type state_type is (INSIDE, OUTSIDE); Datatypen state_type som denierats ovan kan endast anta två värden, INSIDE och OUTSIDE. Efter att en egen datatyp denierats så kan den användas på samma sätt som övrgia datatyper. signal current_state : state_type; if current_state = INSIDE then 2

Conditional Signal Assignment Syntax: sig <= val_1 when exp_1 else val_2 when exp_2 else val_3 when exp_3 else val_4; Kan endast användas utanför en process. De booleska uttrycken exp_i utvärderas succesivt tills ett sant uttryck hittas och motsvarande värde val_i tilldelas då utsignalen. Om inget av uttrycken är sanna tilldelas utsignalen värdet val_4 i exemplet ovan. Flera uttryck kan vara sanna men det som kommer först i listan som har högst prioritet. 3

Selected Signal Assignment Syntax: with sel_exp select sig <= val_1 when exp_1, val_2 when exp_2, val_3 when exp_3, val_4 when others; Kan endast användas utanför en process. Alla möjliga värden av sel_exp måste täckas av ETT OCH ENDAST ETT av uttrycken exp_i. Endast ett av uttrycken kan vara sant. others i exemplet ovan täcker alla fall som inte tagits med tidigare. 4

Process Syntax: process_label:process(sensitivity_list) sequential_statement1; sequential_statement2; En process innehåller en serie instruktioner som exekveras sekventsiellt. I VHDL nns en uppsjö av a sekvensiella instruktioner. Dock så saknar många en tydlig motsvarighet i hårdvara, vilket gör dem svåra att syntetisera. Processens känslighetslista bestämmer vilka signaler som triggar processen. Då en signal i känslighetslistan ändrar värde aktiveras processen och nya utsignaler genereras. En signal kan tilldelas värden från era olika ställen i en process. Men den kommer bara anta det värde som den tilldelats sist i processen, inga mellanliggande värden tilldelas. Exempel: Tilldelning från era ställen p1:process(a, b, c, d) o <= a and b; if (d = '1') then; o <= c; 5

Om en signal inte alltid tilldelas ett värde p1:process(a, b) if (d = '1') then; o <= a; elsif (c = '1') then o <= b; Eftersom inget i processen talar om vad o ska ha för värde då c=0 och d=0 så antar syntetiseringsverktyget att tidigare värde ska kommas ihåg och en latch implementeras i hårdvaran. Latchar bör undvikas då de kan introducera kapplöpning (race) mellan signaler. Ofta varnar syntetiseringsverktyg för latchar i designen vilka ofta beror på att man glömt att tilldela en signal värde i alla lägen. signal a, b : std_logic; p2:process(a, b) if (a = '1') then; o <= b; elsif (a = '0') then o <= '0'; Även i exemplet ovan så täcks inte alla fall eftersom signalen a är av typen std_logic vilken kan anta 9 olika värden. Använd istället en else-stats eller standardvärden. Kod med else-stats. 6

signal a, b : std_logic; p3:process(a, b) if (a = '1') then; o <= b; else o <= '0'; Kod med standardvärde innan if-stats. signal a, b : std_logic; p2:process(a, b) o <= '0'; if (a = '1') then; o <= b; 7

IF Statement Syntax: if (exp_1) then sig_a1 <= val_a1; sig_b1 <= val_b1; elsif (exp_2) then sig_a1 <= val_a2; sig_b1 <= val_b2; else sig_a1 <= val_a3; sig_b1 <= val_b3; Kan endast användas i en process. Flera uttryck exp_i kan vara sanna men det första har högst prioritet. 8

CASE Statement Syntax: case sel_exp is when exp_1 => sig_a <= val_a1; sig_b <= val_b1; when exp_2 => sig_a <= val_a2; sig_b <= val_b2; when others => sig_a <= val_a3; sig_b <= val_b3; end case; Kan endast användas i en process. Endast ett uttryck exp_i kan vara sant. Alla fall måste täckas. others i exemplet ovan täcker alla fall som inte tagits med tidigare. 9

Register Syntax D-vippa, positivt anktriggad: reg:process(clk) if (clk'event and clk='1') then Q <= D; Observera att (clk'event and clk='1') = rising_edge(clk). Syntax D-vippa med asynkron aktiv hög nollställning: reg:process(clk, rst) if (rst = '1') then Q <= '0'; elsif rising_edge(clk) then Q <= D; 10