From 2cc572c158db009811d9de1d5174d9b7043f4217 Mon Sep 17 00:00:00 2001 From: galmes Date: Wed, 28 Apr 2004 18:51:19 +0000 Subject: pwm : Suppression de tb (non, pas Thomas Burg, les test_benchs ;) pwm : modifications des fichiers de pwm ! Dernier refit du code pour qu'il soit beau et simple et compréhensible... --- 2004/n/fpga/src/pwm/pwm_generator.vhd | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to '2004/n/fpga/src/pwm/pwm_generator.vhd') diff --git a/2004/n/fpga/src/pwm/pwm_generator.vhd b/2004/n/fpga/src/pwm/pwm_generator.vhd index 960a734..af73f00 100644 --- a/2004/n/fpga/src/pwm/pwm_generator.vhd +++ b/2004/n/fpga/src/pwm/pwm_generator.vhd @@ -1,22 +1,31 @@ --- pwm_generator.vhd --- Eurobot 2004 : APB Team --- Auteur : Fidèle GAFAN et Pierre-André Galmes --- Génèrateur de signal PWM à partir du nombre de cycles --- à l'état haut et du nombre de cycles de l'enveloppe . +------------------------------------------------------------------------------- +--pwm_generator.vhd +--Eurobot 2004 : APB Team +--Auteur : Fidèle GAFAN +--Registre à décalage affichantles signaux PWM -- -- Les commentaires ci-dessous ne sont plus trop valables. -- Maintenant, clock = 40MHz + +--REMARQUE(S):changer tccompt,q et valuecompt +-- si CLK#32MHz et/ou qu'on modifie les valeurs de référence de T1 +-- et T2 -- Tcmax = 20ms / 1us -- = 20161 cycles. --- Si DATACOMPT = 0, on veut que T2 vale 0,5ms donc on --- initialise Q à la -- valeur Q=0,5ms/1us=505. +-- Si DATACOMPT = 0, on veut que T2 vale 0,5ms donc on initialise Q à la +-- valeur Q=0,5ms/1us=505. + +-- Si DATACOMPT=255,on veut que T2 vale 1,5ms donc on initialise Q à la +-- valeur Q=1,5ms/1us=1515. --- Si DATACOMPT=255,on veut que T2 vale 1,5ms donc on --- initialise Q à la -- valeur Q=1,5ms/1us=1515. +-- Pour toute autre valeur de DATACOMPT comprise entre les deux +-- précédentes et différentes de ces dernières,on initialise Q avec +-- Q=(0,5ms/1us)+(DATACOMPT*min[((1,5ms-0,5ms)/1us)/(255-1)] +------------------------------------------------rtl de la sortie pwm en fonction de tc library ieee; use ieee.std_logic_1164.all; @@ -24,7 +33,7 @@ use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; use work.nono_const.all; -use work.pwm_const.all; +use work.pwm_const.all; --ENTITE entity pwm_generator is @@ -50,7 +59,7 @@ begin pwm_out <= '0'; elsif (clk'event and clk = '1') then compt <= compt + x"0001"; - if (compt <= reg) then + if (compt < reg) then pwm_out <= '1'; else pwm_out <= '0'; -- cgit v1.2.3