summaryrefslogtreecommitdiff
path: root/2004/n/fpga/src/gpio/decodeur.vhd
diff options
context:
space:
mode:
Diffstat (limited to '2004/n/fpga/src/gpio/decodeur.vhd')
-rw-r--r--2004/n/fpga/src/gpio/decodeur.vhd51
1 files changed, 51 insertions, 0 deletions
diff --git a/2004/n/fpga/src/gpio/decodeur.vhd b/2004/n/fpga/src/gpio/decodeur.vhd
new file mode 100644
index 0000000..37848ac
--- /dev/null
+++ b/2004/n/fpga/src/gpio/decodeur.vhd
@@ -0,0 +1,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;