名称:PWM波生成器设计VHDL代码ISE仿真
软件:ISE
语言:VHDL
代码功能:
PWM波生成器
1、可以控制PWM波的高电平时间参数
2、可以以10KHz频率更新参数
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. Testbench
5. 仿真图
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY tb_pwm_ctrl IS END tb_pwm_ctrl; ARCHITECTURE behaveral OF tb_pwm_ctrl IS COMPONENT pwm_ctrl IS PORT ( clk_50m : IN STD_LOGIC; rstn : IN STD_LOGIC; ctrl_da : IN STD_LOGIC_VECTOR(6 DOWNTO 0); update_10k : IN STD_LOGIC; pwm_out : OUT STD_LOGIC ); END COMPONENT; SIGNAL clk_50m : STD_LOGIC; SIGNAL rstn : STD_LOGIC; SIGNAL ctrl_da : STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL update_10k : STD_LOGIC; SIGNAL pwm_out : STD_LOGIC; BEGIN uut : pwm_ctrl PORT MAP ( clk_50m => clk_50m, rstn => rstn, ctrl_da => ctrl_da, update_10k => update_10k, pwm_out => pwm_out ); PROCESS BEGIN rstn <= '0';--复位 ctrl_da <= "0000000"; update_10k <= '0'; WAIT FOR 100 ns; rstn <= '1'; WAIT FOR 500 ns; ctrl_da <= "0110010";--50 update_10k <= '1';-- WAIT FOR 20 ns; update_10k <= '0'; WAIT FOR 300000 ns; ctrl_da <= "0100100";--36 update_10k <= '1'; WAIT FOR 20 ns; update_10k <= '0'; WAIT FOR 300000 ns; ctrl_da <= "1000100";--68 update_10k <= '1'; WAIT FOR 20 ns; update_10k <= '0'; WAIT FOR 300000 ns; ctrl_da <= "0011001";--25 update_10k <= '1'; WAIT FOR 20 ns; update_10k <= '0'; WAIT FOR 300000 ns; ctrl_da <= "1010000";--80 update_10k <= '1'; WAIT FOR 20 ns; update_10k <= '0'; WAIT; END PROCESS;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1149
阅读全文
536