From 3301c331bb5e1d27cfab47a7e856ba56781cca99 Mon Sep 17 00:00:00 2001 From: galmes Date: Tue, 6 Apr 2004 08:32:23 +0000 Subject: GPIO : code => mise en forme du code pour l'inclure dans la doc. --- 2004/n/fpga/src/gpio/gpio.vhd | 31 +++++++++++++++---------------- 2004/n/fpga/src/gpio/gpio_direction.vhd | 2 +- 2004/n/fpga/src/three-state/tristate.vhd | 2 +- 3 files changed, 17 insertions(+), 18 deletions(-) (limited to '2004/n/fpga/src') diff --git a/2004/n/fpga/src/gpio/gpio.vhd b/2004/n/fpga/src/gpio/gpio.vhd index 32a9227..796b7ec 100644 --- a/2004/n/fpga/src/gpio/gpio.vhd +++ b/2004/n/fpga/src/gpio/gpio.vhd @@ -20,7 +20,7 @@ entity gpio is rst : in std_logic; clk_b : in std_logic; -- clock de bus clk_m : in std_logic; -- master clock - rw : in std_logic; -- read (0) / write (1) TODO ?? + rw : in std_logic; -- read (1) / write (0) interrupt : out std_logic; bus_data : inout T_DATA; io_output : inout T_DATA; @@ -37,8 +37,6 @@ architecture RTL of gpio is -- Définition des composants utilisés. --- TODO : CONtinuer à partir d'ICICICICCICIC - -- Registre. component reg_rw is port ( @@ -51,7 +49,7 @@ component reg_rw is ); end component; --- ET bit à bit à sortie three state. +-- ET bit à bit à sortie three state. component gpio_direction is port ( direction_mask : in T_DATA; @@ -93,20 +91,19 @@ end component; -- définition des signaux. -- clk, rst... sont définis dans l'entity du GPIO. --- signal bus_direction_mask : T_DATA; signal bus_it_up_mask : T_DATA; signal bus_it_down_mask : T_DATA; signal bus_reg_data : T_DATA; signal rst_it : std_logic; -signal it_up : std_logic; -signal it_down : std_logic; +signal it_up : std_logic; +signal it_down : std_logic; begin -- Mapping des composants. --- +-- Masque de direction. Reg_direction_mask : reg_rw port map ( clk_b, @@ -117,7 +114,7 @@ port map ( bus_direction_mask ); --- +-- Registre de données Reg_data : reg_rw port map ( clk_b, @@ -128,7 +125,7 @@ port map ( bus_reg_data ); --- +-- Masque d'interruption (front montant). Reg_it_up_mask : reg_rw port map ( clk_b, @@ -139,7 +136,7 @@ port map ( bus_it_up_mask ); --- +-- Masque d'interruption (front descendant). Reg_it_down_mask : reg_rw port map ( clk_b, @@ -150,7 +147,7 @@ port map ( bus_it_down_mask ); --- +-- Lecture de l'état de la sortie. read_output : tristate port map ( cs_read_output, @@ -158,7 +155,7 @@ port map ( bus_data ); --- +-- Gestionnaire de direction. gest_direction : gpio_direction port map ( bus_direction_mask, @@ -169,7 +166,7 @@ port map ( -- signal intermédiaire. rst_it <= rst or cs_read_output; --- +-- Gestionnaire de d'interruption haut. it_up_detector : gpio_it_detect_up port map ( clk_m, @@ -179,6 +176,7 @@ port map ( it_up ); +-- Gestionnaire de d'interruption bas. it_down_detector : gpio_it_detect_down port map ( clk_m, @@ -187,7 +185,8 @@ port map ( bus_it_down_mask, it_down ); - -interrupt <= it_up or it_down; + +-- "Fusion" des deux signaux d'interruption. +interrupt <= it_up or it_down; end RTL; diff --git a/2004/n/fpga/src/gpio/gpio_direction.vhd b/2004/n/fpga/src/gpio/gpio_direction.vhd index 1daf3e2..ce07ed0 100644 --- a/2004/n/fpga/src/gpio/gpio_direction.vhd +++ b/2004/n/fpga/src/gpio/gpio_direction.vhd @@ -1,7 +1,7 @@ -- gpio_direction.vhd -- Eurobot 2004 : APB Team -- Auteur : Pierre-André Galmes --- Registre dont la valeur est accessible en lecture. +-- ET bit à bit à sortie three state (8 entrées / sorties). -- Principe : -- Bloc trois états (three-state) qui met les sorties en hautes impédance si diff --git a/2004/n/fpga/src/three-state/tristate.vhd b/2004/n/fpga/src/three-state/tristate.vhd index 07e440e..a438dde 100644 --- a/2004/n/fpga/src/three-state/tristate.vhd +++ b/2004/n/fpga/src/three-state/tristate.vhd @@ -1,7 +1,7 @@ -- tristate.vhd -- Eurobot 2004 : APB Team -- Auteur : Pierre-André Galmes --- Registre dont la valeur est accessible en lecture. +-- Composant three-state (trois états : 0, 1 ou Z). -- Principe : -- Bloc trois états (three-state) qui met les sorties en hautes impédance si -- cgit v1.2.3