基于FPGA的单脉冲发生器

合集下载

基于FPGA的脉冲发生器波形模块设计

基于FPGA的脉冲发生器波形模块设计

h g r cs n p leg n r t r Ve i g i s d f rwrtn o uewh l a t sIf rsm u ain i h p e ii us e ea o . o rl su e o iig m d l i Qu ru I o i lto . o e
收 稿 日期 : 0 10 一 5 2 1 3 l
冲周期 、 冲个 数 可 调 的脉 冲口 。考 虑 到 如 果 只 脉 ] 用 F GA 内 的时序做 脉 宽调 整 , F GA 内部 的 P 而 P
脉 宽调 整是 通过 计 数 器 计 数来 调 整 的 , 整 的频 调 率 是根 据 当前 的周 期 调 整 的 , 样 就不 能 满 足 高 这
3 2卷 第 3 期
21 年 0 0 1 6月

长 春 工 业 大 学 学 报( 自然 科 学 版 )
J un lo a g h nU nv riyo c n lg ( tr l ce c dto ) o r a fCh n c u ie st fTeh oo y Nau a in eE i n S i
( c o lo mp t rSce c & S h o fCo u e in e En i e rn g n e ig,Ch n c n Unv r iyo c n lg a g hu iest fTe h oo y,Ch n c n 1 0 2,Chn ) a g hu 3 01 ia
HDL语 言 在 F GA 内部 编写 单 脉 冲/ 脉 冲 计 P 群
数 器 。在其 后面加 上 一个 门控 时钟 电路 和窄脉 冲
第 3 期
张 孝 飞 , :基 于 F G 的脉 冲发 生 器 波形 模 块 设计 等 P A

基于FPGA的脉冲控制发生器设计与研究

基于FPGA的脉冲控制发生器设计与研究

fr nf m p l si m n , i c dgt e u nysnhs D S loi m w sao tdt d s nte o i r us as n e t dr t ii l q e c y tei u o e g e af r s( D )agrh a d pe o ei t g h
p le g n r tri u s e e ao n FPGA i rl g HDL. Th s p s e e ao s v lc t n o i o o r l mo e, usng Ve io i ule g n r t rha e o i a d p st n c nto d y i
数 字 量 ,转 换 为相 应 频率 的脉 冲发 送给 驱 动器 ¨ 。
K e o ds:S e o to ;FPGA ;DDS ag rt m ; P le g n rt yW r tp c nrl l o ih us e eae
0 引 言
数 字运 动 控 制 系统 中 可 能采 用 步 进 电机 ,或 者 需 要伺 服 电 机 工 作 在 步 进 模 式 。 在 这 些 情 况 下 ,运
b si n d u io ml h to o r lc r s d o n u eo iy Afe o a i g wi n ag rt m e a sg e nf r y by t e mo in c nto a d ba e n i p tv l ct . t rc mp rn t a lo i h h
中用 V ro D ei gH L语 言完成 了脉 冲发 生器的设计 。该脉 冲发生 器具 有速度 与位 置两种 控制模 式 ,并 可 以根 据 电机 驱 l 动器的工作模式 输出 4种不同的脉 冲。测试 表 明该发生 器 的输 出脉 冲均 匀稳定 ,分辨 率高 ,频 率范 围完全覆 盖宽 ,

FPGA实现可编程单脉冲发生器设计

FPGA实现可编程单脉冲发生器设计

可编程单脉冲发生器设计可编程单脉冲发生器是一种脉冲宽度可编程的信号发生器,其输出为TTL 电平。

在输入按键的控制下,产生单次的脉冲,脉冲的宽度由8位的输入数据控制(以下称之为脉宽参数)。

由于是8位的脉宽参数,故可以产生255种宽度的单次脉冲。

在目标板上,I0~I7用作脉宽参数输入,PULSE_OUT用做可编程单脉冲输出,而KEY和/RB作为启动键和复位键。

图3示出了可编程单脉冲发生器的电路图。

图3 可编程单脉冲发生器的电路图8.3.1 由系统功能描述时序关系可编程单脉冲发生器的操作过程是:(1) 预置脉宽参数。

(2) 按下复位键,初始化系统。

(3) 按下启动键,发出单脉冲。

以上三步可用三个按键来完成。

但是,由于目标板已确定,故考虑在复位键按下后,经过延时自动产生预置脉宽参数的动作。

这一过程可用图4的时序来描述。

图4 可编程单脉冲发生器的时序图图中的/RB为系统复位脉冲,在其之后自动产生LOAD脉冲,装载脉宽参数N。

之后,等待按下/KEY键。

/KEY键按下后,单脉冲P_PULSE便输出。

在此,应注意到:/KEY的按下是与系统时钟CLK不同步的,不加处理将会影响单脉冲P_PULSE的精度。

为此,在/KEY按下期间,产生脉冲P1,它的上跳沿与时钟取得同步。

之后,在脉宽参数的控制下,使计数单元开始计数。

当达到预定时间后,再产生一个与时钟同步的脉冲P2。

由P1和P2就可以算出单脉冲的宽度Tw。

8.3.2 流程图的设计根据时序关系,可以做出图5所示的流程图。

在系统复位后,经一定的延时产生一个预置脉冲LOAD,用来预置脉宽参数。

应该注意:复位脉冲不能用来同时预置,要在其之后再次产生一个脉冲来预置脉宽参数。

为了产生单次的脉冲,必须考虑到在按键KEY有效后,可能会保持较长的时间,也可能会产生多个尖脉冲。

因此,需要设计一种功能,使得当检测到KE Y有效后就封锁KEY的再次输入,直到系统复位。

这是本设计的一个关键所在。

FPGA开发中按键消抖与单脉冲发生器电路

FPGA开发中按键消抖与单脉冲发生器电路

FPGA开发中按键消抖与单脉冲发生器电路作者:邢自茹史明健来源:《现代电子技术》2009年第21期摘要:在介绍FPGA开发中按键消抖电路和单脉冲发生器电路原理的基础上,设计实现了键控单脉冲发生器,利用计数器解决了按键高频消抖问题,并通过按键产生与时钟脉冲完全相同的单脉冲。

该单脉冲键控发生器可独立应用于其他FPGA电路设计中。

在Quartus环境下给出Verilog HDL语言的行为及描述,并进行仿真实验,结果显示该电路合理可行。

关键词:单脉冲发生器;按键消抖;FPGA;Verilog HDL中图分类号:TN782 文献标识码:A文章编号:1004-373X(2009)21-171-02Elimination Buffeting of Keystroke and Single Pulse GeneratorCircuit in FPGA Development ProcessXING Ziru,SHI Mingjian(Inner Mongolia University of Technology,Huhhot,010051,China)Abstract:The circuit principle of elimination buffeting of keystroke and a single pulse generator in FPGA development are introduced,and keying single pulse generator is achieved.It solves eliminating high-frequency buffeting problem by a counter and produces the single pulse which has the same pulse width and same phase with clock cycle.Keying a single pulse generator can be applied to other independent FPGA design.The behavior and description based on Verilog HDL language are given and it is simulated in Quartus software,the method is proved logical and feasible as a result.Keywords:single pulse generator;elimination buffeting of keystroke;FPGA;Verilog HDLFPGA开发中常用到单脉冲发生器。

基于FPGA的脉冲宽度调制信号发生器

基于FPGA的脉冲宽度调制信号发生器

基于FPGA的脉冲宽度调制信号发生器郝建卫【摘要】摘要:为了产生各种不同形式的脉冲宽度调制(PWM)信号,提出一种基于现场可编程门阵列(FPGA)的脉冲宽度调制信号发生器。

采用硬件描述语言Verilog设计底层模块,并在FPGA芯片内部嵌入一个NiosII软核处理器,使用软硬件协同的工作方式产生多路PWM信号。

实验结果表明,该信号发生器的频率输出范围为1 Hz~4 MHz,占空比可调范围为1%~99%,任意两路信号间的相位差范围为1°~180°,达到预期效果。

【期刊名称】计算机工程【年(卷),期】2013(039)002【总页数】6【关键词】关键词:脉冲宽度调制;占空比;NiosII软核;压控放大器;相位累加器1 概述脉冲宽度调制(Pulse Width Modulation, PWM)是一种利用数字信号控制模拟电路的控制技术,广泛应用于电源、电机控制、通信系统、伺服系统、功率控制等电子设备[1]。

PWM技术也是变频调速技术的核心,其实现方法正在不断地被改进和发展,在这些应用领域和产品设计中,比较关键的共同问题是如何提高带宽和稳定度,产生各种不同形式的PWM信号[2]。

本文设计和实现一种基于现场可编程门阵列(Field Programmable Gate Array,FPGA)的脉冲宽度调制信号发生器。

2 信号发生器总体设计本文采用自顶向下逐级细化的设计方法,结合嵌入式可配置微处理器技术,对信号发生器进行模块化设计[3]。

顶层采用图形设计方式,底层模块由Verilog 硬件描述语言描述,利用QuartusII9.0软件完成仿真及综合,并在ALTERA公司的CycloneII系列现场可编程门阵列芯片上进行了实现。

芯片内嵌NiosII软核处理器,实现了处理器与PWM信号产生模块的无缝连接,提升了信号发生器内部的处理速度和稳定性,降低了功耗和成本。

该信号发生器由PWM信号产生模块、键盘模块、LCD显示模块、程控衰减与放大模块及电源模块共5个模块构成。

基于FPGA的单脉冲发生器

基于FPGA的单脉冲发生器

一、设计报告:1.技术规:在clr的控制下置入脉宽data,在输入按键key的控制下,产生单次的脉冲pulse,脉冲的宽度由data 8位的输入数据控制(以下称之为脉宽参数)。

clk_50M为系统的时钟。

2.总体设计方案:①系统功能描述:(1)分频模块:输入为总的时钟50M,经过分频以后变为100HZ。

(2)延时模块:当clk为高电平且在复位脉冲clr有效时置入延时脉宽,延时5个始终周期后输出一个高电平load 。

(3)计数模块:脉宽参数端data接受8位的数据,经数据预置端clr装载脉宽参数,在计数允许端有效后便开始计数。

该计数器设计成为减法计数的模式,当其计数到0时,输出端pulse由高电平变为低电平。

便可得到单脉冲的输出。

②系统功能描述时序关系:可编程单脉冲发生器的操作过程是:(1) 预置脉宽参数。

(2) 按下复位键,初始化系统。

(3) 按下启动键,发出单脉冲。

以上三步可用三个按键来完成。

但是,由于目标板已确定,故考虑在复位键按下后,经过延时自动产生预置脉宽参数的动作。

输出的信号加到灯上,输如的脉宽有开发版上的拨码开关决定,当输入脉宽后,按下复位键置入脉宽,然后按下启动键,发出单脉冲,延时一段时间后灯开始亮,亮一段时间后灯熄灭。

延时模块的时序图如下:clkclrload3.流程图的设计:根据时序关系,可以做出图所示的流程图。

在系统复位后,经一定的延时产生一个预置脉冲load,用来预置脉宽参数。

当按键key有效后产生脉冲pulse。

二、验证方案:1.验证方案的设计:①分频模块的设计:分频模块的代码:module div(clk_50M,clk);//模块名及端口的定义,到endmodule。

input clk_50M;//输入端口的定义。

output clk;//输出端口的定义。

reg [31:0] a=32‘d0;//定义部寄存器并赋初值。

reg clk=0;//给输出赋初值。

always(posedge clk_50M)beginif(a==32'd500000)//判断计数器是不是记到了500000begina<=32'd0;// 计数器记到了500000清零。

基于FPGA信号发生器的设计!

基于FPGA信号发生器的设计!

目录摘要 (2)1 前言 (3)2 设计方案 (5)2.1 总体设计思路 (5)2.2 方案论证 (6)2.2.1方案一 (6)2.2.2方案二 (6)2.2.3方案三 (6)2.3 方案确定 (7)3 软件设计 (8)3.1 波形产生模块 (8)3.1.1正弦波 (8)3.1.2 矩形波 (10)3.1.3 三角波 (10)3.1.4 基波 (11)3.1.5谐波的产生 (11)3.1.6 波形模块图 (11)3.2 频率控制模块 (11)3.3 选择波形模块 (11)3.4 分频器模块 (13)3.4.1 设计思路 (13)3.4.2 VHDL实现 (13)3.4.3 分频值计算 (14)4 硬件电路设计 (15)4.1 硬件设计注意事项 (15)4.2滤波电路 (15)4.3 幅度控制电路 (16)4.4 FPGA器件引脚分配 (16)4.5 硬件电路实现 (17)5 调试 (18)5.1设计及仿真调试使用设备 (18)5.2 调试方法 (18)5.2.1 硬件调试 (18)5.2.2 软件调试 (18)5.2.3 综合调试 (19)5.3 调试结果 (19)5.3.1 软件仿真结果及分析 (19)5.3.2 综合调试结果 (21)6 结论 (24)致谢辞 (25)参考文献 (26)附录 (27)基于FPGA的信号发生器摘要本次设计课题为应用VHDL语言及MAX+PLUS II软件提供的原理图输入设计功能,结合电子线路的设计加以完成一个可应用于数字系统开发或实验时做输入脉冲信号或基准脉冲信号用的信号发生器,它具结构紧凑,性能稳定,设计结构灵活,方便进行多功能组合的特点,经济实用,成本低廉。

具有产生三种基本波形脉冲信号(正弦波、矩形波和三角波),以及三次(及三次以下)谐波与基波的线性组合脉冲波形输出,且单脉冲输出脉宽及连续脉冲输出频率可调,范围从100HZ到1kHZ,步进为100HZ;幅度可调,从0到5伏,步进为0.1V。

一种基于FPGA的脉冲信号发生器的设计

一种基于FPGA的脉冲信号发生器的设计

一种基于FPGA的脉冲信号发生器的设计
崔旭涛;何友;周宪英
【期刊名称】《海军航空工程学院学报》
【年(卷),期】2004(019)004
【摘要】介绍了使用FPGA产生脉冲信号的方法,文中对脉冲信号的频率、脉宽、周期的控制方法、软件设计、仿真结果、硬件设计等进行了简要介绍.所设计的脉冲信号发生器经实际使用,得到了理想效果.
【总页数】4页(P435-438)
【作者】崔旭涛;何友;周宪英
【作者单位】海军航空工程学院信息融合技术研究所,烟台,264001;海军航空工程学院信息融合技术研究所,烟台,264001;92941部队,辽宁葫芦岛,125000
【正文语种】中文
【中图分类】TN761
【相关文献】
1.基于FPGA的雷达脉冲信号发生器的设计 [J], 伊志勇;刘雨
2.基于 FPGA的电磁超声脉冲信号发生器的设计 [J], 马赵;任尚坤;杨梅芳
3.基于FPGA的脉冲信号发生器设计 [J], 章欣
4.基于FPGA的高分辨率数字脉冲信号发生器的设计与实现 [J], 田宇; 施赛烽; 郑子贤; 徐南阳
5.基于FPGA的PSWF脉冲信号发生器设计 [J], 张晨亮;王红星;张榛;康家方
因版权原因,仅展示原文概要,查看原文内容请购买。

基于FPGA的脉冲信号发生器与数字频率计设计

基于FPGA的脉冲信号发生器与数字频率计设计

基于FPGA 的脉冲信号发生器与数字频率计设计摘要:简单介绍了基于FPGA 的脉冲信号发生器的设计。

通过对系统进行结构分析,采用层次化的设计方法,给出了脉冲信号发生器与数字频率计的VHDL 代码,利用Quartus II 对其进行了仿真,并在硬件电路上得以实现其逻辑功能。

关键词:FPGA ;Quartus II ;脉冲信号发生器Design of pulse generator and cymometer based on FPGAGaoyuanli 、Cenjianfeng 、Wanghonggang(Department of electronic and information engineering,NCIAE,langfang,hebei )Abstract :This paper introduces the design of the pulse generator and cymometer based on FPGA.By analyzing the system structuer,provides the program of signal generator with VHDL using the hierarchical design method and gives the simulation results of Quartus II. Key words : FPGA ;Quartus II ;pulse generator引言:信号发生器是一种常用的信号源,广泛应用于通信、雷达、测控、电子对抗以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格技术要求的电信号设备。

它与示波器、万用表、频谱分析仪等仪器一样是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到信号发生器。

随着EDA 技术的高速发展,电子系统设计技术和工具发生了深刻的变化,大规模可编程逻辑器件FPGA 的出现,给设计人员带来了诸多的方便。

基于FPGA的单脉冲发生器

基于FPGA的单脉冲发生器

一、设计报告:1.技术规范:在clr的控制下置入脉宽data,在输入按键key的控制下,产生单次的脉冲pulse,脉冲的宽度由data 8位的输入数据控制(以下称之为脉宽参数)。

clk_50M为系统的时钟。

2.总体设计方案:①系统功能描述:(1)分频模块:输入为总的时钟50M,经过分频以后变为100HZ。

(2)延时模块:当clk为高电平且在复位脉冲clr有效时置入延时脉宽,延时5个始终周期后输出一个高电平load 。

(3)计数模块:脉宽参数端data接受8位的数据,经数据预置端clr装载脉宽参数,在计数允许端有效后便开始计数。

该计数器设计成为减法计数的模式,当其计数到0时,输出端pulse由高电平变为低电平。

便可得到单脉冲的输出。

②系统功能描述时序关系:可编程单脉冲发生器的操作过程是:(1) 预置脉宽参数。

(2) 按下复位键,初始化系统。

(3) 按下启动键,发出单脉冲。

以上三步可用三个按键来完成。

但是,由于目标板已确定,故考虑在复位键按下后,经过延时自动产生预置脉宽参数的动作。

输出的信号加到灯上,输如的脉宽有开发版上的拨码开关决定,当输入脉宽后,按下复位键置入脉宽,然后按下启动键,发出单脉冲,延时一段时间后灯开始亮,亮一段时间后灯熄灭。

延时模块的时序图如下:clkclrload3.流程图的设计:根据时序关系,可以做出图所示的流程图。

在系统复位后,经一定的延时产生一个预置脉冲load,用来预置脉宽参数。

当按键key有效后产生脉冲pulse。

二、验证方案:1.验证方案的设计:①分频模块的设计:分频模块的代码:module div(clk_50M,clk);//模块名及端口的定义,到endmodule。

input clk_50M;//输入端口的定义。

output clk;//输出端口的定义。

reg [31:0] a=32‘d0;//定义内部寄存器并赋初值。

reg clk=0;//给输出赋初值。

always@(posedge clk_50M)beginif(a==32'd500000)//判断计数器是不是记到了500000begina<=32'd0;// 计数器记到了500000清零。

基于FPGA的可编程单脉冲发生器设计规范

基于FPGA的可编程单脉冲发生器设计规范

可编程单脉冲发生器设计一、功能描述:本设计实现一个可编程单脉冲发生器,具体功能如下:1.异步信号复位,复位后信号输出重新开始。

2.复位后5个时钟周期时,产生一个脉冲,对输入的脉冲宽度参数读取。

3.当有按键使能时,输出脉冲信号,重复再按使能键,无效。

4.使能按键后产生的单脉冲的上升沿与时钟取得同步。

5.产生的脉冲信号的最大宽度为255。

二、输入输出信号描述:系统结构框图顶层模块说明:1、counter:计数比较,确保输出信号宽度为输入data值;2、sync:将按键产生的单脉冲的上升沿与时钟取得同步;3、T_trigger:T触发器模块,锁按键信号,使按键只能第一次有效;4、preset_parameter:预置脉冲参数;5、LED:将输入data用数码管输出显示。

设计说明:设计分为计数比较、按键同步、预置脉冲参数、T触发器模块、LED 显示五个模块。

计数比较模块:计数延时,由输入的宽度参数data的不同而得到不同宽度的脉冲。

按键同步模块:使按键产生的单脉冲的上升沿与时钟取得同步。

预置脉冲参数:在系统进行复位操作的5个时间单位后,将输入的脉冲参数data预置到flag_data中。

T触发器模块:T触发器模块,锁按键信号,使按键只能第一次有效。

LED显示模块:将脉冲宽度的预置值和计数模块的计数值转换为数码管输出显示。

四、子模块描述:4.1、counter:计数判断输出模块1、功能描述计数延时,由输入的宽度参数data的不同而得到不同宽度的脉冲。

信号名称输入/ 输出源目标功能描述clk Input Pin 时钟信号50MHzrst Input Pin 复位信号,低电平有效data_in[7:0] Input Pin 脉冲宽度参数Q_in Input Pin 按键使能标志out Output Pin 脉冲输出复位后输出out为0。

当Q_in按键使能标志有效时,cnt[7:0]从零开始计数,当cnt<data_in时,输出out=1;其余输出为0。

基于FPGA的脉冲信号发生器的设计

基于FPGA的脉冲信号发生器的设计
( .合肥工业大学 , 1 合肥 2 0 0 ; . 3 09 2 中国电子科技集 团公 司第十六研究所 , 合肥 2 04 ) 30 3
摘要:r O绍了一种基于 FG P A的脉冲 信号发生器的设计方法与电路。该仪器可以产生周期在 1 s m 秒到 1 0 之 O s
间的方波信号 , 并且信号的占空 比可 以以千分之一周 期 的步进 进行调 节 , 出模式 可 以分成 连续模式 和单 次手动 触 输
sr e ecr u t.Co a e i h i u t c n t c e y c mmo e ie , h e u s e e ao a a u e u h a s o o e t , t th i i u t c s mp rd w t t ec r i o sr td b o h c s u n d vc s t en w p le g n r tr sf t r ss c s l s c mp n n s h e e
aet omo e ee tbefro tu uss ig lrp s up ta d rp t iep leo tu ,w ih c n b e ya t o— p s in s i h r w d sslca l o up t l e ,sn ua u eo tu n e eiv us up t hc a estb p l t w oio wt . t c
tenlO sadl. adte u yl o te u eC eajs df ml 10 yl t 9 9 10 yl s pe y11 0cce. h r w e O n s , t cc fh l a b dut o / 00cc 9/ 0 0cc ep db / O yl T ee n n hd y e ps n e r eo et

基于FPGA的脉冲信号发生器设计

基于FPGA的脉冲信号发生器设计

基于FPGA的脉冲信号发生器设计章欣【摘要】基于FPGA并运用DDS技术的相关理论,通过模块化设计,使标准脉冲信号发生器达到较高的性能指标,能够产生1~100 kHz 线性可调的脉冲,脉冲分辨率达100 Hz,上升沿及下降沿为2.5 ns,脉冲宽度从200 ns~5μs可调,脉宽分辨率50 ns,满足集成电路的脉冲驱动要求。

%Based on FPG and the theory of DDS technology,according to the design of each module,the standard pulse signal generator achieves the high performance index.It can produce 1 k-100 kHz linear adjustable pulse,100Hz the pulse resolution,2.5ns rising and falling edge,pulse width adjustable from 200ns-5μs and 50ns pulse width resolution,which meets the requirement of pulse drive in the integrated circuits.【期刊名称】《气象水文海洋仪器》【年(卷),期】2014(000)002【总页数】5页(P69-73)【关键词】FPGA;脉冲信号发生器;DDS【作者】章欣【作者单位】南京信息工程大学,气象灾害预报预警与评估协同创新中心,南京210044【正文语种】中文【中图分类】TP317.40 引言在集成电路应用中经常需要使用脉冲源来驱动集成芯片,在雷达、计算机硬件系统和通信系统等领域的设计和调试中,同样需要大量的精度高、速度快的脉冲信号和数字序列作为激励。

在其他领域例如:激光器供电、电火花加工、静电除尘、脉冲电镀等方面,脉冲源也得到了广泛的应用,因而脉冲信号发生器的设计和研制具有很大的价值。

基于FPGA的单脉冲发生器

基于FPGA的单脉冲发生器

可编程单脉冲发生器FPGA课程设计报告提纲1.任务根据输入的8位的脉宽参数,输出255种宽度的单次脉冲。

可编程单脉冲发生器是一种脉冲宽度可编程的信号发生器,在输入按键的控制下,产生单次的脉冲,脉冲的宽度由8位的输入数据控制。

由于是8位的脉宽参数,故可以产生255种宽度的单次脉冲。

2.目的产生一个脉冲宽度可根据8位输入数据(data)可变的脉冲发生器。

可变的脉冲信号可以通过把输入的data赋值给一个count,通过对count信号做减1操作控制输出的脉冲宽度。

把data赋给count后,在key键启动的情况下,输出脉冲pulse信号开始输出低电平,count同时在每来一个时钟信号的时候做减1操作,而且pulse信号一直保持高电平,当count减为0时,把pulse信号拉低。

这样就输出了一个脉冲宽度可以根据data输入信号可变的脉冲信号。

3.使用环境(软件/硬件环境,设备等)布局布线使用的环境是Quartus II。

仿真测试使用的环境是ModelSim SE。

4.FPGA课程设计详细内容4.1 技术规范(一)、功能定义如下:本设计实现一个可编程单脉冲发生器,具体功能如下:1.异步信号复位,复位后信号输出可以重新开始。

2.把8为脉冲宽度data赋给计数信号count。

3.当有key按键使能时,输出脉冲信号,并做count减1操作,重复再按使能键无效。

4.使能按键后产生的单脉冲的上升沿与时钟取得同步。

5.当count减为0时,脉冲信号拉低。

高电平持续的宽度,即所需的脉冲宽度。

(二)、引脚定义信号名输入/输出功能描述clk Input 时钟频率50M占空比1:1。

rst_n Input 低电平有效,程序重新执行,计数器清零。

data[7:0] Input 8位控制脉冲信号的宽度。

key Input 按键控制pulse输出。

pulse Output 输出信号。

4.2 设计方案(1)系统功能描述(1)分频模块:输入为总的时钟50M,经过分频以后变为100HZ。

基于FPGA的PWM发生器的研究与设计汇总

基于FPGA的PWM发生器的研究与设计汇总

基于FPGA的PWM发生器的研究与设计摘要PWM(脉冲宽度调制)是一种利用数字信号来控制模拟电路的控制技术,广泛应用于电源、电机、伺服系统、通信系统等电力电子设备。

PWM技术在逆变电路中的应用最为广泛,也是变频技术的核心,同时在机床,液压位置控制系统等机械装置中也发挥着重要的作用。

PWM技术已经成为控制领域的一个热点,因此研究PWM发生器有十分重要的意义。

论文研究的主要内容是用任意波形作为调制信号通过特定的方法来产生所需要的PWM波形,任意波形的合成和PWM波形的生成是两个主要任务。

波形合成采用直接数字频率合成(DDS)技术来实现。

DDS技术以相位为地址,通过查找离散幅度数据进行波形合成,具有输出波形相位变化连续、分辨率高、频率转换速率快的优点,而且通过设置控制字可灵活方便地改变输出频率,是目前波形合成的主流方法。

实现PWM发生器的设计方法有多种,本文采用现场可编程门阵列(FPGA)来实现PWM波的产生。

FPGA的设计是以Altera公司的Quartus II软件为开发平台,采用VHDL语言为来完成内部各功能模块的设计输入、编译、仿真等调试工作,目标载体选用Altera公司的CycloneIII系列器件。

关键词:脉冲宽度调制;直接数字频率合成;现场可编程门阵列1.PWM发生器的现状及发展从信号的产生方法来说,工程上常见的PWM波产生方法有:1.三角波比较法三角波比较法根据三角载波与正弦调制波的交点来确定逆变器功率开关器件的开关时刻,可以由模拟电子电路、数字电子电路或专用大规模集成电路芯片等硬件实现,也可以用微型计算机通过软件生成SPWM。

2.滞环比较法该方法较多应用于电流跟踪控制。

此法的优点是硬件电路简单,属于实时控制方式,反应快,不用载波,输出中不含特定频率谐波分量。

其不足之处是检测信号的传感器必须是具有宽频带的高性能传感器3.空间电压矢量法空间电压矢量法(SVPWM)也叫磁通正弦PWM法。

它以三相对称正弦波电压供电时交流电动机的理想磁通圆为基准,用逆变器不同的开关模式所产生实际磁通去逼近基准圆磁通,由它们的比较结果决定逆变器的开关,形成PWM波形。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安邮电大学FPGA课程设计报告题目:可编程单脉冲发生器院系:通信与信息工程学院专业班级:电子信息科学与技术学生姓名:韩萌导师姓名:张丽果起止时间:2012-9-10至2012-9-222012年09月20日FPGA课程设计报告提纲1.任务根据输入的8位的脉宽参数,输出255种宽度的单次脉冲。

可编程单脉冲发生器是一种脉冲宽度可编程的信号发生器,在输入按键的控制下,产生单次的脉冲,脉冲的宽度由8位的输入数据控制。

由于是8位的脉宽参数,故可以产生255种宽度的单次脉冲。

2.目的产生一个脉冲宽度可根据8位输入数据(data)可变的脉冲发生器。

可变的脉冲信号可以通过把输入的data赋值给一个count,通过对count信号做减1操作控制输出的脉冲宽度。

把data赋给count后,在key键启动的情况下,输出脉冲pulse信号开始输出低电平,count同时在每来一个时钟信号的时候做减1操作,而且pulse信号一直保持高电平,当count减为0时,把pulse信号拉低。

这样就输出了一个脉冲宽度可以根据data输入信号可变的脉冲信号。

3.使用环境(软件/硬件环境,设备等)布局布线使用的环境是Quartus II。

仿真测试使用的环境是ModelSim SE。

4.FPGA课程设计详细内容4.1 技术规范(一)、功能定义如下:本设计实现一个可编程单脉冲发生器,具体功能如下:1.异步信号复位,复位后信号输出可以重新开始。

2.把8为脉冲宽度data赋给计数信号count。

3.当有key按键使能时,输出脉冲信号,并做count减1操作,重复再按使能键无效。

4.使能按键后产生的单脉冲的上升沿与时钟取得同步。

5.当count减为0时,脉冲信号拉低。

高电平持续的宽度,即所需的脉冲宽度。

6.产生的脉冲信号的最大宽度为255。

(二)、引脚定义4.2 设计方案(1)系统功能描述(1)分频模块:输入为总的时钟50M,经过分频以后变为100HZ。

分频模块主要是根据系统时钟,对a做加1操作,没来一个系统时钟的上升沿就对a 加1,然后与16进行比较,如果相等,则把a清0,然后分频时钟clk_1翻转,a又重新计数,接着又与16比较,相等则clk_1翻转,不等则继续加1。

如此循环,最后生成分频时钟clk_1。

(2)计数模块:脉宽参数端data接收8位的数据,经数据预置端clr装载脉宽参数,在计数允许端有效后便开始计数。

该计数器设计成为减法计数的模式,当其计数到0时,输出端pulse由高电平变为低电平。

便可得到单脉冲的输出。

②系统功能描述时序关系可编程单脉冲发生器的操作过程是:(1) 预置脉宽参数。

(2) 按下复位键,初始化系统。

(3) 按下启动键,发出单脉冲。

4.3 功能验证方案1:验证对象及目的:本验证方案将描述对“可编程单脉冲发生器”的验证。

2:在本验证过程中将验证一下内容:1>验证环境和工具:a:使用ModelSim仿真工具;b:使用Quartus II工具;2>仿真确认:a:分频模块:由于系统提供的频率为50MHz,通过控制计数a使输出频率为100HZ。

编写完成后,可通过查看仿真波形查看验证的正确性。

分析:通过对a计数输出分频后的时钟信号clk_1。

b: 计数模块:计数模块主要把输入的8位脉冲宽度data传给count,通过对count的计数与0比较判断是否相等来翻转输出的脉冲信号。

通过key键时能后,把输入信号data传给count,并输出脉冲信号pulse高电平,此后count做减1操作,当count减到0时,脉冲信号pulse输出低电平。

通过给data不同的值,会得到不同的脉冲宽度的信号。

编写好测试激励后,通过查看仿真图形可以查看验证的正确性。

分析:key为按键启动信号,当key为低电平时,把8位脉冲宽度给计数信号count并开始计数,同时输出脉冲信号高电平,当count计数为0时,脉冲pulse信号变为低电平。

c:总的仿真波形:通过传送给data不同的1、2、3、4、5、6等6个值,会得到6种不同脉冲宽度的脉冲信号,如图:Clk:系统时钟;rst_n:复位信号;key:按键启动信号;Data:脉冲宽度信号;pulse:脉冲信号;count:中间变量,计数信号;Clk_1;分频后的频率信号;a:计数信号,用于分频;4.4 电路设计源代码,功能仿真激励源代码及功能仿真结果报告1>源代码:module hm(clk,rst_n,data,pulse,key/*,load*/);input clk,rst_n,key;input [7:0] data;output pulse/*,load*/;reg [7:0] count;reg pulse;reg clk_1;reg [4:0] a;alw ays @(posedge clk or negedge rst_n)beginif(~rst_n)beginclk_1=0;a<=5'd0;endelseif(a==5'd16)a<=5'd0;clk_1=~clk_1;endelsea<=a+5'd1;endalw ays @(posedge clk_1 or negedge rst_n)beginif(~rst_n)begincount<=0;pulse<=0;endelsecount<=data;if(key==0)beginpulse<=1;count<=count-8'd1;if(count==8'd0)beginpulse<=0;count<=8'd0;if(pulse==0)begincount<=data;endendendendmodule2>测试激励:module test;reg clk;reg rst_n;reg key;reg [7:0] data;wire pulse;always #1 clk=~clk;hm hm(.clk(clk),.rst_n(rst_n),.data(data),.pulse(pulse),.key(key)/*,.load(load)*/);initialbeginclk<=0;rst_n<=0;key<=1;data<=0;#1 rst_n<=1;#1 data<=8'd1;#1 key<=0;#200 key<=1;#1 key<=0;#1 data<=8'd2;#200 key<=1;#1 key<=0;#1 data<=8'd3;#400 key<=1;#1 key<=0;#1 data<=8'd4;#1 key<=0;#1 data<=8'd5;#100 key<=1;#1 key<=0;#1 data<=8'd6;endendmodule3>仿真结果:详细仿真图如下:从图中可以详细的看出输入data为1个脉冲宽度的情况。

全局的仿真图:从这个图中可以看出脉冲宽度为1、2、3、4、5、6的6个脉冲宽度。

4.5 综合及布局布线报告和引脚分布报告1>:综合,利用Quartus II软件综合后的结果如下图:2>:布局布线:3>:电路结构:4>:引脚定义:4.6 后仿真结果报告加入网表文件的后仿真的结果如图:后仿真所得到的信号图:4.7 硬件测试结果报告因为设备有限,所以,未能完成对硬件的测试。

4.8 对结果和结论的问题讨论自己所做的这个题目相对是比较简单的,刚开始做的时候只用到了一个计数的模块,并没有加入分频模块,但是最后做完之后感觉这样的话会不会太简单,所以在此基础上又加入了分频模块。

从仿真图中可以看出会有几点问题:1>:如果想要根据输入的脉冲宽度data输出特定的脉冲宽度的信号,就必须在输入data数据后,用key按键启动输出信号,其中key键必须全程都按下,否则对输出的脉冲宽度会产生影响。

2>:如果想要往开发板上下载的话,程序还要进行改进:a:因为按键的按下和松开都会有不稳定的状态,所以要加入按键去抖;b:针对第一个问题,要做出一定的改进,我的想法是加入一个状态变量,记录key键按下时的状态,用这个状态变量驱动脉冲的输出。

3>:data数据的读入会有一定的延时,所以要加入模块用来等待data信号全部读入。

5.课程设计的心得体会通过本次为时两周的FPGA课程设计,让我更深的认识到了基于FPGA的开发流程。

从最开始的技术规范开始,到最后的下载到板子上测试,每一步都十分的重要。

这次课设,自己做的题目是“可编程单脉冲发生器”,对于这个题目,刚开始脑子里的想法就是,这个可变的脉冲信号可以通过把输入的data赋值给一个count,通过对count信号做减1操作控制输出的脉冲宽度。

把data赋给count后,在key键启动的情况下,输出脉冲pulse信号开始输出低电平,count同时在每来一个时钟信号的时候做减1操作,而且pulse信号一直保持高电平,当count减为0时,把pulse信号拉低。

这样就输出了一个脉冲宽度可以根据data 输入信号可变的脉冲信号。

基于这个想法,我开始了我这次课设的旅程。

这个想法在课设开始第二天的时候就实现了,那基于对自己的严格要求,自己对这个题目在原先只有技术模块的基础上又加入了分频模块。

其实分频模块的原理和最开始实现脉冲的原理有异曲同工之处。

所以这个模块也很快就实现了。

接下来的时间,我又相继的做了其它的一些题目,包括:“简易的LED流水灯”、“CRC 校验”、“出租车计价器”等几个题目,也逐步的实现了题目的要求。

通过这次课程设计,我从中学习到了很多基于书本上的理论知识加以实践的经验,也在其中遇到问题的同时对问题的解决加深了对某些问题的理解。

总之,每次的课程设计都受益颇深。

6.参考资料等《基于V erilog的FPGA设计基础》——杜慧敏、李宥谋、赵全良编著西安电子科技大学出版社《V erilog HDL数字电路设计与综合》——(美)Samir Palnitkar著——夏宇闻、胡燕祥等译电子工业出版社西安邮电学院电子工程学院FPGA课程设计过程考核表西安邮电学院电子工程学院FPGA课程设计成绩鉴定表。

相关文档
最新文档