湖南工业大学PWM信号发生器的FPGA设计实验报告.doc
文本预览下载声明
EDA技术与应用实验报告
学院:电气与信息工程学院
班级:
指导老师:谭会生老师
姓名:
学号:
实验三:PWM信号发生器的设计
一.实验目的
(1)熟悉artus II软件的基本使用方法。
(2)熟悉和掌握GW48-CK或其他EDA实验开发系统的使用。
(3)学习VHDL程序中数据对象、数据类型、顺序语句和并行语句的综合使用。
二.实验条件与要求
(1)开发软件:Quartus II 9.0
(2)实验设备:PC、GW48-CK EDA实验开发系统。
(3)画出系统的原理框图,说明系统中各个主要功能、编写各个VHDL源程序。画出输入信号波形并调试和仿真。
三.实验内容
设计并调试好一个脉冲宽调控信号发生器,此信号发生器由两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高/低电平脉宽可分别由两组8位预置数进行控制。用GW48-CK实验开发系统进行硬件验证。
四.实验设计
(1)系统原理框图
下图是一种PWM信号发生器的逻辑图,此信号发生器是由两个完全相同的可自加载加法器LCNT8组成的,它的输出信号的高、低电平脉宽可分别由两组8位预置数进行控制。
如果将初始值可预知的加法器的溢出信号作为本计数器的初始值预置加载信号LD,则可构成计数初始值自加载方式的加法器,从而构成数控分频器。图6.13中,D触发器的一个重要的功能就是均匀输出信号的占空比,提高驱动能力,这对驱动,诸如扬声器或者电动机是非重要。
图6.13 脉宽数控调制PWM信号发生器逻辑图
(2)VHDL源程序
1、8位可自加载加法计数器的源程序LCNT8.VHD如下
--LCNT8.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY LCNT8 IS
PORT(CLK,LD:IN STD_LOGIC;
D:IN INTEGER RANGE 0 TO 255;
CAO:OUT STD_LOGIC);
END ENTITY LCNT8;
ARCHITECTURE ART OF LCNT8 IS
SIGNAL COUNT:INTEGER RANGE 0 TO 255;
BEGIN
PROCESS(CLK) IS
BEGIN
IF CLKEVENT AND CLK=1THEN
IF LD=1THEN COUNT=D;
ELSE COUNT=COUNT+1;
END IF;
END IF;
END PROCESS;
PROCESS(COUNT) IS
BEGIN
IF CLKEVENT AND CLK=1THEN
IF COUNT=255 THEN CAO=1;
ELSE CAO=0;
END IF;
END IF;
END PROCESS;
END ARCHITECTURE ART;
2、PWM信号发生器的源程序PWM.VHD如下
--PWM.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY PWM IS
PORT(CLK:IN STD_LOGIC;
A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
PWM:OUT STD_LOGIC);
END ENTITY PWM;
ARCHITECTURE ART OF PWM IS
COMPONENT LCNT8 IS
PORT(CLK,LD:IN STD_LOGIC;
D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CAO:OUT STD_LOGIC);
END COMPONENT LCNT8;
SIGNAL CAO1,CAO2:STD_LOGIC;
SIGNAL LD1,LD2:STD_LOGIC;
SIGNAL SPWM:STD_LOGIC;
BEGIN
U1:LCNT8 PORT MAP(CLK=CLK,LD=LD1,D=A,CAO=CAO1);
U2:LCNT8 PORT MAP(CLK=CLK,LD=LD2,D=B,CAO=CAO2);
PROCESS(CAO1,CAO2) IS
BEGIN
IF CAO1=1THEN SPWM=0;
ELSIF CAO2EVENT AND CAO2=1THEN SPWM=1;
END IF;
END PROCESS;
LD1=NOT SPWM;LD2=SPWM;PWM=SPWM;
END ARCHITECTURE ART;
(3).完成设计文件输入后,保存文件,对文件进行编译和仿真。
5.实验结果
(1).调试后仿真,PWM仿真结果如图所示
.逻
显示全部