summaryrefslogtreecommitdiff
path: root/2004/n/fpga/src/portserie/registre.vhd
diff options
context:
space:
mode:
Diffstat (limited to '2004/n/fpga/src/portserie/registre.vhd')
-rw-r--r--2004/n/fpga/src/portserie/registre.vhd105
1 files changed, 0 insertions, 105 deletions
diff --git a/2004/n/fpga/src/portserie/registre.vhd b/2004/n/fpga/src/portserie/registre.vhd
deleted file mode 100644
index 23a0079..0000000
--- a/2004/n/fpga/src/portserie/registre.vhd
+++ /dev/null
@@ -1,105 +0,0 @@
--- txserie.vhd
--- Eurobot 2004 : APB Team
--- Auteur : Pierre Prot
--- registre IO adressable sur bus ISA
-
--- MARCHE
-
--- -------------------------------------------
--- Registre générique à brancher sur un bus
--- -------------------------------------------
---
--- * on peut écrire ou lire dans le registre depuis le bus :
--- . Positionner l'adresse
--- . Mettre 'rw' à 1=>read 0=>write
--- . Front montant sur 'ck'
--- Remarque : on ne peut pas écrire via le bus si 'load' est activé
--- * on peut lire la valeur en permanence sur 'output'
--- * on peut écrire dans le registre en permanence grâce à 'load'. Cette
--- action est prioritaire sur l'écriture via le bus
--- . Mettre 'load' à 1
--- . Ecrire dans 'input' (actualisation immédiate)
--- . Mettre 'load' à 0 pour latcher
-
-
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.std_logic_arith.all;
-use ieee.std_logic_unsigned.all;
-
-use work.nono_const.all;
-
-entity regIO is
- generic(adr : unsigned);
- port(
- bus_data: inout unsigned ((NB_BIT_DATA - 1) downto 0);
- bus_address: in unsigned ((NB_BIT_ADDRESS - 1) downto 0);
- input: in unsigned(7 downto 0);
- output: out unsigned(7 downto 0);
- rw: in std_logic;
- load: in std_logic;
- ck: in std_logic;
- rst: in std_logic
- );
-end entity;
-
-
-architecture rtl of regIO is
-signal REG : unsigned((NB_BIT_DATA - 1) downto 0):=(others => '1');
-
-begin
- p_w:process(ck,load,input,rst)
- begin
- if(ck='1') then
- if(bus_address=adr) then
- if(rw='0') then
- if(load='0') then
- REG<=bus_data;
- end if;
- else -- RW=1 : la CM lit => on écrit sur le bus
- bus_data<=REG;
- end if;
- else
- bus_data<=(others => 'Z');
- end if;
- else
- bus_data<=(others => 'Z');
- end if;
-
--- chargement : prioritaire sur l'écriture via le bus
- if(load='1') then
- REG<=input;
- end if;
-
--- reset : prioritaire sur tout
- if(rst'event and rst='1') then
- REG<=(others => '0');
- bus_data<=(others => 'Z');
- end if;
-
- end process p_w;
-
--- p_load : process(load,input)
--- begin
--- if(load='1') then
--- REG<=input;
--- end if;
--- end process p_load;
-
--- p_reset : process(rst)
--- begin
--- if(rst'event and rst='1') then
--- REG<=(others => '0');
--- bus_data<=(others => 'Z');
--- end if;
--- end process p_reset;
-
- output<=REG;
-end rtl;
-
-
-
-
-
-
-