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.
agregátu (aggregate):
• Hodnoty v závorce jsou přiřazeny prvkům vektoru na základě jejich
pořadí ve shodě s deklarací příslušného typu. Dle sestupné nebo
vzestupné deklarace DOWNTO nebo TO.
•
Přiřazení vyjmenováním (named association). Před operátorem
přiřazením (=>) je hodnota indexu, za operátorem je hodnota prvku,
index může obsahovat rozsah s klíčovým slovem DOWNTO nebo TO,
OTHERS definuje ostatní indexy, musí být uveden jako poslední:
-- Přiřazení vyjmenováním (named association)
data <= (5 => ’1’, 4 DOWNTO 3 => ’Z’, OTHERS => ’0’);
Výrazy a operátory
• Výrazy jsou skupiny identifikátorů vzájemně propojeny operátory.• Pro vyznačení pořadí operací se užívají závorky.
• Skupiny operátorů:
- Logické operátory: (AND OR NAND NOR XOR XNOR NOT)
- Relační operátory: (= /= < <= > >=)
- Operátory bitového posunu, rotace: (SLL SRL SLA SRA ROL
ROR)
- Operátor bitového sloučení (concatenate) ( & )
- Aritmetické operátory:
+ Sčítání.
- Odečítání nebo změna znaménka.
*, ** Násobení, mocnina.
/, REM, MOD Dělení, zbytek po dělení, modulo.
Výrazy a operátory
Logické operátory
Logické operátory (AND OR NAND NOR XOR XNOR NOT):
• Definované pro typ bit, boolean, std_logic.
• Definovaná
priorita je pro všechny operátory shodná, pouze
NOT má vyšší prioritu.
Relační operátory
Relační operátory (= /= < <= > >=):
• Operátory
= a /= jsou definované pro všechny typy.
• Ostatní relace jsou definovány pro skalární typy a pro pole s
omezeným rozsahem.
• Na
obou stranách operátorů musí být operand téhož typu!!!
• Výsledkem relačního operátoru je hodnota typu boolean.
Operátory bitového posunu, rotace ( pole OPERÁTORpočet ):
(SLL, SRL) Logický posun (Shift Left/Right Logical)
(SLA, SRA) Aritmetický posun (Shift Left/Right Arithmetic)
(ROL, ROR) Rotace (ROtate Left/Right)
Bitové operátory
• Definovány pouze pro pole s typy: bit, boolean, bit_vector.
• Pokud je počet záporný provede se ekvivalentní operace opačným směrem.
• Pro pole (std_logic_vector) nutno využít knihovní balíky: