湖南工业大学EDA实验报告之PWM信号发生器的设计
3.PWM信号发生器设计

第一期可编程逻辑设计培训研讨 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
基于vhdlpwm信号发生器的设计说明书

Yi bin University EDA技术及应用课程设计报告题目基于VHDL的PWM信号发生器系别物理与电子工程学院专业电子信息科学与技术学生姓名学号班级2013 年 12月 21日摘要本次课程设计是基于VHDL的PWM信号发生器,PWM信号发生器应用所学的数字电路和模拟电路的知识进行设计。
在设计过程中,所有电路仿真均基于Quartus II 9.1仿真软件。
本课程设计介绍了PWM 信号发生器的设计方案及其基本原理,并着重介绍了PWM信号发生器各单元电路的设计思路,原理及仿真,整体电路的的工作原理,控制器件的工作情况。
设计共有三大组成部分:一是原理电路的设计,本部分详细讲解了电路的理论实现,是关键部分;二是性能测试,这部分用于测试设计是否符合任务要求。
三是是对本次课程设计的总结。
关键词: PWM信号发生器仿真设计目录第1章绪论1.1 EDA 和QuartusⅡ的简介及起源 (1)1.2 EDA的优势及发展趋势 (1)第2章系统设计思路 (3)第3章可自加载加法计数器的设计 (4)第4章信号发生器设计过程 (6)第5章软件仿真5.1 Quartus Ⅱ软件简介 (8)5.2 用Quartus Ⅱ的仿真步骤和图像 (9)5.3 逻辑综合结果 (12)第6章设计总结 (13)第7章参考文献 (15)附录设计程序 (16)第1章绪论1.1 EDA和QuartusⅡ的简介及起源EDA是英文“electronic design automation”(电子自动化设计)的缩写,EDA技术是20世纪90年代迅速发展起来的,是现代电子设计的最新技术潮流,是综合现代电子技术和计算机技术的最新研究成果,是电子线路设计与分析的一门技术。
EDA包括电子线路的设计、计算机模拟仿真和电路分析及印制电路板的自动化设计三个方面的内容。
随着可编程逻辑器件迅速发展,出现了功能强大的全新的EDA工具。
具有较强描述能力的硬件描述语言(VHDL、Verilog、HDL)及高性能综合工具的使用,使过去单功能电子产品开发转向系统级电子产品开发。
pwm发生器(凌翼)

综合性实验设计报告2013年6月课程名称: 单片机综合实验 实验名称: PWM 信号发生器设计 学生姓名: 蔡汉再班级: 通信10A 学号: 2010010101038 实验地点: A302实验室 实验学时: 48《单片机综合实验》设计报告评分表摘要本文设计了一种基于STC89C51单片机的PWM发生器,可通过I/O口输出波形,利用两个按键实现占空比调整,并能对占空比实时显示,经用示波器测试及观察LED亮灭情况可以证实,波形输出得到要求。
关键词:单片机;PWM;占空比I目录1 项目的主要任务 (1)2 总体设计方案 (2)3 硬件设计 (3)3.1STC89C51单片机简介 (3)3.2最小系统电路的设计 (4)3.3按键部分的电路设计 (5)3.4数码管显示电路的设计 (5)3.5扬声器、LED显示电路的设计 (6)4 软件设计 (7)4.1单片机软件设计的一般原则 (7)4.2PWM信号发生器软件设计及思路 (7)5 系统仿真与调试 (9)5.1实验调试 (9)5.2实验仿真 (9)6 设计总结 (11)参考文献 (12)附录A PWM信号发生器原理图 (13)附录B 元器件清单 (14)附录C 源程序清单 (15)II1 项目的主要任务脉宽调制(PWM)信号广泛应用于电机控制、开关电源设计等诸多场合。
PWM信号在自动控制系统中起到重要的作用,其控制作用受外界干扰小,使得系统工作准确可靠,研究PWM信号的产生和原理具有重要的意义。
PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛的控制方式,也是人们研究的热点。
由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想将会成为PWM控制技术发展的主要方向之一。
本课题的主要任务就是以STC89C51单片机为控制模块、两个按键为外围输入模块、2位的七段数码管、LED为显示模块,采用软件的编程方法,设计出一套基于单片机的PWM 信号发生器。
信号发生器设计与实现实验报告

信号发生器设计与实现实验报告实验报告:信号发生器的设计与实现一、引言信号发生器是一种能够产生各种类型的电信号的仪器,广泛应用于电子测量、通信系统调试、音频设备测试等领域。
本实验旨在设计并实现一个简单的信号发生器,以产生多种类型的电信号,并对其进行相应的测试和分析。
二、设计与实现1. 设计思路信号发生器的设计主要包括以下几个方面的考虑:信号类型的选择、频率范围的确定、输出幅度的调节以及相关控制电路的设计。
在信号类型的选择上,常见的信号类型有正弦波、方波、三角波等。
根据实际需求,本实验选择了正弦波和方波两种信号类型进行设计。
频率范围的确定需要考虑实际应用中最低和最高频率的要求。
在本实验中,我们选择了10Hz到10kHz的频率范围。
输出幅度的调节可以通过控制信号发生器的增益来实现。
本实验采用了可调电阻来控制输出信号的幅度。
相关控制电路的设计包括频率选择电路、幅度调节电路等。
这些电路的设计需要根据信号发生器的具体要求进行选择和设计。
2. 电路设计2.1 正弦波发生电路正弦波发生电路的设计采用了著名的Wien桥电路。
这个电路能够通过调节电容和电阻的比例来产生不同频率的正弦波信号。
2.2 方波发生电路方波发生电路的设计采用了555定时器作为主要的控制元件。
通过控制555的触发电平和放电电平,可以产生不同频率的方波信号。
3. 系统实现根据上述设计思路和电路设计,我们完成了信号发生器的系统实现。
通过逐步调试和优化,确保了系统的正常运行和性能的稳定。
三、实验结果与分析1. 正弦波信号测试通过将信号发生器接入示波器,我们成功地产生了频率为1kHz的正弦波信号。
通过示波器的显示,我们可以清晰地观察到正弦波的周期、幅度和波形等特征。
2. 方波信号测试通过将信号发生器接入示波器,我们成功地产生了频率为5kHz的方波信号。
通过示波器的显示,我们可以清晰地观察到方波的上升时间、下降时间和占空比等特征。
四、实验总结通过本次实验,我们设计并实现了一个简单的信号发生器,能够产生正弦波和方波两种类型的信号。
PWM信号发生器设计开题报告

开题报告毕业设计题目: PWM信号发生器设计浙江理工大学本科毕业设计(论文)开题报告班级10电子1班姓名课题名称PWM信号发生器设计目录:一、选题意义二、国内外研究现状三、研究的基本内容与拟解决的主要问题四、总体研究思路(方法与技术路线)五、可行性分析六、预期研究成果七、研究工作计划参考文献成绩:答辩意见答辩组长签名:年月日系主任审核意见签名:年月日PWM信号发生器设计开题报告一、选题意义PWM是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。
这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点[1]。
PWM信号发生器是实验室常见的一种仪器,其控制方法也是包括模拟电路、数字电路和计算机控制等方法。
其中,计算机控制的数字信号发生器因为功能多、精度高成为现代信号发生器的主要控制方法。
本设计将采用单片机实现各种信号的频率、幅值的控制,硬件电路设计是以AT89C52单片机为核心控制器构成的,由信号发生电路,频率可调电路、幅值可调输出电路,键盘显示器电路、电源电路等模块组成[2]。
二、国内外研究现状信号发生器又称波形发生器,是一种常用的信号源,被广泛地应用于无线电通信、自动测量和自动控制等系统中。
传统的信号发生器绝大部分是由模拟电路构成,借助电阻电容,电感电容、谐振腔、同轴线作为振荡回路产生正弦或其它函数波形。
频率的变动由机械驱动可变元件完成,当这种模拟信号发生器用于低频信号输出往往需要的RC 值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵[3]。
在今天,随着大规模集成电路和信号发生器技术的发展,许多新型信号发生器应运而生。
《单片机课程设计-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信号发生器.实验报告

EDA实验报告学院:电气学院班级:电科1班学号:12401720126姓名:刘明煌实验三PWM信号发生器的设计1.实验目的(1)进一步熟悉掌握Quartus H。
(2)进一步熟悉和掌握GW48-CK或其他EDA实验开发系统的应用。
(3)学习和掌握VHDL进程语句和元件例化语句的使用。
2.实验内容设计并调试好PWM信号发生器电路PWM.VHD,并用GW48-CK或其他EDA实验开发系统进行硬件验证。
3.实验条件(1)开发软件:Quartus H。
(2)实验设备:GW48-CK EDA实验开发系统。
(3)拟用芯片:EP2C8Q208C8N。
4.实验设计1) 系统原理框图为了简化设计并便于显示,本信号发生器电路PWM的设计分为两个层次,其底层电路可,再由包括两个完全相同的加载加法计数器LCNT8而成。
PWM电路图2) VHDL程序PWM信号发生器的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。
加载加法计数器LCNT8的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LCNT8 ISPORT(CLK ,L D: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;BEGINIF CLKEVENT AND CLK=1THENIF LD=1THEN COUNT<=D;ELSE C0UNT<=C0UNT+1;END IF;END IF;END PROCESS;PROCESS(COUNT) ISBEGINIF COUNT=255 THEN CAO<=1;ELSE CAO<=0END IF;END PROCESS;END ARCHITECTURE ART;PWM信号发生器的VHDL源程序:LIBRARY 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 ,L D: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)工程编译后:4)仿真波形设置本程序包括两个程序,因此先进行底层的加载加法计数器 LCNT8的仿真,在进行顶层 PWM 的仿真,下图为 PWM 的 输入设置及可能结果估计图。
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信号发生器的设计报告

前言脉冲宽度调制(Pulse Width Modulation.PWM)控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术和模拟信号数字传输通信领域最广泛应用的控制方式,因此研究基于PWM技术的脉冲宽度及周期可调的信号发生器具有十分重要的现实意义。
本文主要讨论了脉冲占空比可调信号的产生方法,采用三种不同的方案使用VHDL语言编程实现了信号的产生。
其中方案一的原理是分频,即用计数器计算时钟脉冲的上升沿个数,再通过输出电平反复翻转得到计数个数(脉冲宽度)可控的PWM 信号;方案二的原理是锯齿波比较法,首先编程产生阶梯状的锯齿波,再通过锯齿波与输入占空比值(数值可控的直线)比较产生脉冲宽度随输入占空比数值变化的PWM 信号;方案三是用有限状态机产生有用信号,首先定义两个状态,再通过计数器值与输入占空比值比较控制状态的切换,产生PWM信号。
本文详细介绍方案二和方案三两种方法。
通过使用QuartusII9.0软件采用VHDL语言编程并用功能仿真证实了上文提到的三种PWM信号产生方案都是可行的,都能产生切实可用的PWM信号,三种方案中均可以通过修改输入端口占空比来控制产生信号的脉宽,且可以通过在程序中修改计数器的计数上限和分频模块的分频比改变信号的周期及频率,实现了多参数可调,使整体设计具有灵活的现场可更改性和较好的可移植性。
且实现功能的程序简单易懂,设计过程中思路阐述清晰,流程介绍明了,且程序易于修改,可读性好。
第一章设计要求1.1 研究课题PWM信号发生器的研制1.2设计要求用CPLD可编程模块产生下列信号(特殊芯片:EPM570T100C5)(1)采用VHDL编写相关程序,PWM信号的工作频率为500Hz(1000Hz);(2)时钟信号通过分频器后,由输入开关量控制占空比可调。
第二章系统组成及工作原理本次设计采用的是Altera公司开发的QuartusII设计平台,设计采用特殊芯片EPM570T100C5进行仿真,在原理设计方面,本设计采用自顶向下、层次化、模块化的基本程序设计思想,这种设计思想的优点符合人们先抽象后具体,先整体后局部的思维习惯,其设计出的模块修改方便,不影响其他模块,且可重复使用,利用率高。
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;。
实验2—占空比可调的PWM信号发生器

实验2—占空比可调的PWM信号发生器第一篇:实验2—占空比可调的PWM信号发生器实验2占空比可调的PWM信号发生器一、实验任务基本部分:(1)用51单片机设计一个周期固定且占空比可调的PWM信号发生器。
(2)参数要求:a、信号周期为20ms,占空比范围1%-100%可调;b、用两个按键分别调整增量或减量;增量级别分为±1%和±5%两档可调,且要求可用按键选择;c、要求用两位LED数码管实时显示当前的占空比;d、51单片机晶振频率为12MHz。
扩展部分:(1)在基本部分设计的电路中,为输出的PWM信号增加光耦隔离输出电路;(2)为占空比调整过程增加超界声光报警电路;(3)可否改为脉宽固定而周期可改变的PWM信号发生器(简略说明,不要求设计编程)。
二、实验要求1、在PROTEUS中画出硬件设计图(AT89C51、12MHz晶振震荡电路、复位电路、按键调整电路、LED数码管显示电路、扩展部分电路)。
2、按任务要求用汇编或C编写程序并编译通过。
3、在PROTEUS下仿真通过。
三、报告要求1、任务分析、实现方案和程序流程图;2、硬件电路图;3、全部程序清单;4、打印出实验报告。
第二篇:信号发生器设计(推荐)模拟课程设计题信号发生器设计设计一个能够输出正弦波、三角波和矩形波的信号源电路,电路形式自行选择。
输出信号的频率可通过开关进行设定,具体要求如下:(1)输出信号的频率范围为100~800Hz,步进为100Hz。
(60分)(2)要求输出信号无明显失真,特别是正弦波信号。
(30分)评分标准:(1)范围满足设计要求得满分,否则酌情扣分。
(2)输出信号无明显失真可满分,有明显失真酌情扣分。
发挥部分(附加10分):进一步扩大输出信号范围和减小步进频率。
第三篇:VHDL实验四函数信号发生器设计.VHDL实验四:函数信号发生器设计设计要求:设计一个函数信号发生器,能产生方波,三角波,正弦波,阶梯波。
pwm信号发生器的设计

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

毕业设计(论文)开题报告题目通用PWM波发生器的研制专业电气工程及其自动化班级学生指导教师2014 年课题来源:自选题目。
类型:硬件制作。
二、选题的目的及意义脉宽调制PWM是开关型稳压电源中的术语。
这是按稳压的控制方式分类的,除了PWM型,还有PFM型和PWM、PFM混合型。
脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。
脉冲宽度调制是一种模拟控制方式,其根据相管导通时间的改变,从而实现开关稳压电源输出的改变。
这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。
在模拟电路中,模拟信号的值可以连续进行变化,在时间和值的幅度上都几乎没有限制,基本上可以取任何实数值,输入与输出也呈线性变化。
所以在模拟电路中,电压和电流可直接用来进行控制对象,例如家用电器设备中的音量开关控制、采用卤素灯泡灯具的亮度控制等等。
但模拟电路有诸多的问题:例如控制信号容易随时间漂移,难以调节;功耗大;会产生一些不必要的热损耗;易受噪声和环境干扰等等。
能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。
与模拟电路不同,数字电路是在预先确定的范围内取值,在任何时刻,其输出只可能为ON和OFF两种状态,所以电压或电流会通/断方式的重复脉冲序列加载到模拟负载。
PWM技术是一种对模拟信号电平的数字编码方法,通过使用高分辨率计数器(调制频率)调制方波的占空比,从而实现对一个模拟信号的电平进行编码。
其最大的优点是从处理器到被控对象之间的所有信号都是数字形式的,无需再进行数模转换过程;而且对噪声的抗干扰能力也大大增强(噪声只有在强到足以将逻辑值改变时,也可能对数字信号产生实质的影响),避免了以上的缺陷,实现了用数字方式来控制模拟信号,可以大幅度降低成本和功耗。
这也是PWM在通讯等信号传输行业得到大量应用的主要原因。
PWM信号发生器的设计程序(veriloghdl)

PWM信号发生器的设计程序module pwmgen(clk,rst,ce,addr,write,wrdata,read,bytesel,rddata,pwm); input clk,rst,ce;input [1:0]addr;input write,read;input[31:0]wrdata;output[31:0]rddata;input[31:0]bytesel;output pwm;reg[31:0]clk_div_reg,duty_cycle_reg;reg control_reg;reg clk_div_reg_sel,duty_cycle_reg_sel,control_reg_sel;reg[31:0]pwm_cnt,rddata;reg pwm;wire pwm_ena;always@(addr)beginclk_div_reg_sel<=0;duty_cycle_reg_sel<=0;control_reg_sel<=0; case(addr)2'b00:clk_div_reg_sel<=1;2'b01:duty_cycle_reg_sel<=1;2'b10:control_reg_sel<=1;default:beginclk_div_reg_sel<=0;duty_cycle_reg_sel<=0;control_reg_sel<=0;endendcaseendalways@(posedge clk or negedge rst)beginif(rst==1'b0)clk_div_reg=0;elsebeginif(write & ce & clk_div_reg_sel)beginif(bytesel[0])clk_div_reg[7:0]=wrdata[7:0];if(bytesel[1])clk_div_reg[15:8]=wrdata[15:8];if(bytesel[2])clk_div_reg[23:16]=wrdata[23:16];if(bytesel[3])clk_div_reg[31:24]=wrdata[31:24];endendendalways@(posedge clk or negedge rst)beginif(rst==1'b0)duty_cycle_reg=0;elsebeginif(write&ce&duty_cycle_reg_sel)beginif(bytesel[0])duty_cycle_reg[7:0]=wrdata[7:0];if(bytesel[1])duty_cycle_reg[15:8]=wrdata[15:8];if(bytesel[2])duty_cycle_reg[23:16]=wrdata[23:16];if(bytesel[3])duty_cycle_reg[31:24]=wrdata[31:24];endendendalways@(posedge clk or negedge rst)beginif(rst==1'b0)control_reg=0;elsebeginif(write & ce & control_reg_sel)beginif(bytesel[0])control_reg=wrdata[0];endendendalways@(addr or read or clk_div_reg or duty_cycle_reg or control_reg or ce) beginif(read & ce)case(addr)2'b00:rddata<=clk_div_reg;2'b01:rddata<=duty_cycle_reg;2'b10:rddata<=control_reg; default:rddata=32'h8888;endcaseendassign pwm_en=control_reg; always@(posedge clk or negedge rst) beginif(rst==1'b0)pwm_cnt=0;elsebeginif(pwm_en)beginif(pwm_cnt>=clk_div_reg)pwm_cnt<=0;elsepwm_cnt<=pwm_cnt+1;endelsepwm_cnt<=0;endendalways@(posedge clk or negedge rst) beginif(rst==1'b0);elsebeginif(pwm_en)beginif(pwm_cnt<=duty_cycle_reg)pwm<=1'b1;elsepwm<=1'b0;endelsepwm<=1'b0;endendendmodule。
EDA课设报告--信号发生器的设计

《集成电路VHDL设计》课程设计报告设计题目专业班级:电信0901设计者:___03 庄威___________06 邓智超_______42 郭乐安______指导教师:蔡剑华设计时间: 2012-06-23目录摘要 (2)Abstract (3)绪论 (4)1.V H D L简介 (5)1.1 VHDL的特点 (5)1.2 VHDL发展史 (5)2.设计的方案确定 (6)2.1.AD558工作原理 (6)2.2设计方案 (7)3.设计流程 (8)4.结束语 (14)5.参考文献 (15)附录 (16)摘要本说明书首先介绍了VHDL语言的特点及发展史;接着简要说明了D/A接口(函数发生器)的工作原理及设计思想和设计方案的确定;然后着重解释了使用VHDL语言设计D/A接口(函数发生器)的具体操作步骤及主要流程。
为了更加详细的解释清楚主要流程在本课程设计说明书中还附加了相应的图片。
最后还附加了实现设计的VHDL源程序。
关键词:VHDL D/A接口设计AbstractThis manual introduces the VHDL language features and development history; followed by a brief description of the D/A interface and the working principle and design ideas and the way that the design program was confirmed; and then I explain the emphasis on the use of VHDL language to design D/A interface and the specific steps and the main process. In order to explain in more details of the main process I also attached the corresponding pictures. Finally I added the VHDL design source codes in the addendum.Keywords: VHDL D/A Interface Design绪论EDA是电子设计自动化(Electronic Design Automation)的缩写。
PWM波形的发生器的设计

综合实验二PWM波形的发生器的设计一、系统设计与理论分析1.用ADC0809进行A/D转换,采集到数字信号D2.在P1.1上产生周期T为1kHz的PWM波形,其中脉冲宽度Tao由数字信号D决定(如当采集到的数字信号为80H时,占空比为50%,依此类推)本实验是先采集模拟信号,然后将模拟信号转换成数字信号,经CPU处理,用数字信号来决定CPU产生的波形的占空比,并将占空比显示出来。
二、硬件设计本系统采用51芯片控制,使用可变电阻作为传感器,通过ADC0809采集模拟信号,将模拟信号转换成数字信号给51芯片处理,再通过8155扩展IO口,显示模块采用数码管,与8155相连,51单片机通过8155控制数码管的显示。
本次试验器材采用的是试验箱,各模块的芯片选择已经固定,只需将所用模块线路搭连好即可。
本实验使用74LS164串转并来实现数码管的显示,减少了IO口的使用数量,使系统有更多的IO口实现其他功能的扩张。
三、软件设计首先将8155的模式通过控制字地址传入8155,接着对8051的定时中断进行初始化设置,将从传感器上通过AD转换的数据送到8051,赋值给Tao,接着通过8051将Tao值拆分,然后将拆分的数据通过8155的IO口串行输出,再通过74LS164将串行数据转换成并行数据,使与74LS164并行口相连的八段数码管显示出数据。
另一方面,定时器每隔3ns对Tao与T进行比较,并在P1.1上输出相应的值。
四、系统测试实验仪器使用的是实验箱,测试用的仪器仪表实验室均有提供,而软件代码老师已经给出,测试部分是本次实验主要要做的部分。
由于实验箱好坏程度不同,在硬件方面,判断其好坏花去不少时间,实验器材换了又换,结果还是存在一定问题。
而软件方面,keil的安装时常出现奇形怪状的问题,经老师检查,未查出原因致使电脑换了一台又一台,能否成功安装上keil软件的概率无法估计。
总而言之,在到达这测试的部分时已花去相当一大部分时间,因此,测试数据不够完善,存在一些问题未解决。
实验一PWM发生器实验

实验一 PWM发生器实验一、实验目的(1)了解掌握PWM发生器电路输出的波形。
(2)了解PWM发生器的作用。
二、实验所需挂箱及附件三、实验内容PWM发生器电路的各点波形观测。
四、预习要求阅读SG3525集成块的相关资料,了解PWM发生器的基本工作原理。
五、实验方法(1)将PMC-10挂箱的蓝色三芯插头与THPMC-1型控制屏的三芯插座相连,打开PMC-10挂箱的电源开关。
(2)将钮子开关分别打到低频侧和高频侧,调节波形的频率(即调节电位器RW1)和占空比(即调节电位器RW2),用万用表直流电压档观测“1”电压的变化情况,同时用双踪示波器的两个探头分别观测“2”和“输出”的波形,并填入下表。
六、实验报告(1)根据记录的数据,绘出“1”点电压和“2”点及“输出”端波形占空比的对应关系。
(2)测量PWM发生器电路在低频和高频段时的频率调节范围。
七、注意事项双踪示波器有两个探头,可同时观测两路信号,但这两个探头的地线都与示波器的外壳相连,所以两个探头的地线不能同时接在同一电路的不同电位的两个点上,否则这两点会通过示波器外壳发生电气短路。
为了保证测量的顺利进行,可将其中一根探头的地线取下,只使用其中一路的地线,这样从根本上解决了这个问题。
当需要同时观察两个信号时,必须在被测电路上找到这两个信号的公共点,将探头的地线接于此处,探头各接至被测信号,只有这样才能在示波器上同时观察到两个信号,而不发生意外。
实验二单结晶体管触发电路实验一、实验目的(1)熟悉单结晶体管触发电路的工作原理及电路中各元件的作用。
(2)掌握单结晶体管触发电路的调试步骤和方法。
二、实验所需挂箱及附件三、实验线路及原理利用单结晶体管(又称双基极二极管)的负阻特性和RC的充放电特性,可组成频率可调的自激振荡电路,如图1所示。
图中V3为单结晶体管,其常用的型号有BT33和BT35两种,由等效电阻V2和C组成RC充电回路,由C-V3-T组成电容放电回路,调节RW1即可改变C充电回路中的等效电阻。
信号发生器设计与实现实验报告

信号发生器设计与实现实验报告信号发生器设计与实现实验报告引言•目的:本实验旨在设计和实现一个功能完善的信号发生器,用于产生各种类型的随机信号。
•背景:信号发生器是电子工程中常用的仪器,用于产生特定频率、振幅和相位的电子信号。
•实验流程:本实验分为需求分析、设计、实现和测试四个阶段。
需求分析•功能需求:实现正弦、方波、三角波和随机噪声信号的产生。
•参数调节:需要能够通过控制参数调节信号的频率、振幅和相位。
•输出接口:输出接口需要能够连接到示波器,以便观察和分析生成的信号。
设计硬件设计•信号发生器包括主控制板和模拟电路部分。
•主控制板:负责接收用户输入、控制参数和控制输出接口。
•模拟电路部分:根据主控制板指令生成不同类型的信号。
软件设计•控制程序:通过用户界面接收参数设置,并将指令传递给硬件部分。
•信号生成算法:根据用户设置的参数,计算出相应的信号波形。
实现硬件实现•选择适合的电路元件,如晶体管、电容和电阻等。
•连接模拟电路和主控制板,确保信号可以正确输出。
软件实现•编写用户界面程序,包括参数设置和开始按钮等。
•编写控制程序,将用户设置的参数传递给硬件,控制信号的产生和输出。
测试•连接示波器,通过观察波形验证信号发生器的功能和性能。
•调整参数,观察信号频率、振幅和相位的变化。
•检查输出接口是否正常工作。
结论•本实验成功设计并实现了一个功能完善的信号发生器。
•信号发生器可以产生正弦、方波、三角波和随机噪声信号。
•用户可以通过参数设置调节信号的频率、振幅和相位。
•信号发生器的输出接口工作正常,能够连接到示波器进行信号观察和分析。
改进方向•精确性提升:进一步优化模拟电路部分,提高信号发生器输出的精确性和稳定性。
•扩展功能:可以考虑增加更多类型的信号生成,如方波占空比可调节、斜坡波等。
•软件界面优化:可以增加更多交互功能,如保存用户设置参数、一键恢复默认设置等。
•输入接口扩展:可考虑增加外部输入接口,使用户能够通过外部设备设置信号发生器参数。
湖南工业大学DSP实验报告word版

DSP 实验报告姓名:班级:学号:指导老师:湖南工业大学电气与信息工程学院实验一 A/D实验CPU一、实验目的1.熟悉CPU内部AD转换的基木原理,2.掌握TMS320F2812的内部ADC功能模块的指标和常用方法。
二、实验设备计算机、CCS3.l版本软件、DSP仿真器、E300实验箱、2812CPU板(新的)、信号线、示波器三、实验原理TMS320F2812DSP自带16路12位单极性ADC转换器.并且内置双采样保持器。
快速转换时间运行在25MHz。
16个通道可配置为两个独立的8通道模块以便为事件管理器A和B 服务。
两个独立的8通道模块可以级联组成一个16通道模块。
虽然有多个输入通道和两个序列器,但是ADC模块只有一个转换器。
下图给出了F2812的ADC模块框图两个8通道模块具有一对系列转换和自动序列化的能力,通过模拟多路复用器,每个模块都可以选择可用的8个通道中的任何一个通道。
在级联模式下,自动序列发生器可作为一个单一的16通道序列发生器。
在每个序列发生器上,一旦转换结束,己选择的通道值就保存在各个通道的结果寄存器ADCRESULT中。
自动序列化允许系统对同一通道转换多次,允许用户执行过采样算法。
这较传统的单一采样转换结果增加了更多的解决方案。
输入模拟电压的数字值为:数字值=4095 X(输入模拟电压值)/3多触发源启动序列转换(SOC)包括:S/W:软件直接启动、EVA/B:事件管理器A/B(EVA/B内有多个事件源)、S/W:外部引脚。
本实验是用DSP自带的ADC转换器采集信号源的信号。
并将采集到的信号储存到指定的内存区域。
由于ADC是单极性的,所以从信号源过来的双极性信号经过偏置电路转换成单极性信号然后由ADC采样。
四、实验步骤和内容1.2812CPU板JUMPI的1和2脚短接,拨码开关SW1的第二位置ON2. E300板上的开关SW4的第二位置ON,其余OFF,S盯全部置洲。
其余开关全部置OFF。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:PWM信号发生器的设计
1.实验目的
(1)熟悉Quartus Ⅱ/ISE Suite/ispLEVER软件的基本使用方法。
(2)熟悉GW48-CK或其他EDA实验开发系统的基本使用方法。
(3)学习VHDL程序中数据对象、数据类型、顺序语句和并行语句的综合使用。
2.实验内容
设计并调试好一个脉宽数控调制信号发生器,此信号发生器是由两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高/低电平脉宽可分别由两组8位预置数进行控制。
用GW48-CK或其他EDA实验开发系统(事先应选定拟采用的实验芯片的型号)进行硬件验证。
3.实验要求
(1)画出系统的原理图,说明系统中各主要组成部分的功能。
(2)编写各个VHDL源程序。
(3)根据系统的功能,选好测试用例,画出测试输入信号波形或编号测试程序。
(4)根据选用的EDA实验开发装置编好用于硬件验证的管脚锁定表格或文件。
(5)记录系统仿真、逻辑综合及硬件验证结果。
(6)记录实验过程中出现的问题及解决办法。
4.实验条件
(1)开发条件:Quartus Ⅱ 8.0。
(2)实验设备:GW48-CK实验开发系统。
(3)拟用芯片:EP3C55F484C8N。
5.实验设计
1)系统原理图
本信号发生器电路PWM的设计分为两个层次,其中底层电路包括两个完全相同的可自加载加法计数器LCNT8组成的,它的输出信号的高/低电平脉宽可分别由两组8位预置数进行控制。
加法计数器LCNT8,再由这两个模块按照图3.1所示的原理图构成顶层电路PWM。
LCNT8
图3.1 LCNT8电路原理图
图 3.1 PWM电路原理图
2)VHDL程序
信号发生器PWM的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。
LCNT8的VHDL源程序:
--LCNT8.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
---USE IEEE.STD_LOGIC_UNSIGNED.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 CLK'EVENT AND CLK='1'THEN
IF LD='1' THEN COUNT<=D;
ELSE COUNT<=COUNT +1;
END IF;
END IF;
END PROCESS;
PROCESS(COUNT) IS
BEGIN
IF COUNT=255 THEN CAO<='1';
ELSE CAO<='0';
END IF;
END PROCESS;
END ARCHITECTURE ART;
PWM的VHDL源程序:
--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='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)仿真波形设置
本设计包括两个层次,因此先进行底层的可自加载加法计数器LCNT8的仿真,再进行顶层PWM的仿真。
PWM仿真输入设置及可能结果估计,图3.2为PWM仿真输入设置及可能结果估计图。
图3.2 PWM仿真输入设置及可能结果估计图
4)管脚锁定文件
根据图3.1所示的PWM电路原理图,本设计实体的输入信号CLK、A、B,输出信号PWM,据此可选择实验电路结构图NO.1,对应实验模式1。
图NO.1实验电路结构图
根据图3.5所示的实验电路结构图NO.1和图3.1确定引脚的锁定。
选用EP3C55F484C8N 芯片,其引脚锁定过程如表3.1所示,其中CLK接CLOCK0,8位数控预置输入B[7..0]接PIO15~PIO8,由键4和键3控制输入,输入值分别显示在数码4、3上;另外8位数控预置输入A[7..0]接PIO7~PIO0,由键2和键1控制输入,输入值分别显示在数码2、1上;输出PWM接SPEAKER。
表3.1PWM管脚锁定过程表
6.试验结果及总结
1)系统仿真情况
PWM的时序仿真结果分别如图 3.3所示(本仿真结果是通过同时按下“CTRL+Print Screen”键抓取当前屏幕信息放入剪贴板中,再通过Windows的画图工具进行粘贴裁剪后复制,最后在Word等文档中通过粘贴的方法获得)。
图3.3 PWM的时序仿真结果
从系统仿真结果可以看出,本系统底层和顶层的程序设计完全符合设计要求。
同时从系统时序仿真结果可以看出,从输入到输出有一定的延时,大约为5ns,这正是器件延时特性的反应。
2)逻辑综合结果
使用Quartus Ⅱ 8.0进行逻辑综合后,PWM的RTL视图如图3.5所示,对PWM进行逻辑综合后的资源使用情况为:Family:MAX7000S ,Device:EPM7128SLC84-10,Total macrocells:19/128(15%),Total pins:23/68(34%)。
图3.5 PWM的RTL视图
3)硬件验证情况
CLK接CLOCK0,8位数控预置输入B[7..0]接PIO15~PIO8,由键4和键3控制输入,输入值分别显示在数码4、3上;另外8位数控预置输入A[7..0]接PIO7~PIO0,由键2和键1控制输入,输入值分别显示在数码2、1上;输出PWM接SPEAKER。
4)软件下载
4)实验过程中出现的问题及解决办法
(1)刚开始由于不知道怎么管脚锁定,所以一直在徘徊,通过查阅书籍,了解到【Assignment】下的【Pins】,由于第一次打开所以找不到【Location】,没办法管脚锁定,最后通过【Pin Planner】下的【View】栏下的【Group list】及【All pins list】才打开管脚锁定窗口,通过对对应的管脚意义锁定,然后再编译一次即可。
(2)由于第一次编程下载,没有找到端口,所以结果没有办法下载在硬件里,通过单击【Hardware Steup】找到【USB Blaster【USB-0】】再添加好PWM.Sof文件,最后单击【Start】即可下载,当【Progress】进程显示100%时,编译成功,可以观察实验面板,进行硬件测试验证。