~\Bureau\pwm2.vhd.html
library ieee; use ieee.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity pwm is port ( clk: in std_logic; SW : in std_logic_vector (3 downto 0); --rapport cyclique (de 0 à 10) reset : in std_logic; GPIO_0 : out std_logic_vector(35 downto 0)); -- sortie end pwm; architecture behavior of pwm is signal cnt : std_logic_vector(3 downto 0) := "0000"; signal s : std_logic; begin process (clk,rst) begin if reset ='1' then s<=(others=>'0'); elsif (clk'event and clk='1') then if (cnt < SW) then s <='1'; --met la sortie à 1 jusqu'a else s <='0'; --la valeur du rapport cyclique end if; if (cnt >= "1001") then cnt<="0000"; --remet à 0 quand on a else cnt <= cnt + 1; -- compté jusqu'a 10 end if; end if; end process; GPIO_0(29) <= s; end behavior;
Simulation ModelSim
Aucun commentaire:
Enregistrer un commentaire