VHDL: diferència entre les revisions

Contingut suprimit Contingut afegit
m Diacrítics
m Bot elimina espais sobrants
Línia 60:
ENTITY Nom_entitat IS
PORT (Nom de senyal: MODE tipus de senyal;
. . .
Nom de senyal: manera tipus de senyal);
END nom_entitat;
</syntaxhighlight>
Línia 175:
ENTITY Exemple1 IS
PORT (a, b: IN bit;
F: OUT bit);
END Exemple1;
</syntaxhighlight>
Línia 237:
BEGIN
F <= '1 'WHEN a = '1' AND b = '1 'ELSE
'0 ';
END and_2ent;
</syntaxhighlight>
Línia 247:
BEGIN
F <= '1 'WHEN a = '1' AND b = '1 'ELSE
'0 'WHEN a = '0' AND b = '0 'ELSE
'0 'WHEN a = '0' AND b = '1 'ELSE
'0 'WHEN a = '1' AND b = '0 'ELSE
'-';
END and_2ent;
</syntaxhighlight>
 
Línia 259:
ENTITY exemp2_3 IS -- Només es canvia el nom de l'entitat
PORT (a, b: IN bit;
F: OUT bit);
END exemp2_3 ;
 
Línia 265:
BEGIN
f <= '1 'WHEN a/= b ELSE
'0 ';
END dos_ent;
</syntaxhighlight>
Línia 281:
ENTITY Boole_4 IS
PORT (a, b: IN Boolean;
I: OUT Bolean);
END Boole_4;
 
Línia 287:
BEGIN
I <= true WHEN a = false and b = false ELSE
False;
END Bole4_a;
</syntaxhighlight>
Línia 297:
ENTITY Boole_5 IS
PORT (a, b: IN Boolean;
I: OUT Bolean);
END Boole_5;
 
Línia 305:
WITH a SELECT
I <= false WHEN true,
Sense b WHEN others;
END Bole5_a;
</syntaxhighlight>
Línia 350:
COMPONENT nombre_componente
PORT (Nom de senyal: manera tipus de senyal;
...
...
Nom de senyal: manera tipus de senyal);
END COMPONENT;
</syntaxhighlight>
Línia 373:
ENTITY T IS
PORT (a, b, c: IN BIT;
T: OUT BIT);
END T;
 
ARCHITECTURE T OF T IS
BEGIN
T <= '1 'WHEN a = '0' AND b = '1 'AND c = '1' ELSE
'1 'WHEN a = '1' AND b = '0 'AND c = '0' ELSE
'0 ';
END T;
</syntaxhighlight>
Línia 390:
COMPONENT T - El nom del component ha de ser igual a l'entitat que s'empaqueta
PORT (a, b, c: IN BIT;
T: OUT BIT);
END COMPONENT;
END TPKG;
Línia 400:
 
<syntaxhighlight lang="VHDL">
entity MUX2a1 is port (
a: in std_logic;
b: in std_logic;
sel: in std_logic;
z: out std_logic);
end entity
 
architecture Dataflow of MUX2a1 is
begin
z <= a when sel = '0' else b;
end Dataflow;
 
</syntaxhighlight>
Línia 417:
 
<syntaxhighlight lang="VHDL">
entity MUX4a1 is
port (a: in std_logic;
b: in std_logic;
c: in std_logic;
d: in std_logic;
z: out std_logic;
sel: in std_logic_vector (1 downto 0));
end entity;
architecture Dataflow of MUX4a1 is
begin
process (a, b, c, d, sel) begin
case sel is
when "00" => z <= a;
when "01" => z <= b;
when "10" => z <= c;
when "11" => z <= d;
end case;
end process;
end Dataflow;
</syntaxhighlight>
 
Línia 463:
USE ieee.std_logic_1164.all;
USE IEEE.numeric_std.all;
ENTITY EdgeDetector IS PORT( --Definició dels senyals de entrada i sortida, interfície
clock : IN STD_LOGIC; -- Rellotge del sistema
InSignal : IN STD_LOGIC; -- Senyal dentrada
RisingEdge : OUT STD_LOGIC; -- Flanc de pujada
FallingEdge : OUT STD_LOGIC); -- Flanc de baixada
END EdgeDetector;
ARCHITECTURE logic OF EdgeDetector IS
SIGNAL inp: STD_LOGIC;
SIGNAL inp_dly: STD_LOGIC;
BEGIN
FallingEdge <= inp_dly AND (NOT(inp)); -- input rising edge detection
RisingEdge <= inp AND (NOT(inp_dly)); -- input falling edge detection
edge_detector: PROCESS(clock) -- Inici del procés síncron
BEGIN
IF(clock'EVENT AND clock = '1') THEN -- A cada flanc de pujada del rellotge del sistema
inp_dly <= inp;
inp<= InSignal;
END IF;
END PROCESS;
END logic;
</syntaxhighlight>