Digitalteknik 7.5 hp distans: VHDL del 1 V:1.1

Slides:



Advertisements
Liknande presentationer
Välkommen till en kort presentation av MPS, en ORR®-produkt från ITERIT AB. MPS, material och produktionsstyrning, ett hjälpmedel för administrationen.
Advertisements

Välkommen till en kort beskrivning av nyttan med att använda MPS, en ORR®- produkt från ITERIT AB. MPS, material och produktionsstyrning, ett hjälpmedel.
EDA 480 – Maskinorienterad Programmering
William Sandqvist Simulera med ModelSim ModelSim kan användas till att simulera VHDL-kod, för att avgöra om den är "rätt" tänkt. Man kan.
Styrteknik 7.5 hp distans: SFC med GX IEC PLC5B:1
Digitalteknik, fortsättningskurs 2012 Föreläsning 16 Inför tentan
Geodesi 2010 För en hållbar Geodetisk Infrastruktur RH 2000 ger nytta! Några exempel.
Utbildning i hantering av Behovstrapporna
Programmeringsteknik I: F1 1 Föreläsning 1: Intro till kursen och programmering Kursens hemsida Studentportalen.
Föreläsning 1.
IE1204 Digital Design Aritmetik Låskretsar, vippor, FSM FSM, VHDL introduktion Asynkron FSM F1 F3 F5 Ö3 F8 F10 F12 Ö8 F2Ö1 Ö2 Ö6 F13 F9Ö5 tentamen William.
Presentation av BPMN i QPR ProcessGuide
Om kandidatprojektet på Y- programmet. Mål Komponenter Utmanande och kul konstruktionsprojekt:  Projektarbete  Understödjande föreläsningar  Understödjande.
Statsvetenskap 3, statsvetenskapliga metoder
Att programmera i språket Java
732G22 Grunder i statistisk metodik
GK/ÖK:ITO HT06 IT i organisationer.
Modellering med UML
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Java. Kortfattat om Java Syntaxen påminner i hög grad om C++ Stöd för objektorientering Kod kan köras i en virtuell maskin som finns tillgänglig för nästan.
Lättläst på webben Mittuniversitet 2 och 23 april 2007
Lärandemålklinik – vanliga och ovanliga frågor om lärandemål (=LM) Kvalitetsenheten och Lärcentret samarbetar inom projekt Alcuin, som har som.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Introduktion till DITA
Styrteknik: Programmering med MELSEC IL PLC2A:1
Kandidatuppsats i Statistik F3
William Sandqvist Kodlåsmall lockmall.vhd William Sandqvist
Flexicon – Din systempartner
Styrteknik 7.5 hp distans: SFC Introduktion SFC_A:1
Vad är arbetsmiljö-/kvalitets-/miljörevision?
Styrteknik 7.5 hp distans: PLC-Program, kaffe-automat PLC7B:1
URsmart Innehåll och tankar Attila Szabo Utbildningsförvaltningen Stockholms stad Digitala akademin 12 maj.
Styrteknik 7.5 hp distans: SFC Introduction PLC5A:1 Bilder SFC = Sequential Function Chart Language SFC är ett grafiskt programspråk som används.
Anders Sjögren ANSI - standard ?. Anders Sjögren ANSI - standard ? Om man skriver ett bra C-program och kompilerar fram ”exe”-filen så vore det ju trevligt.
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Styrteknik: Programmering med IEC PLC1A:1
Föreläsning 1. Innehåll Introduktion till objektorientering –OOP (objektorienterad programmering) –Objekt, instanser, klasser C++ –OO i C++ –Standardbibliotek.
Digitalteknik 7.5 hp distans:10.1 D/A-omvandlare 10.1
Styrteknik 7.5 hp distans: Information om styrsystem, allmänt I1:1 Bilder Historia, Utveckling, Användning, Hårdvara, Tillverkare Av Styrsystem.
Digitalteknik 7.5 hp distans: Realisering av logik med PLD och VHDL1.4.1 En kretsrealisering med VHDL består av fyra huvudmoment Specifikation Beskrivning.
Styrteknik 7.5 hp distans: SFC med GX IEC SFC_B:1
Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45 Adderare Addition av två tal innebär att samma förfarande upprepas för varje position i talet. För varje.
Personlig säkerhet Vilka regler skyddar vår personliga integritet så att vi inte kränks genom behandling av våra personuppgifter?
DIGITAL DESIGN INLEDNING Allmänt och kursens hemsidor Analogt och digitalt Booleska variabler Binära tal Positiv och negativ logik (Aktiv hög och låg logik)
Digitalteknik 7.5 hp distans: 6.3 nMOS-inverteraren 6:2.1 nMOS-inverterare med passiv pull-up nMOS innehåller enbart nMOS-transistorer OBS vid låg utgång.
STOCKHOLMS UNIVERSITETSBIBLIOTEK Te l e f o n v x l: F ax: w w w.s u b.s u.se Informationssökning för geodoktorander Geobiblioteket,
Styrteknik 7.5 hp distans: E-Designer och E-1000 mm PLC8C:1 Bilder I detta avsnitt ska några enkla symboler för digitala in- och utsignaler.
Motivationen att lära sig svenska
Digitalteknik 7.5 hp distans: VHDL del 2 V2:1 Tillståndsmaskin, Moore-typ Kopior från VHDL för konstruktion, Studentlitteratur.
Föreläsning 16 Logik med tillämpningar Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2.
Digitalteknik 7.5 hp distans: Ofullständigt specifierade funktioner 4.27.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
Digitalteknik 7.5 hp distans: Talsystem och koder 1.3.1
Föreläsning 1 Introduktion till kursen. Algoritmer
Styrteknik 7.5 hp distans: Tidskretsar, räknare PLC4B:1 Bilder Olika exempel med Timers och Counters En Enkel Timer med MELSEC IL Om BTN_DGVG.
Shannon dekomposition
Lunds Tekniska Högskola | Industriell ekonomi Industriell ekonomi TEKNIKPROFILER.
Patient Archive Compact System - PACS Telemedicin 3 hp Nora, Kinza, Leila, Najoua.
Koha – ett öppet bibliotekssystem Göteborg 8 december 2015.
Nyheter i TTJ från
Elkraftingenjör Distansutbildning vid Norra Sveriges Universitet* I samarbete med Svensk Energi och dess medlemsföretag *Umeå, Luleå och Mittuniversitetet.
Digitala tal och Boolesk algebra
Introduktion till kursen Digitalteknik 3p
Kombinatoriska byggblock
Bengt Oelmann -- copyright 2002
Kombinatoriska byggblock
Introduktion till ASIC
Introduktion till konstruktion av digitala elektroniksystem
Konstruktion av kombinatorisk och sekventiell logik
Presentationens avskrift:

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.1 VHDL och laborationer i digitalteknik Vid laborationskursen i digitalteknik används VHDL till alla laborationerna utom den första. VHDL är ett stort språk och enbart en liten del av språket behövs för att gör laborationerna. Det mesta av teorin för VHDL-delen finns beskrivet i laboration 2 och 4. I den här presentationen finns ytterligare några råd och en mycket kortfattad introduktion till VHDL. VHDL (VHSIC Hardware Description Language) VHSIC (Very High SpeedIntegrated circuit) Verilog är ett liknande språk VHDL är en IEEE-standard som revideras med jämna mellanrum VHDL87, VHDL93, VHDL2001,…..

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.2 VHDL är ett simulatorspråk som beskriver digitala modeller. Modellerna kan kompileras och beteendet kan studeras med olika typer av programvaror. VHDL innehåller ingen standard för att beskriva hårdvara. VHDL beskriver beteendet för en händelsestyrd simulatormodell där varje händelse är knuten till tid. För att köa upp samtidiga händelser används deltafördröjningar. Deltafördröjningarna bestämmer i vilken ordning samtidiga händelser skall utföras men de motsvarar ingen verklig tid. VHDL och liknande språk används numera nästan alltid vid konstruktion av digital logik. Vid konstruktion av hårdvara med VHDL kan enbart en delmängd av VHDL användas och det finns bestämda regler för hur vissa konstruktioner skall beskrivas. Att översätta VHDL till hårdvara kallas syntes.

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.3 Källkoden består av 3 delar: Specifikation av vilka bibliotek och packages som används. entity med deklaration av in- och utgångar. architecture som beskriver beteendet Källkod för ett VHDL-program, exempel: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity ex1 is port (signal a,b,c :in std_logic; signal u: out std_logic ); end ex1; architecture rtl of ex1 is signal u_b: std_logic; begin u <= u_b or c; u_b <= a and b; end rtl;

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.4 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; Alla VHDLprogram vid laborationerna måste innehålla Biblioteket IEEE Package IEEE.STD_LOGIC_1164.ALL Övriga package kan tillkomma vid behov, se exemplet ovan Kommentarer inleds med -- VHDL skiljer inte mellan stora och små bokstäver (Undantag ’Z’)

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.5 entity ex1 is port (a,b,c :in std_logic; u: out std_logic ); end ex1; Under entity deklareras vilka externa ”anslutningar” som modellen skall ha. Objekten a, b, c och u är av klassen signal, datatypen std_logic, mode in respektive out. Under laborationskursen kommer ofta datatypen std_logic_vector att användas. För övrigt får inga andra modes, klasser eller datatyper användas. OBS utsignaler kan enbart tilldelas värde (u i detta fall) insignaler kan enbart läsas (a, b och c) Att skriva en entity är alltid mycket enkelt. Enbart in- och utsignaler skall deklareras.

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.6 architecture rtl of ex1 is signal u_b: std_logic; begin u <= u_b or c; u_b <= a and b; end rtl; Under architecture definieras konstruktionens beteende. Innan första begin kan ytterligare deklarationer göras. I detta fall deklareras en intern signal u_b. Den interna signalen kan både läsas och skrivas och den är praktisk som en ”dummy signal” i många fall. Mellan architecturens begin-end finns de exekverbara satserna. I exemplet används de logiska operatorerna or och and.

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.7 Parallell (Concurrent) VHDL I det föregånde exemplet exekveras raderna i architecturen exakt samtidigt. Det spelar ingen roll i vilken ordning de står och antalet rader är obegränsat. Exemplet nedan visar att ordningen mellan satserna saknar betydelse, tiden delta är noll. u <= u_b or c; u_b <= a and b; Antag att a ändras vid t = 10 ns u_b ändras vid t = 10 ns +1 delta u ändras vid t = 10 ns+2 delta u_b <= a and b; u <= u_b or c; Antag att a ändras vid t = 10 ns u_b ändras vid t = 10 ns +1 delta u ändras vid t = 10 ns+2 delta Alla exekverbara satser utförs exakt samtidigt i parallell VHDL

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.8 Instruktioner som kan användas i parallell VHDL: OBS bit-värdet anges med ’1’ eller ’0’

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.9 Instruktioner som kan användas i parallell VHDL,forts: OBS vektorvärdet anges med ”00”, …. Aritmetiska operationer: OBS de aritmetiska operationerna finns definierade i ett antal packages, t.ex: IEEE.STD_LOGIC_UNSIGNED.ALL;

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.10 Vektorer i VHDL: signal s: std_logic_vector(5 downto 0); signal a,b: std_logic vector(2 downto 0); begin a<= “00”&b(2); s <=a&b; -- (obs: s har 6 element, a,b har 3 element) end; &-tecknet innebär sammanslagning (concatenering) av två vektorer

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.11 Sekvensiell VHDL Med sekvensiell VHDL menas att instruktionerna utförs i sekvens precis som vid vanlig programmering. I laborationskursen används sekvensiell VHDLenbart i processer. En process kan vara i väntande (wait) eller i aktivt (executing) tillstånd. Om processen är väntande så måste ett startvillkor uppfyllas för att processen skall starta. Processen exekverar då tills nästa waitvillkor påträffas. En process är ett parallellt kommando som tar 1 delta att utföra. Signaler tilldelas värden inne i processen men värdet uppdateras när processen lämna sitt aktivt tillstånd. Signalerna erhåller värden (uppdateras) när processen avslutas.

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.12 Sekvensiell och Parallell VHDL

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.13 Att använda processer i VHDL är mycket vanligt och det förenklar beskrivningarna i hög grad. Det är mycket viktigt är att få en känsla för hur processerna fungerar och man brukar skilja mellan kombinatoriska processer och synkrona processer. En process består av: process(sensitivity_list) process_deklaration begin . end process;

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.14 Kombinatoriska processer I kombinatoriska processer måste alla insignaler till processen finnas med i sensitivity list. Det är inte säkert att det blir fel om någon signal utelämnas men det kan bli skillnader mellan simulering och verklighet. Naturligtvis måste alla utsignaler tilldelas värden annars uppstår minnesfunktioner för de signaler som inte får värden. När man använder if-satser är det lätt att glömma det. Exempel på en kombinatorisk process: process(a,b,c) variable temp: std_logic; begin temp:=a or b; ut<=temp and not c; end process; Här deklareras en variable. En variable uppdaterar sitt värde omedelbart.

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.15 Synkrona processer Synkrona processer styrs av flanken på en klocksignal. Sensivity list måste innehålla klocksignalen och andra direktverkande signaler (t.ex. reset). Här är det fel att ta med alla insignaler eftersom då försvinner den synkrona klockningen. Exempel på en synkron process: process (clk,resetn) begin if resetn = ‘0’ then q<=‘0’; elsif clk’event and clk = ‘1’ then q<=d; end if; end process;

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.16 process (clk,resetn) begin if resetn = ‘0’ then q<=‘0’; elsif clk’event and clk = ‘1’ then q<=d; end if; end process;

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.17 If statement, syntax

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.18 Case statement, syntax

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.19 Exempel med case-satsen

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.20 Exempel: 4 bitars skiftregister,parallell in, serie ut libraray ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; -- ..unsigned.all för skiftoperationen sll entity shift_ex is port(clk,resetn,shift_en,load: in std_logic; d_in: in std_logic_vector(3 downto 0); shift_out: std_logic); end;

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.21 Exempel: 4 bitars skiftregister,parallell in, serie ut, forts architecture rtl of shift_ex is signal shift_reg_b: std_logic_vector(3 downto 0); begin process(clk,resetn) if resetn=’0’ then shift_reg_b<=”0000”; --(others=>’0’) elsif clk’event and clk=’1’ then if load=’1’ then shift_reg_b<=d_in; elsif shift_en=’1’ then shift_reg_b(3 downto 1)<= shift_reg_b(2 downto 0); shift_reg_b(0)<=’0’; -- shift_reg_b<=shift_reg_b sll 1; VHDL93 end if; end process; shift_out<=shift_reg_b(3); end;

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.22 Exempel: 4-bitars räknare med enable och carry out libraray ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; -- ..unsigned.all för aritmetiska operationen + entity count4 is port(clk,resetn,count_en: in std_logic; sum: out std_logic_vector(3 downto 0); cout: std_logic); end;

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.23 Exempel: 4-bitars räknare med enable och carry out, forts architecture rtl of count4 is signal count_b: std_logic_vector(3 downto 0); begin process(clk,resetn) if resetn=’0’ then count_b<=”0000”; --(others=>’0’) elsif clk’event and clk=’1’ then if count_en=’1’ then count_b<=count_b+1; end if; end process; sum<=count_b cout<=’1’ when count_b=15 and count_en=’1’ else ’0’; end;

Digitalteknik 7.5 hp distans: VHDL del 1 V:1.24