bpc-los_04 - VHDL-dat. typy, operátory, soub. příkazy, podm. přiřaz.
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.
TYPE des_cislo IS RANGE -1.0E38 TO 1.0E38;
• Existuje předdefinovaný celočíselný typ: real
SIGNAL a: des_cislo;
SIGNAL b: real := -42.6;
Předdefinovaný datový typ s plovoucí
desetinnou čárkou
• Předdefinovaný celočíselný typ: real
Datový typ
Minimum
Maximum
real
−1.0E38
1.0E38
TYPE real IS RANGE -1.0E38 TO 1.0E38;
• Implementace typu definována normou IEEE754
(tj. obsahuje mantisu a exponent).
• Skutečný rozsah typu implementačně závislý.
• Nejčastěji odpovídá IEEE754 - Binary64 (dříve označován
jako Double precision).
Složené datové typy
Datový typ pole
•
Typ pole - objekt je složen z více prvků téhož typu
TYPE word IS ARRAY (15 DOWNTO 0) OF bit;
TYPE ram1024x16 IS ARRAY (0 TO 1024) OF word;
TYPE mujvektor IS ARRAY (natural RANGE <>) OF bit;
•
Zápis natural v závorce definuje datový typ indexu pole.
•
Zápis RANGE <> znamená, že jde o neomezené (unconstrained)
pole, jehož rozsah musí být při deklaraci signálu definován pomocí
klíčových slov: TO, DOWNTO.
•
Lze tvořit i vícerozměrné pole.
SIGNAL a: word;
SIGNAL ram: ram1024x16;
SIGNAL vektor: mujvektor(7 DOWNTO 0) := B"0000_0000";
-- Použití hodnot
a <= 42;
ram(1) <= a;
vektor <= B"1111_1111";
Předdefinované datové typy pole
Předdefinované typy pole: bit_vector, string
TYPE bit_vector IS ARRAY (natural RANGE <>) OF bit;
TYPE string IS ARRAY (positive RANGE <>) OF character;
• Příklad využití předdefinovaných typů pole:
SIGNAL vektor: bit_vector(7 DOWNTO 0) := B"0000_0000";
SIGNAL retezec: string(1 TO 12);
-- Použití hodnot
vektor(0) <= '1';
retezec <= "Hello world";
Datové typy v std_logic_1164
TYPE std_ulogic IS
(’U’,’X’,’0’,’1’,’Z’,’W’,’L’,’H’,’-’);
• Standard pro std_logic_1164 definuje výčtové typy:
std_ulogic, std_logic.
• Literály: (’U’,’X’,’Z’,’W’,’L’,’H’) musí být psány
VELKÝMI písmeny.
• Před deklarací entity musíme uvést následující odkazy:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
Datové typy v std_logic_1164
Datové typy v std_logic_1164
Typ std_logic obsahuje stejnou sadu hodnot jako std_ulogic,
ale navíc je mu přiřazena rozlišovací funkce (resolution function)
nazvaná resolved pro řešení situací v rámci simulace, kdy je
možné spojit několik výstupů.
'U' 'X' '0' '1' 'Z' 'W' 'L' 'H' '-'
'U' U
U
U
U
U
U
U
U
U
'X' U
X
X
X
X
X
X
X
X
'0' U
X
0
X
0
0
0
0
X
'1' U
X
X
1
1
1
1
1
X
'Z' U
X
0
1
Z
W
L
H
X
'W' U
X
0
1
W
W
W
W
X
'L' U
X
0
1
L
W
L