PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

Relevanta dokument
std_logic & std_logic_vector

VHDL 1. Programmerbara kretsar

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

DESIGN AV SEKVENTIELL LOGIK

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

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

VHDL och laborationer i digitalteknik

Simulering med ModelSim En kort introduktion

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

KOMBINATORISKA FUNKTIONER...1

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

Konstruktion av digitala system - VHDL

Tenta i Digitalteknik

Tenta i Digitalteknik

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

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

DESIGN AV KOMBINATORISK LOGIK

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

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

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

DIGITALTEKNIK. Laboration D172

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

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

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

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

Tenta i Digitalteknik

Programmerbar logik och VHDL. Föreläsning 4

Digital elektronik CL0090

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

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

Tenta i Digitalteknik

Visual Basic, en snabbgenomgång

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

Tenta i Digitalteknik

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

Simulering med ModelSim En kort introduktion

F5 Introduktion till digitalteknik

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

VHDL2. Sekvensnätsexemplet

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

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

VHDL2. Sekvensnätsexemplet

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

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

Föreläsning 3: Booleans, if, switch

Tentamen Grundläggande programmering

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

Imperativ programmering. Föreläsning 2

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

Konstruktionsmetodik för sekvenskretsar

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

IE1204/IE1205 Digital Design

Tentamen IE Digital Design Fredag 15/

VHDL3. Angående buffer

Tenta i Digitalteknik

Sekvensnät. William Sandqvist

L15 Introduktion modern digital design

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

Digital elektronik CL0090

Digitala System: Datorteknik ERIK LARSSON

LABORATIONSINSTRUKTION LABORATION

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

KALKYLATOR LABORATION4. Laborationens syfte

Talrepresentation. Heltal, positiva heltal (eng. integers)

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

Tentamen i IE1204/5 Digital Design Torsdag 29/

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

IE1205 Digital Design: F9: Synkrona tillståndsautomater

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

Tentamen IE Digital Design Måndag 23/

Generering av analoga signaler från XSV300

Kombinationskretsar. Föreläsning 4 Digitalteknik Mattias Krysander Institutionen för systemteknik

Digitala elektroniksystem

Exempel på ett litet Ada-program

Programmerbar logik. Kapitel 4

Transistorn en omkopplare utan rörliga delar

Kontrollskrivning Mikrodatorteknik CDT S2-704

Tentamen med lösningar i IE Digital Design Fredag 15/

Datorarkitekturer med operativsystem ERIK LARSSON

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

Översikt, kursinnehåll

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

Digitalteknik syntes Arne Linde 2012

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

Tentamen i Digitalteknik 5p

Introduktion till syntesverktyget Altera Max+PlusII

Tentamen i Digital Design

LAB VHDL-programmering

F5 Introduktion till digitalteknik

DIGITALTEKNIK. Laboration D161. Kombinatoriska kretsar och nät

Det finns en handledning till kortet på hemsidan. AVR STK500.

Låskretsar och Vippor

Digital- och datorteknik

Tentamen i IE Digital Design Fredag 21/

Digital Design IE1204

Tentamen IE1204 Digital Design Måndag 15/

CE_O3. Nios II. Inför lab nios2time

Transkript:

PARALLELL OCH SEKVENTIELL DATABEHANDLING Innehåll Parallellism i VHDL Delta delays och Simuleringstid VHDLs simuleringscykel Aktivering av Processer Parallella och sekventiella uttryck 1

Controller PARALLELLISM I VHDL architecture name_arch of name is Deklarering av signaler begin Process 1 register Process 2 Process 3 ALU Process 4 Parallella utryck memory end name_arch; Alla moduler körs parallellt med varandra, så VHDL måste därför kunna beskriva parallelism 2

SIMULERA VHDL-KOD För varje in-vektor genereras en ut-vektor 010 11 011 00 VHDL beskrivning av funktionen 000 01 110 11 011 10 111 11 Stimuli till kretsen (input data) VHDL simulator Resultat från kretsen (output data) 3

SIMULERA SEKVENTIELLA HÄNDELSER Simuleringstid Den modellerade tiden för kretsen som har simulerats (inte den faktiska kör-tiden för simuleringen) Delta-delay Används internt i simulatorn för att köa händelser Om ett delta delay läggs till i simuleringen så ändras inte simuleringstiden. 4

SIMULERA SEKVENTIELLA HÄNDELSER Exempel: Vad är resultatet på utgången C? IN: 1 0 1 A B & C Anta att grindarna inte har några interna fördröjningar Sim. tid delta event 1 & Delta delays används för att serialisera händelser som sker vid samma simuleringstid 0 ns 1 IN: 1 0 Inv ett nytt värde för A beräknas 0 ns 0 ns 2 3 A: 0 1 Nand, And beräkna nya värden B: 1 0 C: 0 1 And beräkna ett nytt värde för C C tilldelas ett nytt värde vid simuleringstiden 0 eftersom grindarna inte har några fördröjningar. 0 ns 4 C: 1 0 Inga fler händelser 5

SIMULERINGSCYKEL FÖR EN VHDL SIMULATOR Schemalägg ändring av signaler i framtida simuleringstid Starta simulering resultat Simuleringen stoppas Om det inte finns några fler händelser Updatera signaler Kör processer Ändra signalvärden som har schemalagts att ske vid nuvarande simuleringstid stimuli Terminera simulering Bara processer som är känsliga för inputs som har ändrats kommer att aktiveras 6

SCHEMALÄGGNING AV SIGNALER Exempel #1, inga fördröjningar specificerade i koden Tid a, b, x Driver (output x) Kommentarer 0ns 1, 0, 0 (0, 0ns) (0, 0ns+ ) p2 körs (initiering) 0ns + 1, 0, 0 (0, 0ns+ ) 10ns 1, 1, 0 (1,10 ns + ) p2 körs (b ändras) 10ns+ 1, 1, 1 (1,10 ns + ) Vid t=0 antas att: a = 1 ; b = 0 ; x = 0 vid t=10 ns, b= 1 p2: process(a, b) begin x <= a and b; end process p2; a b x 0 5 10 15 20 7

SCHEMALÄGGNING AV SIGNALER Exempel #2, två parallella signaltilldelningar Tid a, b, x Driver (output x) Kommentarer 0ns 1, 0, 0 (0, 0ns) (1, 0ns+ ) p3 körs (initiering) 0ns + 1, 0, 1 (1, 0ns+ ) 10ns 1, 1, 1 (1,10ns)(1,10ns+ )(0,10ns+ ) p3 körs (b ändras) 10ns+ 1, 1, 0 (0,10 ns + ) Vid t=0 antas att:: a = 1 ; b = 0 ; x = 0 vid t=10 ns, b= 1 p3: process(a, b) a begin x <= 1 ; b if b = 1 then x <= 0 ; x end if; end process p3; 0 5 10 15 20 8

EX: VHDL-KOD FÖR 3-INPUT AND Exempel #3, 3-input AND-grind x = a(2) a(1) a(0) and3: process(a) begin x <= 1 ; for i in 2 downto 0 loop x <= a(i) and x; end loop; end process p3; Det nya värdet för x schemaläggs till en tidpunkt efter att for-loopen har körts X är alltid 0 i for-loopen X <= a(i) and 0 x = 0 Tid a 2,a 1,a 0,x Driver (output x) Kommentarer 0ns 1,1,1,0 (0,0ns) (1,0ns+ ) (0,0ns+ ) (0,0ns+ ) (0,0ns+ ) and3 körs (initialization) 0ns + 1,1,1,0 (0, 0ns+ ) Signaltilldelningar är parallella händelser Det fungerar inte!! 9

EX: VHDL-KOD FÖR 3-INPUT AND 3-input AND använd variabler and3: process(a) variable temp: bit; begin temp := 1 ; for i in 2 downto 0 loop temp := a(i) and temp; end loop; end process p3; Variabeltilldelning sker omedelbart, utan att schemalägga händelser i framtiden Genom att använda variabler blir koden sekventiell där uttryckens ordning spelar roll Variabler kan endast användas i processer Det fungerar!! 10

PROCESSER En process är ett sekventiellt program. I en architecture kan flera processer köras parallellt. Kommunikation mellan processer sker via signaler. Syntax: [<process_name>:] process [(sensitivity list>)] [<declarations in the process>] begin <sequential statements> end process [<process_name>]; 11

AKTIVERING AV PROCESSER En process aktiveras när: -En signal i dess sensitivity list ändras, eller -En signal i dess waitstatement ändras Active/executing En process termineras när: -end process nås -wait-statement nås Waiting process(a, b, cin) begin s <= a xor b xor cin; end process; Aktiveras om a, b eller cin ändras process begin s <= a xor b xor cin; wait on a,b,cin end process; Går till wait-läge 12

SEKVENTIELLA UTTRYCK Sekventiella uttryck finns bara i processer Sekventiella uttryck Deras ordning i koden spelar roll Är inte relaterade till sekventiella kretsar (tillståndsmaskiner) Några sekventiella uttryck är: IF-THEN-ELSE CASE-WHEN 13

IF-THEN-ELSE Kör det första uttryck som följer ett sant villkor Inga andra uttryck körs label: if cond1 then statement1; elsif cond2 then statement2; else statement3; end if; -- not mandatory - not mandatory section -- not mandatory section 14

BOOLESKA UTTRYCK MED IF-THEN En följd av villkor realiserar en boolesk funktion process (x, y, z, a, b) begin if x = 1 then f <= a; elsif y = 1 then f <= b; elsif z = 1 then f <= c; else f <= d; end if; end process; f = xa + x yb + x y zc + x y z d 15

LOGISKA UTTRYCK MED IF-THEN-ELSE Exempel: process (xbus) begin if xbus = "111" then doitnow <= 1 ; else doitnow <= 0 ; end if; end process; 16

FELAKTIGT ANVÄNDANDE AV IF-THEN Exempel: process (xbus) begin if xbus = "111" then doitnow <= 1 ; end if; end process; -- en vippa introduceras D-LATCH Ingenting i koden sätter utgången till 0 D Q doitnow Xbus(2) Xbus(1) C Xbus(0) 17

CASE-WHEN UTTRYCK Kör endast en sektion som följs av ett sant uttryck eller av OTHERS Alternativen måste vara inbördes exklusiva Alla möjliga val måste anges Resulterar i en multiplexer-baserad struktur label: case selector_expression is when choice1 => statement1; when choice2 => statement2; when choice3 choice4 choice5 => statement3; when OTHERS => statement4; end case; 18

CASE-WHEN EXEMPEL 2:1 Multiplexer case sel is when 0 => z <= a; when 1 => z <= b; end case; 2:1 MUX a z b sel 19

PARALLELLA UTTRYCK Parallella uttryck finns på architecture-nivå Parallella uttryck Deras inbördes ordning i koden spelar ingen roll Resulterar i ett event (signal-tilldelning) i framtida simuleringstid Några parallella uttryck är: With-select-when When-else 20

WITH-SELECT-WHEN Kallas selected signal assignment Parallellt uttryck känsligt för och opererar på signaler Väljer ett av flera värden att driva signalen Valet (selection) baseras på alla möjliga värden (values) för ett uttryck with expression select outsignal <= value1 when val1, value2 when val2,... value9 when val9; 21

RESULTAT FRÅN WITH- SELECT-WHEN with expression select outsignal <= value1 when val1, value2 when val2,... value9 when val9; multiplexer value1 value2 outsignal value9 val1 val9 22

EXEMPEL PÅ ANVÄNDNING AV WITH-SELECT-WHEN add sub -- 2-to-1 multiplexer with addsub select opcode <= add when 0, sub when 1 ; addsub opcode with (a & b) select out <= "1011" when "00" "11--" when "1Z", x OR y when "11", "0000" when others; Logiska uttryck är tillåtna others är standardvalet om inget av de angivna valen är sanna with min_integer select outvec <= X"1F" when 35, X"27" when 2 TO 5, X"FF" when OTHERS; Ett intervall av värden kan specificeras 23

WHEN-ELSE Kallas även conditional signal assignment Parallellt uttryck känsligt för och opererar på signaler Väljer ett av flera värden att driva signalen Valet baseras på det första villkor som är sant outsignal <= value1 when cond1 else value2 when cond2 else... value9; 24

EXEMPEL PÅ ANVÄNDNING AV WHEN-ELSE opcode <= add when (addsub = 0 ) else sub when (addsub = 1 ) else nop; out <= "1011" when (a = 0 ) else "11--" when (b = 0 ) else x OR y when (a AND b) = 1 else "0000"; -- 4-to-2 priority encoder outcode <= "11" when in3 = 1 else "10" when in2 = 1 else "01" when in1 = 1 else "00" when in0 = 1 else "00"; 25

SLUT PÅ FÖRELÄSNING 9 Innehåll Parallellism i VHDL Delta delays och Simuleringstid VHDLs simuleringscykel Aktivering av Processer Parallella och sekventiella uttryck 26