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.
ieee.numeric_std nebo ieee.numeric_bit, a funkce:
shift_left(), shift_right(), rotate_left() a rotate_right().
1 0 1 1 1 0 1 0
0 1 1 1 0 1 0 0
0
1
1 0 1 1 1 0 1 0
0 1 0 1 1 1 0 1
0
0
1 0 1 1 1 0 1 0
1 1 0 1 1 1 0 1
0
1 0 1 1 1 0 1 0
0 1 1 1 0 1 0 1
1
1 0 1 1 1 0 1 0
0 1 0 1 1 1 0 1
0
1 0 1 1 1 0 1 0
0 1 1 1 0 1 0 0
1
Bitové operátory
Operátor bitového sloučení (concatenate) ( & ):
SIGNAL vec1, vec2, rvec: std_logic_vector(7 DOWNTO 0);
vec1 <= "0011" & "0010";
vec2 <= vec1(7 DOWNTO 4) & vec1(3 DOWNTO 0);
rvec <= vec1(0 TO 3) & vec1(4 TO 7);
Aritmetické operátory
Aritmetické operátory:
ABS(arg)
Absolutní hodnota
arg1 + arg2 Sčítání
arg1 - arg2 Odečítání
-(arg) Změna znaménka (povinné závorky)
arg1 * arg2 Násobení
arg1 ** arg2 Mocnina
arg1 / arg2 Dělení
arg1 REM arg2 Zbytek po dělení (znaménko dle arg1)
arg1 MOD arg2 Dělení modulo (znaménko dle arg2)
• Definovány pro všechny typy std_logic v balíku: ieee.numeric_std,
případně pro typ bit v balíku: ieee.numeric_bit.
• Operátory / , REM a MOD pravděpodobně nezvládne prostředí
syntetizovat do reálného HW. Lze je, ale použít pro simulaci a testování.
Výrazy a operátory
Přetěžování operátorů:
• Přetížení operátorů je dovoluje použít pro nové (uživatelem definované)
definované typy.
• Využito právě pro definici operátoru pro typy std_logic v balíku:
ieee.numeric_std, případně pro typ bit v balíku:
ieee.numeric_bit.
Příkazy jazyka VHDL
• Příkazy v jazyce VHDL mohou mít
souběžný nebo
sekvenční charakter.
• Některé příkazy jsou pouze jednoho druhu, jiné mohou
být obojího druhu.
• Toto rozlišení se určí podle toho ve které části popisu se
příkazy používají.
Příkazy jazyka VHDL
Jazyk VHDL - souběžné příkazy
Jazyk VHDL - souběžné příkazy
Jak se liší jednotlivé následující zápisy?
Jazyk VHDL - souběžné příkazy
Jazyk VHDL - souběžné příkazy
-- Deklarace entity KombinacniObvod
ENTITY KombinacniObvod IS PORT (a, b, c: IN std_logic; -- Deklarace vstupu
y: OUT std_logic); -- Deklarace výstupu
END KombinacniObvod;