可控脉冲发生器(PWM)VHDL代码Quartus仿真

名称:可控脉冲发生器(PWM)VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

可控脉冲发生器(PWM)

选用语言:VHDL

输入时钟50MHZ

将50MHZ的时钟分频为1HZ和2HZ,将分频后的

时钟信号(1HZ和2HZ)当做可控脉冲的信号输入

其中要求

1.由拨动开关控制所选的输入信号(低电平时1HZ,高电平时2HZ)

2.由四个拨动开关控制pwm信号的脉宽调制(实现0~15种模式共16种波形的输出),预留标准输出口


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真图


部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--可控脉冲发生器
ENTITY pwm IS
   PORT (
      clk       : IN STD_LOGIC;--时钟50M
      sel_sw    : IN STD_LOGIC;--选择1Hz还是2Hz
      mode_key  : IN STD_LOGIC_VECTOR(3 DOWNTO 0);--输出模式控制
      pwm_out   : OUT STD_LOGIC--输出PWM波形
   );
END pwm;
ARCHITECTURE behave OF pwm IS
   SIGNAL clk_2Hz : STD_LOGIC;
   SIGNAL clk_1Hz : STD_LOGIC;
   SIGNAL div_cnt : integer := 0;   
   SIGNAL sel_clk : STD_LOGIC;
   SIGNAL pwm_cnt : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000";
BEGIN
--50MHz分频产生2Hz
   PROCESS (clk)
   BEGIN
      IF (clk'EVENT AND clk = '1') THEN
         IF (div_cnt = 12) THEN--需要计数12500000再控制clk_2Hz翻转(仿真将12500000改为12节约仿真时间)
            div_cnt <= 0;
            clk_2Hz <= NOT(clk_2Hz);--翻转
         ELSE
            div_cnt <= div_cnt + 1;--计数
         END IF;
      END IF;
   END PROCESS;
   
   --将2Hz分频为1Hz
   PROCESS (clk_2Hz)
   BEGIN
      IF (clk_2Hz'EVENT AND clk_2Hz = '1') THEN
         clk_1Hz <= NOT(clk_1Hz);--翻转
      END IF;
   END PROCESS;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 可控脉冲发生器(PWM)VHDL代码Quartus仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员