• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

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

07/17 08:27
208
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240131135454295.doc

共1个文件

名称:可控脉冲发生器(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

演示视频:

设计文档:

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;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=647

  • 2-240131135454295.doc
    下载

相关推荐