3.PWM信号发生器设计
多功能信号发生器设计电路图

多功能信号发生器设计电路图(包括设计电路图和调试输出波形,及一切实验数据)
一、设计的电路图
1.正弦波发生电路设计图
对应仿真输出波形
频率为(1/4.256)KHz 幅值Vom=5.804V 2.三角波方波发生电路设计图
对应仿真输出波形
频率为(1/677.966)MHz 幅值Vom=10.452V 3.PWM波发生设计图
三角波信号输入
对应仿真输出波形
频率为(1/666.105)KHz 幅值Vom=10.477V 4.SPWM波发生电路设计
三角波信号
正弦信号输入
对应仿真输出波形
整个电路图
②
①
⑤
④
整体电路图中①端输出为方波信号
②端输出为三角波信号
③端输出为PWM波信号
④端输出为正弦波信号
⑤端输出为SPWM波信号
二. 对应测试输出波形
1.正弦波对应三组数据(1)幅值最小
(2)幅值稳定
(3)幅值失真前最大
正弦波测试数据表
2.三角波方波测试波形
三角波测试数据表
(1)调制电压为2.16V
(2)调制电压为-0.68V
(3)调制电压为-2.75V
PWM波测试数据
4.SPWM波测波形
(1)正弦调制电压为5.1V输出波形
(2)正弦调制电压为1.68输出波形
(3)正弦调制电压为7.2V输出波形
SPWM测试数据表
如要整个设计报告请联系zhang-hong-xu@。
《单片机课程设计-pwm波信号发生器的研制》

PWM信号发生器的研制前言脉冲宽度调制是现代控制技术常用的一种控制信息输出,可以有效地利用数字技术控制模拟信号的技术。
PWM(Pulse Width Modulation)又称脉冲宽度调制,属于脉冲调制的一种,即脉冲幅度调制(PAM)、脉冲相位调制(PPM)、脉冲宽度调制(PWM)和脉冲编码调制(PCM)。
它们本来是应用于电子信息系统和通信领域的一种信号变换技术,但从六十年代中期以来后,随着电力电子技术被引入到电力变换领域,PWM技术广泛运用于各种工业电力传动领域乃至家电产品中。
目前,随着微机技术日益广泛深入工业控制领域,单片机控制的PWM技术迅速发展,其突出特点是可以比较容易地选择最佳的脉冲调制频段,更重要的,由于与单片机的结合,整个系统可以集成为具有更完备的保护功能、故障诊断功能和显示功能的高可靠的微型化的系统。
因此,被竞相开发,前景广阔。
在智能化产品开发中, 许多常用的单片机没有提供脉宽调制(PWM ) 电压信号输出功能, 而在某些特定的场合需要得到PWM信号。
PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。
PWM控制技术一直是变频技术的核心技术之一,由于PWM可以同时实现变频变压反抑制谐波的特点,在交流传动及至其它能量变换系统中得到广泛应用。
目前实现方法为采用全数字化方案,完成优化的实时在线的PWM信号输出。
本文主要介绍了PWM信号发生器的概念、作用及定义,分析了系统的工作原理和软硬件的设计。
主要是以AT89C51单片机为核心控制单元,通过对外围电路芯片的设计实现PWM输出波形的频率、电压幅值、占空比的连续调节,达到产生PWM信号目的。
第一章系统组成与工作原理1.1 系统设计内容与要求一、设计内容:PWM信号发生器的研制二、设计要求:(1)采用定时/计数器8253(2) PWM信号的工作频率为500Hz(1000Hz)(3)占空比可变且显示占空比1.2 系统组成如图1.1所示为系统的设计结构框图。
PWM信号发生器的设计——毕业设计论文

PWM信号发生器的设计实验/上机报告一、实验目的1、掌握序列发生器和检测器的工作原理;2、初步学会用状态机进行数字系统设计。
二、实验环境Quartus II 7.0 开发系统三、实验内容用状态机设计实现串序列检测器设计,可以用原理图输入法设计序列信号发生器,要求产生序列:0111010011011010;再进行检测设计,若检测到序列:11010则输出为“1”,否则输出为“0”。
并对其进行仿真和硬件测试。
四、实验过程本实验可以分为两部分来设计。
第一步设计序列信号发生器,在这里可以采用模16的计数器74LS161来产生模16的计数,并由它的4位输出可以产生16种状态,由此可以用来设计序列产生器,也可以采用状态机产生序列,本实验用状态机产生序列。
第二步设计序列检测器,这里用状态机设计,如果为真输出1,为假输出为0;第三步设计串行转并行输出,将序列并行输出在LED管上显示。
第四步是设计一个计数脉冲,记录出现所需要的序列的次数。
第五步是将所有模块连接起来,构成一个完整的序列发生和检测设计器。
实验代码:1、序列发生器library ieee;use ieee.std_logic_1164.all;entity xulie_produce is—序列产生电路port(clk,reset:in std_logic;comb_outputs:out std_logic);--序列输出end xulie_produce;architecture behav of xulie_produce istype fsm_st is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15);--状态设计signal current_state,next_state:fsm_st;beginreg:process(reset,clk)—主控时序进程beginif reset ='1'then current_state<=s0;elsif clk='1'and clk'event thencurrent_state<=next_state;end if;end process;com:process(current_state)—主控组合进程begincase current_state iswhen s0 => comb_outputs<='0';next_state<=s1; when s1 => comb_outputs<='1';next_state<=s2; when s2 => comb_outputs<='1';next_state<=s3; when s3 => comb_outputs<='1';next_state<=s4; when s4 => comb_outputs<='0';next_state<=s5; when s5 => comb_outputs<='1';next_state<=s6; when s6 => comb_outputs<='0';next_state<=s7; when s7 => comb_outputs<='0';next_state<=s8; when s8 => comb_outputs<='1';next_state<=s9; when s9 => comb_outputs<='1';next_state<=s10; when s10 => comb_outputs<='0';next_state<=s11; when s11 => comb_outputs<='1';next_state<=s12; when s12 => comb_outputs<='1';next_state<=s13; when s13 => comb_outputs<='0';next_state<=s14; when s14 => comb_outputs<='1';next_state<=s15; when s15 => comb_outputs<='0';next_state<=s0; end case;end process;end behav;2、序列检测器library ieee;use ieee.std_logic_1164.all;entity s_machine is—序列检测电路port(clk,reset:in std_logic;state_inputs:in std_logic;--状态转移控制comb_outputs:out std_logic);检测结果输出end s_machine;architecture behav of s_machine istype fsm_st is (s0,s1,s2,s3,s4,s5);signal current_state,next_state:fsm_st;beginreg:process(reset,clk)主控时序进程beginif reset ='1'then current_state<=s0;elsif clk='1'and clk'event thencurrent_state<=next_state;end if;end process;com:process(current_state,state_inputs)—主控组合进程begincase current_state iswhen s0 => comb_outputs<='0';if state_inputs='1' then next_state<=s1;else next_state<=s0;end if;when s1 => comb_outputs<='0';if state_inputs='1' then next_state<=s2;else next_state<=s0;end if;when s2 => comb_outputs<='0';if state_inputs='0' then next_state<=s3;else next_state<=s2;end if;when s3 => comb_outputs<='0';if state_inputs='1' then next_state<=s4;else next_state<=s0;end if;when s4 => comb_outputs<='0';if state_inputs='0' then next_state<=s5;else next_state<=s2;end if;when s5 => comb_outputs<='1';--检测到11010输出1 if state_inputs='0' then next_state<=s0;else next_state<=s1;end if;end case;end process;end behav;3、串行输出变并行输出library ieee;use ieee.std_logic_1164.all;entity shift is –串行变并行电路port(clk,load,a:in std_logic;din :out std_logic_vector(7 downto 0));--并行输出end shift;architecture behav of shift isbeginprocess(clk,load,a)variable reg8 :std_logic_vector(7 downto 0);beginif clk'event and clk='1'thenif load='1'then reg8(7 downto 1):=reg8(6 downto 0);--load为1时开始装载reg8(0):=a;end if;end if;din<=reg8;end process;end behav;4、计数器设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY CNTM IS –计数电路PORT (CLK,RST,EN:IN STD_LOGIC;a,b,c:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END CNTM;ARCHITECTURE behav OF CNTM ISsignal a1,b1,c1:std_logic_vector(3 downto 0); BEGINPROCESS (CLK,RST,EN)VARIABLE N :INTEGER RANGE 0 TO 1000;BEGINIF RST ='1' THEN N:=0;ELSIF CLK 'EVENT AND CLK='1' THENIF EN = '1' THENIF N<100 THEN N:=N+1;--设计为100计数ELSE N:=0;END IF;END IF;END IF;a1<=conv_std_logic_vector((N/100),4);b1<=conv_std_logic_vector(((N/10)mod 10),4); c1<=conv_std_logic_vector((N mod 10),4);a<=a1;b<=b1;c<=c1;END PROCESS;实验步骤:1、建立工作库文件和编辑设计文件(1)在D盘新建一个文件夹用来保存工程文件(2)打开QuartusⅡ8.0软件,选择菜单File->New->VHDL File,点击OK后在打开的界面下输入已经设计好的程序。
实验三:PWM信号发生器

实验三:PWM信号发生器1.实验目的(1)学习Quartus II 8.0 软件的基本使用方法。
(2)学习GW48-CK EDA实验开发系统的基本使用方法。
(3)学习VHDL程序中数据对象,数据类型,顺序语句和并行语句的综合使用。
2.实验内容设计并调试好一个脉宽数控调制信号发生器,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的信号的高低电平脉宽可分别由两组8位预置数进行控制。
3.实验条件(1)开发软件:Quartus II 8.0。
(2)实验设备:GW48-CK EDA实验开发系统。
(3)拟用芯片:EPM7128S-PL84。
4.实验要求(1)画出系统原理框图,说明系统中各主要组成部分的功能。
(2)编写各个VHDL源程序。
(3)根据系统功能,选好测试用例,画出测试输入信号波形或编好测试文件。
(4)根据选用的EDA实验开发装置编好用于硬件验证的管脚锁定表格或文件。
(5)记录系统仿真、逻辑综合及硬件验证结果。
(6)记录实验过程中出现的问题及解决办法。
5.实验过程(1)PWM即脉冲宽度调制,就是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。
PWM从处理器到被控制系统信号都是数字式的,无需进行数/模转换。
让信号保持为数字形式可将噪声影响降到最小,因此广泛应用在测量、通信和功率控制与变换的许多领域中。
下图是一种PWM信号发生器的逻辑图,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高、低电平脉宽可分别由两组8位预置数进行控制。
如果将初始值可预置的加法计数器的溢出信号作为本计数器的初始预置值加载信号LD,则可构成计数器初始值自加载方式的加法计数器,从而构成数控分频器。
图中D 触发器的一个重要功能就是均匀输出信号的占空比,提高驱动能力,这对驱动,诸如扬声器或电动机十分重要。
(2)VHDL源程序①8位可自加载加法计数器的源程序LCNT8.VHD--LCNT8.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LCNT8 ISPORT(CLK,LD:IN STD_LOGIC;D:IN INTEGER RANGE 0 TO 255;CAO:OUT STD_LOGIC);END ENTITY LCNT8;ARCHITECTURE ART OF LCNT8 ISSIGNAL COUNT:INTEGER RANGE 0 TO 255;BEGINPROCESS(CLK)ISBEGINIF CLK'EVENT AND CLK='1'THENIF LD='1'THEN COUNT<=D;ELSE COUNT<=COUNT+1;END IF;END IF;END PROCESS;PROCESS(COUNT)ISBEGINIF COUNT=255 THEN CAO<='1';ELSE CAO<='0';END IF;END PROCESS;END ARCHITECTURE ART;②PWM信号发生器的源程序PWM.VHD--PWM.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PWM ISPORT(CLK:IN STD_LOGIC;A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);PWM:OUT STD_LOGIC);END ENTITY PWM;ARCHITECTURE ART OF PWM ISCOMPONENT LCNT8 ISPORT(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;BEGINU1: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)ISBEGINIF CAO1='1'THEN SPWM<='0';ELSIF CAO2'EVENT AND CAO2='1'THEN SPWM<='1';END IF;END PROCESS;LD1<=NOT SPWM;LD2<=SPWM;PWM<=SPWM;END ARCHITECTURE ART;(3)仿真结果验证PWM.VHD的时序仿真结果(4)逻辑综合结果6.实验总结经过本次实验,我学会了Quartus II 8.0 开发系统的基本操作,并对它有了一定的了解和认识。
直流脉宽(PWM)调速系统设计与研究——主电路设计课设报告

沈阳理工大学课程设计摘要调速系统是当今电力拖动自动控制系统中应用最广泛的一中系统。
目前对调速性能要求较高的各类生产机械大多采用直流传动,简称为直流调速。
早在20世纪40年代采用的是发电机-电动机系统,又称放大机控制的发电机-电动机组系统。
这种系统在40年代广泛应用,但是它的缺点是占地大,效率低,运行费用昂贵,维护不方便等,特别是至少要包含两台与被调速电机容量相同的电机。
为了克服这些缺点,50年代开始使用水银整流器作为可控变流装置。
这种系统缺点也很明显,主要是污染环境,危害人体健康。
50年代末晶闸管出现,晶闸管变流技术日益成熟,使直流调速系统更加完善。
晶闸管-电动机调速系统已经成为当今主要的直流调速系统,广泛应用于世界各国。
近几年,交流调速飞速发展,逐渐有赶超并代替直流调速的趋势。
直流调速理论基础是经典控制理论,而交流调速主要依靠现代控制理论。
不过最近研制成功的直流调速器,具有和交流变频器同等性能的高精度、高稳定性、高可靠性、高智能化特点。
同时直流电机的低速特性,大大优于交流鼠笼式异步电机,为直流调速系统展现了无限前景。
单闭环直流调速系统对于运行性能要求很高的机床还存在着很多不足,快速性还不够好。
而基于电流和转速的双闭环直流调速系统静动态特性都很理想。
关键字:调速系统直流调速器晶闸管晶闸管-电动机调速系统沈阳理工大学课程设计目录1 绪论 (1)1.1 背景 (1)1.2 直流调速系统的方案设计 (1)1.2.1 设计已知参数 (1)1.2.2 设计指标 (2)1.2.3 现行方案的讨论与比较 (2)1.2.4 选择PWM控制系统的理由 (2)1.2.5 选择IGBT的H桥型主电路的理由 (3)1.2.6 采用转速电流双闭环的理由 (3)2 直流脉宽调速系统主电路设计 (4)2.1 主电路结构设计 (4)2.1.1 PWM变换器介绍 (4)2.1.2 泵升电路 (7)2.2 参数设计 (7)2.2.1 IGBT管的参数 (7)2.2.2 缓冲电路参数 (8)2.2.3 泵升电路参数 (8)3 直流脉宽调速系统控制电路设计 (9)3.1 PWM信号发生器 (9)3.2 转速、电流双闭环设计 (9)3.2.1 电流调节器设计 (10)3.2.2 转速调节器设计 (13)4 系统调试 (17)4.1 系统结构框图 (17)4.2 系统单元调试 (17)4.2.1 基本调速 (17)4.2.2 转速反馈调节器、电流反馈调节器的整定 (18)4.3 实验结果 (18)4.3.1 开环机械特性测试 (18)4.3.2 闭环系统调试及闭环静特性测定 (19)5 总结 (20)参考文献 (21)附录A (22)A.1 晶闸管直流调速系统参数和环节特性的测定 (22)A.2 双闭环可逆直流脉宽调速系统性能测试 (26)沈阳理工大学课程设计1 绪论背景在现代科学技术革命过程中,电气自动化在20世纪的后四十年曾进行了两次重大的技术更新。
PWM信号发生器的设计

PWM信号发生器的设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BXFSQ ISPORT ( CLK,CLK1,KK : IN STD_LOGIC;DATA : IN STD_LOGIC_VECTOR(11 DOWNTO 0);DD : OUT INTEGER RANGE 255 DOWNTO 0 );END;ARCHITECTURE DACC OF BXFSQ ISSIGNAL Q : INTEGER RANGE 63 DOWNTO 0 ;SIGNAL D : INTEGER RANGE 255 DOWNTO 0 ;SIGNAL FSS : STD_LOGIC ;SIGNAL COUNT12,DATA2,DATA1 : STD_LOGIC_VECTOR(11 DOWNTO 0) ; BEGINPROCESS(FSS)BEGINIF (FSS'EVENT AND FSS = '1') THEN Q <= Q + 1;END IF;END PROCESS;PROCESS(Q)BEGINCASE Q ISWHEN 00=> D<=255; WHEN 01=> D<=254; WHEN 02=> D<=252; WHEN 03=> D<=249; WHEN 04=> D<=245; WHEN 05=> D<=239; WHEN 06=> D<=233; WHEN 07=> D<=225; WHEN 08=> D<=217; WHEN 09=> D<=207; WHEN 10=> D<=197; WHEN 11=> D<=186; WHEN 12=> D<=174; WHEN 13=> D<=162; WHEN 14=> D<=150; WHEN 15=> D<=137; WHEN 16=> D<=124; WHEN 17=> D<=112; WHEN 18=> D<= 99; WHEN 19=> D<= 87; WHEN 20=> D<= 75; WHEN 21=> D<= 64; WHEN 22=> D<= 53; WHEN 23=> D<= 43; WHEN 24=> D<= 34; WHEN 25=> D<= 26; WHEN 26=> D<= 19; WHEN 27=> D<= 13; WHEN 28=> D<= 8; WHEN 29=> D<= 4; WHEN 30=> D<= 1; WHEN 31=> D<= 0; WHEN 32=> D<= 0; WHEN 33=> D<= 1; WHEN 34=> D<= 4; WHEN 35=> D<= 8; WHEN 36=> D<= 13; WHEN 37=> D<= 19; WHEN 38=> D<= 26; WHEN 39=> D<= 34; WHEN 40=> D<= 43; WHEN 41=> D<= 53; WHEN 42=> D<= 64; WHEN 43=> D<= 75; WHEN 44=> D<= 87; WHEN 45=> D<= 99; WHEN 46=> D<=112; WHEN 47=> D<=124; WHEN 48=> D<=137; WHEN 49=> D<=150; WHEN 50=> D<=162; WHEN 51=> D<=174; WHEN 52=> D<=186; WHEN 53=> D<=197; WHEN 54=> D<=207; WHEN 55=> D<=217; WHEN 56=> D<=225; WHEN 57=> D<=233; WHEN 58=> D<=239; WHEN 59=> D<=245; WHEN 60=> D<=249; WHEN 61=> D<=252; WHEN 62=> D<=254; WHEN 63=> D<=255; WHEN OTHERS => NULL ;END CASE;END PROCESS;DD <= D ;PROCESS(CLK, DATA)BEGINIF CLK'EVENT AND CLK = '1' THENIF COUNT12 = "111111100000" THEN COUNT12 <= DATA1; FSS <= '1';ELSE COUNT12 <= COUNT12 + 1; FSS <= '0';END IF;END IF;END PROCESS;DATA1 <= DATA WHEN KK = '1' ELSEDATA2 WHEN KK = '0' ELSE DA TA2 ;PROCESS(CLK1)BEGINIF (CLK1'EVENT AND CLK1 = '1') THEN DA TA2 <= DATA2 + 1;END IF;END PROCESS;END;。
pwm信号发生器的设计

pwm 信号发生器的设计
脉冲宽度调制(Pulse Width ModulaTIon.PWM)控制技术以其控制简
单、灵活和动态响应好的优点而成为电力电子技术和模拟信号数字传输通信领域最广泛应用的控制方式,因此研究基于PWM 技术的脉冲宽度及周期可
调的信号发生器具有十分重要的现实意义。
这篇文章主要就是说明计数器计算时钟脉冲的上升沿个数,再通过输出电平反复翻转得到计数个数(脉冲宽度)可控的PWM 信号。
为了使本次设计产生的PWM 信号能用于频率稳定度高的晶振,故在系统设计中添加了一个分频模块,因此PWM 信号发生器由分频器和信号发
生器两个部分组成。
其组成框图如图2.1 所示
PWM 信号发生器的总体设计流程图如图2.2 所示。
pwm波发生器课程设计

pwm波发生器课程设计一、教学目标本课程旨在通过PWM波发生器的学习,让学生掌握PWM波的基本概念、产生原理及其应用。
在学习过程中,培养学生动手实验、观察分析、问题解决的能力。
同时,通过对PWM波的学习,使学生认识到其在现代电子技术中的重要性,培养学生的学习兴趣和责任感。
具体的教学目标如下:1.知识目标:(1)了解PWM波的定义、特点及其与模拟信号的关系。
(2)掌握PWM波的产生原理和基本电路。
(3)熟悉PWM波在各种领域的应用。
2.技能目标:(1)能够运用PWM波发生器进行实验,并观察分析实验现象。
(2)具备利用PWM波解决实际问题的能力。
(3)学会查阅相关资料,对PWM波技术进行深入研究。
3.情感态度价值观目标:(1)培养学生对电子技术的兴趣,激发学生探索未知的精神。
(2)培养学生团队合作、积极进取的学习态度。
(3)使学生认识到PWM波技术在现代社会的重要性,增强学生的社会责任感。
二、教学内容本课程的教学内容主要包括PWM波的基本概念、产生原理、应用及其相关实验。
具体安排如下:1.PWM波的基本概念:介绍PWM波的定义、特点及其与模拟信号的区别。
2.PWM波的产生原理:讲解PWM波的产生原理,包括基本电路、调制方式等。
3.PWM波的应用:介绍PWM波在电机控制、信号传输、能量转换等方面的应用。
4.相关实验:安排多个与PWM波相关的实验,让学生动手实践,加深对PWM波的理解。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括讲授法、实验法、讨论法等。
1.讲授法:通过讲解PWM波的基本概念、产生原理和应用,使学生掌握相关知识。
2.实验法:安排多个与PWM波相关的实验,让学生在动手实践中学会观察、分析和解决问题。
3.讨论法:学生进行小组讨论,分享学习心得,提高学生的合作能力和沟通能力。
四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一期可编程逻辑设计培训研讨 2013年1月 湖北武汉
4
华中科技大学 国家电工电子实验教学示范中心
PWM信号发生器实验
• *编写TestBench并在ModelSim中仿真
`timescale 1ns/1ps module testbench; reg clk; reg [7:0] data; wire pwm; initial begin clk = 1'b1; data = 8'd0; pwm_t = 1'b0; #100000 data = 8'd32; #100000 data = 8'd64; #100000 data = 8'd128; #100000 data = 8'd160; #100000 data = 8'd192; #100000 data = 8'd224; #100000 data = 8'd255; #100000 $stop(); end always begin #20 clk = ~clk; end pwm pwm_inst(.clk(clk), .data(data), .pwm(pwm)); endmodule
• 编写并添加按键驱动和显示占空比的逻辑 • 下载至EDA-CPLD板上,并用示波器观察
第一期可编程逻辑设计培训研讨 2013年1月 湖北武汉 5 华中科技大学 国家电工电子实验教学示范中心
实验过程(自编)
• 直接在ModelSim ALTERA STARTER EDITION 6.5b 中进行编写、访真即可。 新建三个文件,
module pwm( input clk, input [7:0] data, output pwm ); reg [7:0] cnt; always@(posedge clk) begin cnt <= cnt + 1’b1; end always@(posedge clk) begin pwm <= (data > cnt); end endmodule
Simulate1的名称要与testbench的顶层文件同名
• 编译成功后,双击SIMULATE1 ,打开VIEW里的 WAVE,将想观察的信号拖入波形区域,打开仿真即 可观察波形。注意调整RUN LENGTH 时间,一般为 几us.
第二个实验 加入两个输入按键
•
实验内容
– – – – –
•
设置PWM载波频率。 提高占空比的调节精度。 扩展一低通滤波器,滤除PWM的交流分量,留下直流分量测量其大小,并比较其直流 分量与占空比之间的关系。
2 华中科技大学 国家电工电子实验教学示范中心
第一期可编程逻辑设计培训研讨 2013年1月 湖北武汉
PWM信号发生器实验
• PWM原理
锯齿波 x 待调信号
t x 调制输出
t
待调信号 1/fs 载波
比较器
NPWM
第一期可编程逻辑设计培训研讨 2013年1月 湖北武汉
3
华中科技大学 国家电工电子实验教学示范中心
PWM信号发生器实验
• PWM信号发生器的Verilog描述
– PWM精度:256级(0~255) – PWM输出频率:97.65625KHz
PWM信号发生器设计
第一期可编程逻辑设计培训研讨 2013年1月 湖北武汉
1
华中科技大学 国家电工电子实验教学示范中心
PWM信号发生器实验
• 任务目的
– – 理解PWM信号产生的机制。 熟悉时序约束与时序分析方法。 使用VerilogHDL,设计产生一个载波为40kHz,占空比从1%~99%可调的PWM信号。 编写按键驱动的VerilogHDL代码,实现对占空比的任意值设置或者步进调节,调节精度 均为1%。 编写数码管驱动的VerilogHDL代码,实现对占空比的实时显示。 采用ModelSim,仿真验证逻辑功能。 下载编程文件至EDP-CLPD扩展板,并用示波器观察运行结果。 进一步熟悉ModelSim仿真环境及其使用方法。 按键处理需要考虑去抖。 记录测试结果并撰写实验报告。