From 93581ac081cd839fc23b61dcc8ea5ddffd8ab072 Mon Sep 17 00:00:00 2001 From: galmes Date: Sun, 18 Apr 2004 16:20:46 +0000 Subject: packages : ajout de constantes dans nono_const (T_OCTET, T_DOUBLE_OCTET...). ajout d'un nouveau package = pwm_const. --- 2004/n/fpga/src/packages/nono_const.vhd | 17 ++++++++++-- 2004/n/fpga/src/packages/pwm_const.vhd | 46 +++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 2004/n/fpga/src/packages/pwm_const.vhd (limited to '2004/n') 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; + + -- cgit v1.2.3