Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




bpc-los_05 - VHDL

PDF
Stáhnout kompletní materiál zdarma (354.08 kB)

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.

Word'left

31

Word'right

0

Word'low

0

Word'high

31

Word'length

32

Word'range

31 DOWNTO 0

Uživatelem definované atributy

• Mechanismus pro vytvoření uživatelských atributů je v jazyce 

VHDL umožněn pomocí klíčového slova ATTRIBUTE

• Slouží primárně k nastavení přepínačů a voleb při překladu 

zdrojového textu. 

• Každý návrhový systém obsahuje jiné přepínače. Doporučuji se 

vyhýbat jejich použití z důvodů přenositelnosti zdrojových textů.

Příklad funkční v Xilinx ISE:

-- definice uživatelského atributu
ATTRIBUTE enum_encoding: string;

-- definice výčtového typu colours
TYPE colours IS (BLACK, BLUE, RED, MAGENTA,
                GREEN, CYAN, YELLOW, WHITE);

-- deklarace atributu k typu colours
ATTRIBUTE enum_encoding OF colours: TYPE IS
                           "000 100 010 110 001 101 011 111";

Vymezené výrazy jazyka VHDL

SIGNAL a: std_logic;
SIGNAL b: bit;

a <= std_logic'('1');
b <= bit'('0' AND '1');

datový_typ'(literál nebo výraz)

Podobný zápis jako u atributů mají tzv. vymezené výrazy (qualified 
expressions).
Při zápisu literálu '1' není jasné, zda se jedná o typ bit nebo std_logic.
Zápisem níže je možné explicitně specifikovat požadovaný typ výrazu nebo 
literálu:

Příklad:

Konverze datových typů

Implicitní konverze datových typů

TYPE Byte1 IS RANGE 0 TO 255;
TYPE Byte2 IS RANGE 0 TO 255;

SIGNAL a: Byte1;
SIGNAL b: Byte2;

a <= b;   

Mezi dvěma objekty různých datových typů (i když 
definují totéž) 

nelze volně přiřazovat. VHDL je tzv. silně 

typovaný (strongly typed) jazyk.

Příklad:

-- nelze Byte1 a Byte2 jsou různé typy

Implicitní konverze datových typů

SUBTYPE Byte1 IS integer RANGE 0 TO 255;

SIGNAL a: integer;
SIGNAL b: Byte1;

a <= b;   -- lze

Z objektu odvozeného podtypu do objektu základního 
typu 

je možné přiřazovat.

Příklad:

ENTITY AddVector IS PORT(a, b:   IN  std_logic_vector(3 DOWNTO 0);
s1, s2: OUT std_logic_vector(3 DOWNTO 0));
END AddVector;

ARCHITECTURE Behavioral OF AddVector IS
BEGIN

END Behavioral;

s1 <= a + b;
s2 <= a + 2;

Explicitní konverze datových typů

Typ std_logic_vector neumožňuje aritmetické 
operace bez definice, zda jde o operace se znaménkem.

Příklad:

-- nelze
-- nelze

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

ENTITY AddVector IS PORT(a, b:   IN  std_logic_vector(3 DOWNTO 0);
s1, s2: OUT std_logic_vector(3 DOWNTO 0));
END AddVector;

ARCHITECTURE Behavioral OF AddVector IS
BEGIN

END Behavioral;

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

Témata, do kterých materiál patří