De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

© imec 2003 VHDL Introductie. © imec 2003 Merlijn Aurich – TSO / Invomec2 VHDL als documentatie VHDL = VHSIC Hardware Description Language VHSIC = Very.

Verwante presentaties


Presentatie over: "© imec 2003 VHDL Introductie. © imec 2003 Merlijn Aurich – TSO / Invomec2 VHDL als documentatie VHDL = VHSIC Hardware Description Language VHSIC = Very."— Transcript van de presentatie:

1 © imec 2003 VHDL Introductie

2 © imec 2003 Merlijn Aurich – TSO / Invomec2 VHDL als documentatie VHDL = VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuit VHDL is begin jaren ‘80 ontwikkeld in opdracht van het departement van defensie (DoD) van de VS. Zij wilden in eerste instantie een eigen beschrijving van het gedrag van de asics in de toestellen die ze aankochten. VHDL werd aanvankelijk dus gebruikt als documentatie en beschrijving van specificaties.

3 © imec 2003 Merlijn Aurich – TSO / Invomec3 VHDL voor simulatie Buiten documentatie is VHDL ook nuttig is om simulaties op uit te voeren, dus om de werking van de asic te controlleren op een computer. Hierdoor kwamen de eerste VHDL simulatie tools op de markt. Door zijn uitwisselbaarheid won VHDL aan populariteit. Iedere fabricant had namelijk voordien zijn eigen taal bv Verilog (later ook gestandardiseerd en nu de grote tegenhanger van VHDL), AHDL(Altera),…

4 © imec 2003 Merlijn Aurich – TSO / Invomec4 VHDL gestandardiseerd door IEEE In 1987 werd VHDL gestandaardiseerd door IEEE. Enkele bedrijven kwamen vervolgens op het idee om software te schrijven waarmee je VHDL kan synthetiseren. Synthetiseren = het omzetten van een VHDL beschrijving in een netlist. Een netlist is een tekstbestand waarin staat welke standaardcel via welke verbinding aan welke andere standaardcel hangt. Voorbeelden van standaardcellen: and poorten, flipflops, adders, inverters, buffers…De standaardcellen zijn getekend door een designer.

5 © imec 2003 Merlijn Aurich – TSO / Invomec5 Voorbeeld van een netlist module SUB1 ( SHIFT_IN_W1, SHIFT_CLK01, SUB1_1_to_SUB1_2 ); input SHIFT_IN_W1 ; input SHIFT_CLK01 ; output SUB1_1_to_SUB1_2 ; wire DFF_instance_QB, buf1_to_buf2, DFF_to_buf1 ; BUFBD1 BUFBD1_instance2 (.Z(buf2_to_buf3),.A(buf1_to_buf2) ); BUFBD1 BUFBD1_instance1 (.Z(buf1_to_buf2),.A(DFF_to_buf1) ); DFF DFF_instance (.Q(DFF_to_buf1),.QB(DFF_instance_QB),.CLOCK(SHIFT_CLK01),.DATA(SHIFT_IN_W1) ); endmodule /* SUB1 */

6 © imec 2003 Merlijn Aurich – TSO / Invomec6 Synthetiseerbare VHDL (asics) Aangezien VHDL bedoeld was als documentatie en voor simulatie, zijn de mogelijkheden van de taal vrij uitgebreid. Je kan bijvoorbeeld files openen en erin schrijven of ervan lezen. Gevolg: slechts een gedeelte van de taal is synthetiseerbaar. Sommige VHDL constructies zijn helemaal niet synthetiseerbaar. Sommige VHDL expressies worden genegeerd door synthesetools. Deze expressies hebben wel betekenis tijdens simulaties. (zie volgende slide).

7 © imec 2003 Merlijn Aurich – TSO / Invomec7 Voorbeeld: verschil synthetiseerbare en niet-synthetiseerbare VHDL Entity inverter is port ( A : in bit; Z : out bit ); End entity; Architecture behaviour of inverter is begin Z <= not A after 5 ns; End architecture; Entity inverter is port ( A : in bit; Z : out bit ); End entity; Architecture RTL of inverter is begin Z <= not A; End architecture;

8 © imec 2003 Merlijn Aurich – TSO / Invomec8 VHDL voor programeerbare logica In de jaren 90 begon met ook het nut ervan in te zien om VHDL te gebruiken voor configuratie/programmatie van programmeerbare logica. Voorheen gebruikte elke fabricant zijn eigen taal. FPGA: vluchtig (SRAM gebaseerd) vb: de Flex op het experimenteerbord. PLD: niet vluchtig (EEPROM gebaseerd) vb: De Max op het experimenteerbord. Bekijk de datasheets voor meer informatie

9 © imec 2003 Merlijn Aurich – TSO / Invomec9 Van VHDL 87 naar VHDL 93 De syntax van VHDL 87 was niet altijd consistent. Daarom werden de taal lichtjes veranderd. Dit werd VHDL 93. Wij gebruiken de syntax van VHDL 93

10 © imec 2003 Merlijn Aurich – TSO / Invomec10 Probleem van het standaard type bit Het type bit is één van de basistypes van VHDL. Voor dit type bit bestaan er slechts 2 mogelijke waarden: 0 (laag) of 1 (hoog). In realiteit zijn er echter veel meer mogelijkheden. Een signaal kan: hoog-impedant zijn open drain zijn onbekend zijn … Dit is een probleem voor simulatie.

11 © imec 2003 Merlijn Aurich – TSO / Invomec11 DE IEEE standard 1164 library Veel tool vendors boden hun eigen bibliotheken aan met daarin meerwaardige logica. Dit zorgde voor incompatabiliteiten tussen de verschillende tools. Uiteindelijk werd aan de standaard de bibliotheek IEEE standard 1164 toegevoegd. Hierin zit o.a. het negenwaardige type std_ulogic. TYPE std_ulogic IS ( 'U', -- Uninitialized 'X', -- Forcing Unknown '0', -- Forcing 0 '1', -- Forcing 1 'Z', -- High Impedance 'W', -- Weak Unknown 'L', -- Weak 0 'H', -- Weak 1 '-' -- Don't care );

12 © imec 2003 Merlijn Aurich – TSO / Invomec12 Het std_logic type Std_ulogic heeft 1 probleem: wat is de waarde indien er twee std_ulogic signalen aan elkaar hangen met verschillende waarde? ‘0’ + ‘1’ = ? ‘L’ + ‘H’ = ? Daarom werd ook het type std_logic gedefineerd. Std_logic is een resolved type, wat wil zeggen dat wanneer twee std_logic signalen aan elkaar hangen, en beide signalen een andere waarde hebben, er via een functie (een resolve functie) bepaald wordt wat de waarde van het uiteindelijke signaal wordt.

13 © imec 2003 Merlijn Aurich – TSO / Invomec13 VHDL Wij houden ons vooral bezig met het synthetiseerbare gedeelte van VHDL. Om er zeker van zijn dat je VHDL synthetiseerbaar is, hou je je best aan de standaard templates, gezien in de lessen van het eerste jaar Zo zijn er templates voor de verschillende soorten flipflops, multiplexers en state machines

14 © imec 2003 Merlijn Aurich – TSO / Invomec14 Entity en architecture Library IEEE; Use IEEE.std_logic_1164.all; entity inverter is port ( A : in std_logic; Z : out std_logic); end entity; architecture RTL1 of inverter is begin process(A) begin Z <= not A; end process; end architecture; Library IEEE; Use IEEE.std_logic_1164.all; entity inverter is port ( A : in std_logic; Z : out std_logic); end entity; architecture RTL2 of inverter is begin Z <= not A; end architecture;

15 © imec 2003 Merlijn Aurich – TSO / Invomec15 And, or, not Library IEEE; Use IEEE.std_logic_1164.all; entity and_or_not is port ( A, B : in std_logic; And_out, Or_out : out std_logic; Not_out : out std_logic_vector(1 downto 0)); end entity; architecture RTL1 of and_or_not is begin And_out <= A and B; Or_out <= A or B; Not out <= (not B) & not (A); --concatenatie end architecture;

16 © imec 2003 Merlijn Aurich – TSO / Invomec16 Multiplexer Library IEEE; Use IEEE.std_logic_1164.all; entity mux is port ( A, B, S : in std_logic; Z : out std_logic); end entity; architecture RTL1 of mux is begin process(A,B, S) begin if S = ‘0’ then Z <= A; else Z <= B; end process; end architecture;

17 © imec 2003 Merlijn Aurich – TSO / Invomec17 Geklokt Process: Flipflop Library IEEE; Use IEEE.std_logic_1164.all; entity flipflop is port ( D : in std_logic; clock : in std_logic; Q : out std_logic ); end entity; architecture RTL of flipflop is begin process(clock) begin if rising_edge(clock) then Q <= D; end if; end process; end architecture;

18 © imec 2003 Merlijn Aurich – TSO / Invomec18 Geklokt Process: Flipflop met asynchrone reset Library IEEE; Use IEEE.std_logic_1164.all; entity reset_flipflop is port ( D, reset : in std_logic; clock : in std_logic; Q : out std_logic ); end entity; architecture RTL of reset_flipflop is begin process(clock, reset) begin if reset = ‘0’ then Q <= ‘0’; elsif rising_edge(clock) then Q <= D; end if; end process; end architecture;

19 © imec 2003 Merlijn Aurich – TSO / Invomec19 The VHDL Connectivity Model The VHDL “View of Life” Multiple Processes executing statements in sequence, like concentional “software” Interacting ‘concurrently’ connected by signals Contained within an entity/architecture or several for a hierarchical design Process


Download ppt "© imec 2003 VHDL Introductie. © imec 2003 Merlijn Aurich – TSO / Invomec2 VHDL als documentatie VHDL = VHSIC Hardware Description Language VHSIC = Very."

Verwante presentaties


Ads door Google