bpc-los_08 - Metastabilita, VHDL-popis sekv. obvodů
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
END FUNCTION hex_to_7seg;
Příklad definice funkce v jazyce VHDL
FUNCTION hex_to_7seg(SIGNAL hex: IN std_logic_vector(3 DOWNTO 0))
RETURN std_logic_vector IS
VARIABLE symbol: std_logic_vector(7 DOWNTO 0);
BEGIN
CASE hex IS WHEN X"0" => symbol := "00000000";
WHEN X"1" => symbol := "00000010";
-- Doplnit ostatní řádky
WHEN OTHERS => symbol := "10000110";
END CASE;
RETURN symbol;
END FUNCTION hex_to_7seg;
Uživatelské knihovny a knihovní
balíky - definice v jazyce VHDL
Definice uživ. balíku v jazyce VHDL
• Knihovní balík lze definovat pomocí klíč. slov PACKAGE a PACKAGE
BODY.
• V bloku PACKAGE deklarujeme: datové typy, názvy funkcí a
komponent v knihovního balíku.
• V bloku PACKAGE BODY definujeme: datové typy, těla funkcí,
procedur a entit v knihovním balíku.
• Jméno knihovního balíku uvedené v sekcích PACKAGE a
PACKAGE BODY musí shodné a stejně by se měl jmenovat i soubor ve
kterém je zdrojový text knihovního balíku uložen.
• V dalších zdrojových souborech se na knihovní balík odkazujeme
pomocí příkazu:
USE work.název_balíku.ALL;
Příklad definice funkce v knihovní balíku
Příklad definice funkce v knihovní balíku
limit.vhdl:
Příklad definice funkce v knihovní balíku
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
PACKAGE limit IS FUNCTION val_in_limit(val: INTEGER; low: INTEGER; high: INTEGER)
RETURN boolean;
END PACKAGE limit;
PACKAGE BODY limit IS FUNCTION val_in_limit(val: INTEGER; low: INTEGER; high: INTEGER)
RETURN boolean IS BEGIN
IF (val >= low AND val <= high) THEN RETURN true;
ELSE RETURN false;
END IF;
END FUNCTION val_in_limit;
END PACKAGE BODY limit;
limit.vhdl:
Příklad definice funkce v knihovní balíku
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
PACKAGE limit IS FUNCTION val_in_limit(val: INTEGER; low: INTEGER; high: INTEGER)
RETURN boolean;
END PACKAGE limit;
PACKAGE BODY limit IS FUNCTION val_in_limit(val: INTEGER; low: INTEGER; high: INTEGER)
RETURN boolean IS BEGIN
IF (val >= low AND val <= high) THEN RETURN true;
ELSE RETURN false;
END IF;
END FUNCTION val_in_limit;
END PACKAGE BODY limit;
limit.vhdl:
Příklad definice funkce v knihovní balíku
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
PACKAGE limit IS FUNCTION val_in_limit(val: INTEGER; low: INTEGER; high: INTEGER)
RETURN boolean;
END PACKAGE limit;
PACKAGE BODY limit IS FUNCTION val_in_limit(val: INTEGER; low: INTEGER; high: INTEGER)
RETURN boolean IS BEGIN
IF (val >= low AND val <= high) THEN RETURN true;
ELSE RETURN false;
END IF;
END FUNCTION val_in_limit;
END PACKAGE BODY limit;