summaryrefslogtreecommitdiff
path: root/2004/n/fpga/src/gpio/decodeur.vhd
blob: 37848ac214d1c608675d4d674cbc40b07b5bb43b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
-- decodeur4.vhd
-- Eurobot 2004 : APB Team
-- Auteur : Pierre-Andr� Galmes
-- D�codeur 4 addresse.

library ieee;
use	ieee.std_logic_1164.all;

-- TODO : si on d�commente les lignes du dessous, on a des Warning !! Est-ce
-- normal ? Cela vient-il d'un probl�me de programmation cach� ? Est-ce des
-- conflits entre les librairies ?
--use     ieee.std_logic_arith.all;
--use     ieee.std_logic_unsigned.all;

use	work.nono_const.all;

entity decodeur is
    generic (
	-- adresses des diff�rents registres du module.
	A_REG0 : T_ADDRESS;
	A_REG1 : T_ADDRESS;
	A_REG2 : T_ADDRESS;
	A_REG3 : T_ADDRESS
	-- si autre choses � d�clarer...
    );
    port (
	-- TODO : utile la clock ?
	--clk : in std_logic;
	bus_address : in T_ADDRESS;
	enable0 : out std_logic;
	enable1 : out std_logic;
	enable2 : out std_logic;
	enable3 : out std_logic
    );
end entity;

architecture RTL of decodeur is
begin

--    process (clk)
--    begin
--	if (clk'event and clk = '1') then
--	end if;
--    end process;

    -- process combinatoire.
    enable0 <= '1' when (bus_address = A_REG0) else '0';
    enable1 <= '1' when (bus_address = A_REG1) else '0';
    enable2 <= '1' when (bus_address = A_REG2) else '0';
    enable3 <= '1' when (bus_address = A_REG3) else '0';
end RTL;