名称: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
阅读全文
392