summaryrefslogtreecommitdiff
path: root/2004/n/fpga/src/packages/pwm_const.vhd
blob: 1927cb7c3dc0d92c862d2bf4f1aabed923c7cb6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
-- 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

    -- Nb de p�riode de l'horloge � 1us pour avoir 1ms : 1000 : x"03E8".
    constant PWM_VALUE_MIN : T_DOUBLE_OCTET := x"03E8"; -- 40M + 100M + led
    --constant PWM_VALUE_MIN : T_DOUBLE_OCTET := x"0000"; -- ise

    -- Nb de p�riodes de l'horloge � 1us pour avoir 2ms : 2000 : x"07D0".
    -- rq : cette constante n'est pas utilis�e !
    constant PWM_VALUE_MAX : T_DOUBLE_OCTET := x"07D0"; -- 40M et 100M
    --constant PWM_VALUE_MAX : T_DOUBLE_OCTET := x"0005"; -- ise
    -- led : mettre 18000

    -- Nb de p�riodes de l'horloge � 1us pour avoir 20ms : 20000 : x"4E20".
    --constant PWM_NB_CYCLE_20MS : T_DOUBLE_OCTET := x"0005"; -- ise
    constant PWM_NB_CYCLE_20MS : T_DOUBLE_OCTET := x"4E20"; --40M et 100M + led

    -- 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) = 4
    --constant PWM_INC_INT : T_OCTET := x"04"; -- 40M et 100M
    --constant PWM_INC_INT : T_OCTET := x"01"; --ise
    constant PWM_INC_INT : T_OCTET := x"46"; -- led = 70
    
end pwm_const;