bpc-los_10 - Greyův_C, tristate IO, simulace, ošetření metastability
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.
Klíčové
slovo - FUNCTION
Pomocí klíčového slova deklarujeme a definujeme novou funkci. Do funkce vstupují
proměnné
definovaného typu a výstupem funkce je jedna proměnná. Vstupy mohou být
typu
pure nebo impure. Modifikátor se uvádí před funkcí. Funkce pure jsou tzv. čisté
funkce – pro svoji činnost využívají pouze uvedené parametry v definici funkce.
--Obecna funkce AND
function AND_G(A : in std_logic_vector) return std_logic is
variable
result
: std_logic;
begin
result := '1';
for i in A'range Loop
result := A(i) And result;
End Loop;
return result;
end function;
Programovatelná hradlová pole typu FPGA a jazyk VHDL
Klíčové slovo - PROCESS
Proces je základním stavebním kamenem využívaným pro popis sekvenčních událostí. V architektuře je možné
definovat libovolné množství procesů, které běží souběžně. Každý proces reaguje na vstupní událost, která je
uvedena v záhlaví klíčového slova Process v závorkách, tzv. list aktivních proměnných. Při změně hodnoty
respektive stavu dané proměnné se proces automaticky spustí.
Zde je nutné uvést na pravou míru stav věcí! Je
nutné rozlišovat procesy, které jsou simulovány a které jsou zpracovávány při syntéze.
NEPOVINNÝ LABEL: PROCESS (LIST AKTIVNÍCH PROMĚNNÝCH)
BEGIN
SEKVENČNÍ PROCES;
END PROCESS NEPOVINNÝ LABEL;
signal A
: std_logic_vector(7 downto 0) := x"01";
signal B
: std_logic_vector(7 downto 0) := x"02";
signal C
: std_logic_vector(7 downto 0) := x"03";
signal D
: std_logic_vector(7 downto 0) := x"00";
BEGIN
PROCESS(A, B, C, D)
BEGIN
A <= B;
B <= C;
C <= D;
Q <= A And B And C And D;
END PROCESS;
Programovatelná hradlová pole typu FPGA a jazyk VHDL
Vyhodnocení procesu bude probíhat následovně. Předpokládejme výchozí stav signálů. Jejich inicializace
proběhne v čase t = 0. V čase t = 20 ns + 1 (symbolem + d je myšlen čas delta t) nastane změna na signálu D tím,
že do něj bude přiřazena nová hodnota D <= x"04". V tento okamžik se spustí proces což způsobí zápis do
proměnné C v čase t = 20 ns + 2, vzhledem k tomu, že došlo ke změně signálu proces se opět spustí a modifikuje
proměnnou B….celý proces je vyobrazen na listu vývoje signálu.