Le signal MLI ( Modulation de Largeur d’Impulsion ) ou PWM ( Pulse Width Modulation ) présent sur la broche pin_PWM
résulte de la comparaison entre la valeur de comptage Period d’un compteur et le contenu d’un registre Duty.
Le compteur revient à zéro périodiquement, et réinitialise alors l’état logique de pin_PWM.
Dans le contexte d’un système à processeurs, le dialogue entre le processeur et le périphérique PWM se fait par l’intermédiaire de
registres via les bus d’adresse et de donnée ( cf les-peripheriques )
Le registre de contrôle permet d’authoriser le comptage, ou de réaliser une remise à zéro du compteur.
libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.numeric_std.all;entitycompteurisport(clk,raz,ce:instd_logic;count:outstd_logic_vector(7downto0));endcompteur;architecturearch_compteurofcompteurissignalcount_int:unsigned(7downto0);beginprocess(clk)beginifrising_edge(clk)thenifraz='1'thencount_int<=(others=>'0');elsifce='1'thenifcount_int="11111111"thencount_int<=(others=>'0');-- fin de comptageelsecount_int<=count_int+1;-- "+"(unsigned,int)endif;endif;endif;endprocess;count<=std_logic_vector(count_int);-- count copie de count_intendarch_compteur;
Une fois que tous les composants constitutifs du systèmes sont décrits, il ne reste plus qu’à les relier entre via des signaux pour réaliser le périphérique.
!!! TRES IMPORTANT : Lors de l’instanciation, il faut respecter l’ordre des entrées sorties de chaque composant tel qu’il a été décrit précédemment.