欢迎访问九江学院电子信息工程学院网站!

当前位置: 首页   >   资源下载   >   学习资料   >   正文

FPGA学习--PWM产生

作者:    信息来源:    发布时间: 2014-04-20

LIBRARY IEEE;                     
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_Arith.ALL;
USE IEEE.STD_LOGIC_Unsigned.ALL;

ENTITY pwm_logic IS
PORT(
clock:  IN STD_LOGIC; --系统输入时钟
duty_cycle: IN  STD_LOGIC_VECTOR(3 DOWNTO 0);
pwm_en:  IN  STD_LOGIC; --PWM使能.
pwm_out: OUT STD_LOGIC --PWM输出
);
END;

ARCHITECTURE one OF pwm_logic  IS
SIGNAL pwm_out_io: STD_LOGIC;   --PWM输出
SIGNAL count:  STD_LOGIC_VECTOR(15 DOWNTO 0);--PWM内部计数器
BEGIN
pwm_out<=pwm_out_io;

PROCESS(clock)
BEGIN
 IF RISING_EDGE(clock) THEN
  IF pwm_en ='1' THEN
   count<=count+1;
  END IF;
 END IF;
END PROCESS;

PROCESS(clock)
BEGIN
 IF RISING_EDGE(clock) THEN
  IF pwm_en ='1' AND count(15 DOWNTO 12)<=duty_cycle THEN
   pwm_out_io<='1';
  ELSE
   pwm_out_io<='0';
  END IF;
 END IF;
END PROCESS;


END ;

 

 Copyright© 2020 九江学院电子信息工程学院版权所有

联系电话:0792-8314446