summaryrefslogtreecommitdiff
path: root/2004/n/fpga
diff options
context:
space:
mode:
Diffstat (limited to '2004/n/fpga')
-rw-r--r--2004/n/fpga/src/packages/nono_const.vhd17
-rw-r--r--2004/n/fpga/src/packages/pwm_const.vhd46
2 files changed, 61 insertions, 2 deletions
diff --git a/2004/n/fpga/src/packages/nono_const.vhd b/2004/n/fpga/src/packages/nono_const.vhd
index 3bd2f00..30fc3d4 100644
--- a/2004/n/fpga/src/packages/nono_const.vhd
+++ b/2004/n/fpga/src/packages/nono_const.vhd
@@ -20,6 +20,12 @@ package nono_const is
-- Temps d'une période d'horloge sur la carte
--constant CK_PERIOD : time := 10 ns;
+ -- Taille de l'octet.
+ constant NB_BIT_OCTET : integer := 8;
+
+ -- Taille du double octet.
+ constant NB_BIT_DOUBLE_OCTET : integer := 16;
+
-- Taille d'une addresse sur la carte
-- RQ : 10 = nb suffisant
-- 12 = 3 digit en héxa
@@ -28,11 +34,18 @@ package nono_const is
-- Taille des données sur la carte
constant NB_BIT_DATA : integer := 8;
+ -- Définition d'un nouveau type : le double ctet (16 bits).
+ subtype T_OCTET is std_logic_vector ((NB_BIT_OCTET - 1) downto 0);
+
+ -- Définition d'un nouveau type : le double ctet (16 bits).
+ subtype T_DOUBLE_OCTET is std_logic_vector ((NB_BIT_DOUBLE_OCTET - 1)
+ downto 0);
+
+
-- Définition de nouveaux types : T_ADDRESS et T_DATA
- --subtype T_ADDRESS is unsigned ((NB_BIT_ADDRESS - 1) downto 0);
- --subtype T_DATA is unsigned ((NB_BIT_DATA - 1) downto 0);
subtype T_ADDRESS is std_logic_vector ((NB_BIT_ADDRESS - 1) downto 0);
subtype T_DATA is std_logic_vector ((NB_BIT_DATA - 1) downto 0);
+
-- Les différentes banques d'adresses (4 x 256)
-- Rq pour Pierre : ça va influer sur le bloc de gestion du bus
diff --git a/2004/n/fpga/src/packages/pwm_const.vhd b/2004/n/fpga/src/packages/pwm_const.vhd
new file mode 100644
index 0000000..2899f05
--- /dev/null
+++ b/2004/n/fpga/src/packages/pwm_const.vhd
@@ -0,0 +1,46 @@
+-- pwm_const.vhd
+-- Eurobot 2004 : APB Team
+-- Auteur : Fidèle GAFAN
+-- Fichier de déclaration de constantes de pwm.
+
+-- RQ : pour une indentation bien sous vim :
+-- 1 - ":set shiftwidth=4"
+-- 2 - se placer sous "package nono_const is"
+-- 3 - tapez : = puis shift+G
+
+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;
+
+-- Constantes relatives au module PWM.
+package pwm_const is
+
+ -- Fréquence de fonctionnement de la PWM : 40MHz.
+ -- Nb de période d'horloge à 40MHz pour avoir 1us : 40 : x"28".
+ constant PWM_NB_CYCLE_1US : T_OCTET := x"28";
+
+ -- Nb de période de l'horloge à 1us pour avoir 0,5ms : 500 : x"28".
+ constant PWM_VALUE_MIN : T_DOUBLE_OCTET := x"01F4";
+
+ -- Nb de périodes de l'horloge à 1us pour avoir 1,5ms : 1500 : x"28".
+ constant PWM_VALUE_MAX : T_DOUBLE_OCTET := x"05DC";
+
+ -- Nb de périodes de l'horloge à 1us pour avoir 20ms : 20000 : x"4E20".
+ constant PWM_NB_CYCLE_20MS : T_DOUBLE_OCTET := x"4E20";
+ --constant PWM_NB_CYCLE_20MS : T_DOUBLE_OCTET := x"4E20";
+
+ -- Nb de périodes de 1us à ajouter pour un incrément de 1 dans le
+ -- registre (incrément pour un interval). Le calcul est :
+ -- (PWM_VALUE_MAX - PWM_VALUE_MIN)) / (255 - 0)
+ constant PWM_INC_INT : T_OCTET := x"04";
+
+
+ -- Nb de période d'horloge pour avoir 20 ms.
+ --constant PWM_TCMAX : T_DOUBLE_OCTET := 20161;
+
+end pwm_const;
+
+