exercice 4
This commit is contained in:
26
VHD/hdl/ex_24_1_4_entity.vhd
Normal file
26
VHD/hdl/ex_24_1_4_entity.vhd
Normal file
@@ -0,0 +1,26 @@
|
||||
-- VHDL Entity VHD.ex_24_1_4.symbol
|
||||
--
|
||||
-- Created:
|
||||
-- by - francois.francois (Aphelia)
|
||||
-- at - 12:57:27 03/27/19
|
||||
--
|
||||
-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
|
||||
--
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.all;
|
||||
USE ieee.numeric_std.all;
|
||||
|
||||
ENTITY ex_24_1_4 IS
|
||||
PORT(
|
||||
A : IN std_ulogic;
|
||||
B : IN std_ulogic;
|
||||
clock : IN std_ulogic;
|
||||
reset : IN std_ulogic;
|
||||
en : OUT std_ulogic;
|
||||
dir : OUT std_ulogic
|
||||
);
|
||||
|
||||
-- Declarations
|
||||
|
||||
END ex_24_1_4 ;
|
||||
|
@@ -1,5 +1,52 @@
|
||||
architecture studentVersion of ex_24_1_4 is
|
||||
|
||||
signal oldA: std_ulogic;
|
||||
signal oldB: std_ulogic;
|
||||
|
||||
begin
|
||||
en <= '0';
|
||||
dir <= '0';
|
||||
|
||||
process(reset, clock) begin
|
||||
if reset = '1' then
|
||||
en <= '0';
|
||||
dir <= '0';
|
||||
oldA <= '0';
|
||||
oldA <= '0';
|
||||
elsif rising_edge(clock) then
|
||||
oldA <= a;
|
||||
oldB <= b;
|
||||
|
||||
if (a='1' and oldA='0') then
|
||||
en <= '1';
|
||||
if b = '0' then
|
||||
dir <= '1';
|
||||
else
|
||||
dir <= '0';
|
||||
end if;
|
||||
elsif (b='1' and oldB='0') then
|
||||
en <= '1';
|
||||
if a = '0' then
|
||||
dir <= '0';
|
||||
else
|
||||
dir <= '1';
|
||||
end if;
|
||||
elsif (a='0' and oldA='1') then
|
||||
en <= '1';
|
||||
if b = '1' then
|
||||
dir <= '1';
|
||||
else
|
||||
dir <= '0';
|
||||
end if;
|
||||
elsif (b='0' and oldB='1') then
|
||||
en <= '1';
|
||||
if a = '1' then
|
||||
dir <= '0';
|
||||
else
|
||||
dir <= '1';
|
||||
end if;
|
||||
else
|
||||
en <= '0';
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
end studentVersion;
|
||||
|
Reference in New Issue
Block a user