目录

银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-11-23 zgf 初次建立

实验十:PWM输出实验——不同方波信号的输出

一、 实验目的与意义

  1. 了解PWM信号含义。
  2. 掌握宏定义、参数变量的使用方法。
  3. 掌握HqFpga的使用方法。

二、 实验设备及平台

  1. iCore3L 双核心板。
  2. XiST USB Cable(或相同功能)仿真器。
  3. Micro USB线缆。
  4. 装有HqFpga软件开发平台的电脑一台。

三、 实验原理

图10-1 50%占空比PWM信号时序示意图

图10-2 70%占空比PWM信号时序示意图

四、 代码讲解

	//输出占空比为50%\20%、频率为500KHz的波形
	reg [7:0]cycle_cnt;
	reg pwm20_sig_r;
	reg pwm50_sig_r;
 
	always@(posedge fpga_clk or negedge rst_n)
		begin
			if(!rst_n)
				begin
					cycle_cnt <= 8'd0;
					pwm20_sig_r <= 1'd0;
					pwm50_sig_r <= 1'd0;
				end
			else
				begin
					if(cycle_cnt==cycle-1'd1)//计数器清零,同步两个信号相位
						begin
							cycle_cnt <= 8'd0;
							pwm20_sig_r <= 1'd1;
							pwm50_sig_r <= 1'd1;
						end
					else if(cycle_cnt==puty_50-1'd1)	//变换占空比为50%的波形
						begin
							pwm50_sig_r <= 1'd0;
							cycle_cnt <= cycle_cnt + 8'd1;
						end
					else if(cycle_cnt==puty_20-1'd1)	//变换占空比为20%的波形
						begin
							pwm20_sig_r <= 1'd0;
							cycle_cnt <= cycle_cnt + 8'd1;
						end
					else					//计数器自加
						begin
							cycle_cnt <= cycle_cnt + 8'd1;
						end
				end
		end
 
		assign pwm20_sig = pwm20_sig_r;
	assign pwm50_sig = pwm50_sig_r;

五、 实验步骤及实验结果

1、 新建工程,器件选择SL2S-25E-8U213C,在源文件一栏点击“+”号,将例程下的3个.V文件添加到工程中;分别是包含顶层模块的pwm.v文件、包含输出信号生成模块的pwm_ctrl.v文件和包含复位信号产生模块的rst_n.v文件。 图 10-3 新建工程,选择器件参数及添加源文件

2、 点击左侧边栏的“设计管理”按钮,弹出界面中选择顶层模块,点击“语法检查”,看工程代码有无报错。

3、 语法检查通过后点击主界面的“全部运行”按钮进行编译,生成bit文件。

4、 将下载器连接到iCore3L 双核心板。

5、 给iCore3L供电,将编译生成的bit文件下载到FPGA中。

6、 点击主页面的调试模式,通过调试模式查看产生信号的波形变化。 图 10-4 进入调试模式查看波形分析

7、 调试模式得到波形如下,通过分析,产生信号符合设计的预期。 图 10-5 输出信号的波形图展示

六、 拓展实验

1、 改变cycle和puty参数,观察信号变化。