De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

HAN-University VHDL Taal beschrijvingen Multivalue logic Functies in VHDL Eigen types definiëren Kloksignalen en testbenches.

Verwante presentaties


Presentatie over: "HAN-University VHDL Taal beschrijvingen Multivalue logic Functies in VHDL Eigen types definiëren Kloksignalen en testbenches."— Transcript van de presentatie:

1 HAN-University VHDL Taal beschrijvingen Multivalue logic Functies in VHDL Eigen types definiëren Kloksignalen en testbenches

2 HAN-University 2 Multivalue logic Het overloaden van functies en operatoren: uitbreiden van aantal mogelijke signaalwaarden naast ‘0’ en ‘1’. Doel: meer informatie geven over de signaaltoestand tijdens simulatie. Voorbeeld: AND poort met hoog impedante ingangen: AND 01Z Z011 De waarheidstabel is: Hoe beschrijf je dit in VHDL? TYPE tri IS (‘0’, ‘1’,’Z’); FUNCTION “AND” (left, right: tri) RETURN tri IS TYPE tri_array IS ARRAY (tri, tri) OF tri; CONSTANT and_table : tri_array := ((‘0’,’0’,’0’), (‘0’,’1’,’1’), (‘0’,’1’,’1’)); BEGIN RETURN and_table (left, right); END FUNCTION “AND”;

3 HAN-University 3 STD_ULOGIC type IEEE 1164: standaard die 9 mogelijke waarden en bij behorende functies beschrijft: TYPE std_ulogic IS (‘U’,‘X’,‘0’,‘1’,‘Z’,‘W’,‘L’,‘H’, ‘-‘); ‘U’ Unitialized ‘X’ geforceerde onbekende ‘0’geforceerde 0 ‘1’geforceerde 1 ‘Z’ hoge impedantie ‘W’ zwakke onbekende ‘L’ zwakke 0 ‘H’ zwakke 1 ‘-‘ don’t care AND waarheids tabel voor std_ulogic type: ANDUX01ZWLH- UUU0UUU0UU XUX0XXX0XX UX01XX01X ZUX0XXX0XX WUX0XXX0XX L HUX01XX01X -UX0XXX0XX  Met std_ulogic mag maar 1 waarde aan een signaal worden toegekend. Dus 1 source (out, inout, buffer, driver)  Meerder sources op signaal (bv uitgangen van tri state buffer) kan alleen met std_logic

4 HAN-University 4 Multiple outputs Std_logic staat toe dat meerdere outputs aan een signaal verbonden worden Std_logic kan gedefinieerd worden als een subtype van std_ulogic omdat het slechts een uitbreidende functie is en de signaalwaarden niet veranderd. a <= out1 a <= out2 UX01ZWLH- UUUUUUUUUU XUXXXXXXXX 0UX0X0000X 1UXX11111X ZUX01ZWLHX WUX01WWWWX LUX01LWLWX HUX01HXWHX -UXXXXXXXX Wat gebeurt er als a <= ‘0’, en a <=’1’, bij std_logic? En bij std_ulogic? Alles bevindt zich in een gecompileerde package waarvan een library IEEE is gemaakt, de standaard die je hieruit wil gebruiken is std_logic: declareren voor elke entity, geldt dan ook voor alle bijbehorende architectures. LIBRARY IEEE; USE IEEE.std_logic_1164.all OPDRACHT: Schrijf functie voor AND poort met 4 value logic(0,1, Z, X) waarvoor geldt (met afnemende prioriteit): 1 of meer inputs 0 geeft output 0, 1 of meer inputs X geeft output X

5 HAN-University 5 Eigen types definiëren VHDL staat de gebruiker toe om eigen types te definiëren: enumerated (opsomming) types. ARCHITECTURE gedrag OF processor IS TYPE my_state(reset, idle, dma_cycle, int_cycle); … SIGNAL state, next_state : my_state; SIGNAL two_bit : STD_LOGIC_VECTOR(1 DOWNTO 0); … BEGIN … state <= reset;// correct state <= 00;// NIET correct state <= two_bit;// NIET correct … END gedrag; Kun je dit wel implementeren? Synthese tools bieden wel de mogelijkheid om enumerated types te mappen naar een bitpatroon.

6 HAN-University 6 Klok signaal maken: Concurrent: clock <= NOT clock AFTER 10ns; Werkt alleen als clock van type bit is, anders initialiseren: SIGNAL clock : std_logic := ‘0’; Process:clk: PROCESS IS BEGIN Clock <= ‘0’; WAIT FOR 10 ns; Clock <= ‘1’; WAIT FOR 10ns; END PROCESS clk; Reset signaal maken: rst: PROCESS IS BEGIN reset <= ‘1’; WAIT FOR 5 ns; reset <= ‘0’; WAIT FOR 5ns; reset <= ‘1’; WAIT; END PROCESS rst;

7 HAN-University 7 Resultaten naar file schrijven: Wegschrijven van stoplicht state met tijd op een regel; monitor: PROCESS (hoofdweg_groen, zijweg_groen) IS VARIABELE linebuffer : line; BEGIN Write(linebuffer, NOW) IF hoofdweg_groen = ‘1’ THEN Write(linebuffer, STRING’(“Hoofdweg is groen) ELSE Write(linebuffer, STRING’(“Zijweg is groen) END IF; Writeline(output, linebuffer) END PROCESS; OPDRACHT: maak een testbench die klok synchroon een 4 bits teller signaal genereert als output. De klok is 2 MHz en de output ijlt 100ns na op de klok.


Download ppt "HAN-University VHDL Taal beschrijvingen Multivalue logic Functies in VHDL Eigen types definiëren Kloksignalen en testbenches."

Verwante presentaties


Ads door Google