summaryrefslogtreecommitdiff
path: root/2004/n/fpga/src
diff options
context:
space:
mode:
authorgalmes2004-02-28 19:24:39 +0000
committergalmes2004-02-28 19:24:39 +0000
commitebe2b388763be16621a8277948fbbd380a5de573 (patch)
tree198d9a16ec89c39d4efc45c2b4a802e1233dee1f /2004/n/fpga/src
parent89d5a4bb3a5ceec0d9d791cba718fec178001a49 (diff)
Test complet du bloc d'io.
Diffstat (limited to '2004/n/fpga/src')
-rw-r--r--2004/n/fpga/src/gpio/bch_gpio.vhd32
1 files changed, 10 insertions, 22 deletions
diff --git a/2004/n/fpga/src/gpio/bch_gpio.vhd b/2004/n/fpga/src/gpio/bch_gpio.vhd
index 4cf5682..9f0e47a 100644
--- a/2004/n/fpga/src/gpio/bch_gpio.vhd
+++ b/2004/n/fpga/src/gpio/bch_gpio.vhd
@@ -3,7 +3,7 @@
-- Auteur : Pierre-André Galmes
-- Banc de test.
--- RQ : Observer 300ns
+-- RQ : Observer 240ns
library ieee;
use ieee.std_logic_1164.all;
@@ -107,12 +107,12 @@ begin
-- Ecriture dans les trois registres.
wait for (3*CK_PERIOD);
- do_write (A_IO1_REG_DIRECTION, x"07"); -- 3 bits poid faible : in.
+ do_write (A_IO1_REG_DIRECTION, "00000111"); -- 3 bits poid faible : in.
wait for (3*CK_PERIOD);
do_write (A_IO1_REG_DATA, x"01");
- wait for (3*CK_PERIOD);
-- interruption sur les 5 bits de poid faible.
- do_write (A_IO1_REG_INTERRUPT_MASK, x"07");
+ wait for (3*CK_PERIOD);
+ do_write (A_IO1_REG_INTERRUPT_MASK, "11111000");
-- Lecture dans les trois registres.
wait for (3*CK_PERIOD);
@@ -122,32 +122,20 @@ begin
wait for (3*CK_PERIOD);
do_read (A_IO1_REG_DATA);
- -- Avant de lire sur io_output, mettre output en Z.
- wait for (3*CK_PERIOD);
- io_output <= "00001ZZZ";
- wait for (3*CK_PERIOD);
- io_output <= "ZZZZZZZZ";
-- Lecture de la donnée sur io_output.
wait for (3*CK_PERIOD);
do_read (A_IO1_READ_OUTPUT);
-
- -- Test du signal d'interruption.
- wait for (3*CK_PERIOD);
- do_write (A_IO1_REG_DATA, x"02");
- wait for (3*CK_PERIOD);
- do_write (A_IO1_REG_DATA, x"01");
-
end process;
rst <= '1','0' after (CK_PERIOD/5);
clk_m <= not clk_m after (CK_PERIOD/2);
-
- --bus_address <= A_IO1_REG_INTERRUPT_MASK,
- -- A_IO1_READ_OUTPUT after 3*CK_PERIOD,
- -- A_IO1_REG_DIRECTION after 5*CK_PERIOD,
- -- A_IO1_REG_DATA after 7*CK_PERIOD;
-
+
+ -- Affecter des entrées sur la sortie : test des interruptions
+ io_output <= "00001ZZZ",
+ "00010ZZZ" after 5*CK_PERIOD,
+ "00001ZZZ" after 10*CK_PERIOD,
+ "00010ZZZ" after 15*CK_PERIOD;
end sim1;