名称:基于PWM的电火花加工试验VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
电火花加工实验内容如下:
1.编写电火花加工试验程序,实现单路脉冲输出。
3.拨码开关前四位调整频率后四位调整占空比。
4.要求可输出频率100、200、300、400、500、600、700、800、900、1000、1500、2000、2500、3000、3500、4000Hz。
5.在不同频率下占空比可调节为0%、10%、20%、30%、40%、50%、60%、70%、80%、90%、100%
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
占空比可以自行修改,本次仿真使用40%
16个频率值如下:
占空比调节
数码管
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; ENTITY?PWM?IS ???PORT?( ??????clk??????:?IN?STD_LOGIC; ??????SW_freq??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--频率控制 ??????SW_duty??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--占空比控制 ??????PWM_out??????:?OUT?STD_LOGIC;--PWM输出 ??????bit_select?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--数码管位选 ??????seg_select?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--数码管段选 ???); END?PWM; ARCHITECTURE?behaveral?OF?PWM?IS --PWM产生模块 component?PWM_ctrl?IS ???PORT?( ??????clk??????:?IN?STD_LOGIC; ??????SW_freq??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--频率控制 ??????SW_duty??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--占空比控制 ??????PWM_out??????:?OUT?STD_LOGIC--PWM输出 ???); END?component; --显示模块 component?display?IS ???PORT?( ??????clk????????????:?IN?STD_LOGIC; ??????SW_freq??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--频率控制 ??????SW_duty??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--占空比控制 ??????bit_select?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--数码管位选 ??????seg_select?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--数码管段选 ???); END?component; BEGIN --PWM产生模块 U_PWM_ctrl:?PWM_ctrl ???PORT?MAP( ??????clk=>clk, ??????SW_freq=>SW_freq,--频率控制 ??????SW_duty=>SW_duty,--占空比控制 ??????PWM_out=>PWM_out--PWM输出 ???); --显示模块 U_display:?display ???PORT?MAP( ??????clk=>clk, ??????SW_freq=>SW_freq,--频率控制 ??????SW_duty=>SW_duty,--占空比控制 ??????bit_select=>bit_select,--数码管位选 ??????seg_select=>seg_select--数码管段选 ???); END?behaveral;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=644
阅读全文