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.

Explicitní konverze datových typů

Příklad:

USE ieee.std_logic_unsigned.ALL;  -- Nepatří do VHDL standardu

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

-- nyní lze (implicitní unsigned součet)
-- nyní lze (implicitní unsigned součet)

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

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;

Explicitní konverze datových typů

Příklad:

USE ieee.std_logic_signed.ALL;  -- Nepatří do VHDL standardu

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

-- nyní lze (implicitní signed součet)
-- nyní lze (implicitní signed součet)

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

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;

Explicitní konverze datových typů

Příklad:

USE ieee.std_logic_arith.ALL;  -- Nepatří do VHDL standardu

s1 <= signed(a) + signed(b);
s2 <= unsigned(a) + 2;

-- explicitní signed součet
-- explicitní unsigned součet

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

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;

Explicitní konverze datových typů

Příklad:

USE ieee.numeric_std.ALL;  -- VHDL norma IEEE 1076.3

s1 <= std_logic_vector(signed(a) + signed(b));
s2 <= std_logic_vector(unsigned(a) + 2);

-- signed součet
-- unsigned součet

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

Knihovna numeric_std

Tato standardní knihovna (IEEE 1076.3) definuje:

• Nové celočíselné typy: signedunsigned vnitřně implementované jako vektory typu 

std_logic_vector o zvoleném počtu bitů.

• Všechny relační a aritmetické operátory mezi těmito dvěma typy a také předefinovanými typy: 

integernatural.

• Všechny logické operátory, operátory bitového posunu i rotace pro typy: signedunsigned.
• Konverze z typů: signedunsigned na typy: integernatural pomocí funkce: 

to_integer(aČíslo). 

• Konverze z typů: integernatural na typy: signedunsigned pomocí funkcí: 

to_signed(aČíslo, aPočet_bitů), to_unsigned(aČíslo, aPočet_bitů).

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