可控脉冲发生器(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
演示视频:
设计文档:
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仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 可控脉冲发生器(PWM)VHDL代码Quartus仿真