ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:261KB ,
资源ID:11895343      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11895343.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于FPGA的单脉冲发生器.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于FPGA的单脉冲发生器.doc

1、 一、设计报告: 1.技术规范: 在clr的控制下置入脉宽data,在输入按键key的控制下,产生单次的脉冲pulse,脉冲的宽度由data 8位的输入数据控制(以下称之为脉宽参数)。clk_50M为系统的时钟。 2.总体设计方案: ①系统功能描述: (1)分频模块:输入为总的时钟50M,经过分频以后变为100HZ。 (2)延时模块:当clk为高电平且在复位脉冲clr有效时置入延时脉宽,延时5个始终周期后输出一个高电平load 。 (3)计数模块:脉宽参数端data接受8位的数据,经数据预置端clr装载脉宽参数,在计数允许端有效后便开始计数。该计数器设计成为减法计数的模式,

2、当其计数到0时,输出端pulse由高电平变为低电平。便可得到单脉冲的输出。 ②系统功能描述时序关系: 可编程单脉冲发生器的操作过程是: (1) 预置脉宽参数。 (2) 按下复位键,初始化系统。 (3) 按下启动键,发出单脉冲。   以上三步可用三个按键来完成。但是,由于目标板已确定,故考虑在复位键按下后,经过延时自动产生预置脉宽参数的动作。输出的信号加到灯上,输如的脉宽有开发版上的拨码开关决定,当输入脉宽后,按下复位键置入脉宽,然后按下启动键,发出单脉冲,延时一段时间后灯开始亮,亮一段时间后灯熄灭。延时模块的时序图如下: clk clr load 3.流程图的设计

3、   根据时序关系,可以做出图所示的流程图。   在系统复位后,经一定的延时产生一个预置脉冲load,用来预置脉宽参数。当按键key有效后产生脉冲pulse。    开始 系统复位 延时 启动计数器 预置脉宽 计数器结束? 产生单脉冲 结束 计数器减一 二、验证方案: 1.验证方案的设计: ①分频模块的设计: 分频模块的代码: module div(clk_50M,clk);//模块名及端口的定义,到endmodule。 input clk_50M;//输入端口的定义。 output clk;//输出端口的定义。 reg [31:0]

4、 a=32‘d0;//定义内部寄存器并赋初值。 reg clk=0;//给输出赋初值。 always@(posedge clk_50M) begin if(a==32'd500000)//判断计数器是不是记到了500000 begin a<=32'd0;// 计数器记到了500000清零。 clk=~clk; // 输出脉冲取反 end// 结束。 else a<=a+1;// 计数器没有记到了500000自加。 end//结束always块。 endmodule//结束分频模块。 分频模块的仿真结果: 在验证的时候设计了一个8分频。

5、 有波形图可以看出clk_50M经过8个周期后clk取反,实现了8分频,验证了自己的设计。 ②延时模块的设计: 延时模块的代码: module dely(clk,clr,load); //模块名及端口的定义,endmodule。 input clk,clr; //输入端口的定义。 output load; //输出端口的定义。 reg [2:0] counta; //延时计数器。 reg load;//输出。 always@(posedge clk or negedge clr) begin if(!clr) // 当clr为低电平时 begin

6、 counta<=5;//清零。 load<=0; end//结束清零。 else // 当clr为高电平时计数器减一。 begin counta<=counta-8'd1; if(counta==8'd0)//计数器减到零时,进行复位输出load为高 begin counta<=8'd0; load<=1;// 输出load为高。 end end end endmodule //结束延时模块。 延时模块的仿真结果: 从波形图可以看出当clr为高电平,且时钟的上升沿到

7、来的时候,延时5个时钟周期后输出load为高电平。 ③计数模块的设计: 计数模块代码: module count(clk,data,clr,load,pulse,key);//模块名定义。 input clk,clr,load,key;//输入端口的定义。 input[7:0] data;// mai kuan de ding yi output pulse;//输出的定义。 reg pulse;//输出定义为reg类型。 reg [7:0] count;// 计数器的定义。 always@(posedge clk or negedge clr) begin if

8、clr)//低电平复位。 begin count<=data;//置入脉宽。 pulse<=0;//输出为零。 end else if(load==1)//load有效的时候。 begin if(key==0)//当有按键按下的时候。 begin count<=count-8'd1;//计数器减一。 pulse<=1;//输出为高电平。 if(count==8'd0)//当计数器减到零的时候。 begin count<=8'd0; pulse<=0;//输出为低电平。 e

9、nd// end begin end//end begin end//end begin end//end always endmodule//结束计数模块。 上图为可编程单脉冲发生器的逻辑仿真结果。由仿真结果可以看出,单脉冲输出的持续时间(脉冲宽度)由输入的脉宽参数data决定。 2.仿真激励源代码: `timescale 1ns/100ps module confirmpulse_tb;//仿真模块名字的定义。, reg [7:0] data;// 输入的脉宽。 reg clk_50M,key,clr;//输入的时钟,按键,清零。 wire pulse;//输

10、出。 always #10 clk_50M=~clk_50M;//时钟周期。 initial begin clk_50M=0;clr=0;key=1;data=8'd10; //赋初值。 #10 clr=1;key=0; #10000 $finish;//结束仿真。 end initial// 监控。 begin $monitor($time,,,"clk_50M=%d,clr=%d,data=%d,key=%d,pulse=%d\n" ,clk_50M,clr,data,key,pulse); end confirmpulse //实

11、例化。wsm(.key(key),.clk_50M(clk_50M),.data(data),.clr(clr),.pulse(pulse)); endmodule//激励模块结束。 五、电路设计源代码: /*顶层模块*/ module confirmpulse(clk_50M,data,clr,key,pulse); input [7:0] data;//脉宽的定义。 input clk_50M,key,clr;// key是发脉冲的信号,clr为清零信号。 output pulse;//脉宽的输出。 wire load;//中间变量的定义。 wire clk;

12、div div(.clk_50M(clk_50M),.clk(clk));//实例化。 dely u1(.clk(clk),.clr(clr),.load(load));// 实例化。 count u2(.clk(clk),.data(data),.clr(clr),.load(load),.pulse(pulse),.key(key));// 实例化。 Endmodule//结束顶层模块。 /*分频模块*/ module div(clk_50M,clk);//模块名及端口的定义,到endmodule。 input clk_50M;//输入端口的定义。 out

13、put clk;//输出端口的定义。 reg [31:0] a=32‘d0;//定义内部寄存器并赋初值。 reg clk=0;//给输出赋初值。 always@(posedge clk_50M) begin if(a==32'd500000)//判断计数器是不是记到了500000 begin a<=32'd0;// 计数器记到了500000清零。 clk=~clk; // 输出脉冲取反 end// 结束。 else a<=a+1;// 计数器没有记到了500000自加。 end//结束always块。 endmodule//结束分频模块。 /*延时

14、模块*/ module dely(clk,clr,load); //模块名及端口的定义,endmodule。 input clk,clr; //输入端口的定义。 output load; //输出端口的定义。 reg [2:0] counta; //延时计数器。 reg load;//输出。 always@(posedge clk or negedge clr) begin if(!clr) // 当clr为低电平时 begin counta<=5;//清零。 load<=0; end//结束清零。 else // 当c

15、lr为高电平时计数器减一。 begin counta<=counta-8'd1; if(counta==8'd0)//计数器减到零时,进行复位输出load为高 begin counta<=8'd0; load<=1;// 输出load为高。 end end end endmodule //结束延时模块。 /*计数模块*/ module count(clk,data,clr,load,pulse,key);//模块名定义。 input clk,clr,load,key;//输入端口的定义。 input[7:0] da

16、ta;// mai kuan de ding yi output pulse;//输出的定义。 reg pulse;//输出定义为reg类型。 reg [7:0] count;// 计数器的定义。 always@(posedge clk or negedge clr) begin if(!clr)//低电平复位。 begin count<=data;//置入脉宽。 pulse<=0;//输出为零。 end else if(load==1)//load有效的时候。 begin if(key==0)//当有按键按下的时候。 begin

17、 count<=count-8'd1;//计数器减一。 pulse<=1;//输出为高电平。 if(count==8'd0)//当计数器减到零的时候。 begin count<=8'd0; pulse<=0;//输出为低电平。 end// end begin end//end begin end//end begin end//end always endmodule//结束计数模块。 六、综合与布局布线报告 1.综合的结果: 综合工具采用的是Altera公司的Quartus II 6.0。综合的结果如下: 九、结论及讨论: 在设计过程中,经过验证与思考,在设计的时候需要加上一个延时模块,延时模块起了消抖的作用,如果不加延时模块输出的结果和不稳定。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服