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

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

ID:25525595

大小:525.00 KB

页数:15页

时间:2018-11-20

基于FPGA的单脉冲发生器.doc_第1页
基于FPGA的单脉冲发生器.doc_第2页
基于FPGA的单脉冲发生器.doc_第3页
基于FPGA的单脉冲发生器.doc_第4页
基于FPGA的单脉冲发生器.doc_第5页
资源描述:

《基于FPGA的单脉冲发生器.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、西安邮电学院FPGA硬件课程设计报告题目:可编程的单脉冲发生器系部专业:计算机系微电子班级:微电子0603学生姓名:李欢乐学号:04064081导师姓名:刘镇弢起止时间:09年6月15日至09年6月26日09年6月26日一、选题说明:可编程单脉冲发生器是一种脉冲宽度可编程的信号发生器,其输出为TTL电平。在输入按键的控制下,产生单次的脉冲,脉冲的宽度由8位的输入数据控制(以下称之为脉宽参数)。由于是8位的脉宽参数,故可以产生255种宽度的单次脉冲。二、工作安排:序号阶段名称时间安排地点或条件1布置设计题目第一周周一电科实验室2技术规范制订周一周

2、二电科实验室3总体方案设计周三周四电科实验室4详细方案设计周五电科实验室5电路设计第二周周一周二电科实验室6仿真验证周三电科实验室7综合布局布线周四电科实验室8后仿真周四电科实验室9下载实现周五电科实验室10总结撰写报告电科实验室三、设计报告:1.技术规范:在clr的控制下置入脉宽data,在输入按键key的控制下,产生单次的脉冲pulse,脉冲的宽度由data8位的输入数据控制(以下称之为脉宽参数)。clk_50M为系统的时钟。2.总体设计方案:①系统功能描述:(1)分频模块:输入为总的时钟50M,经过分频以后变为100HZ。(2)延时模块:

3、当clk为高电平且在复位脉冲clr有效时置入延时脉宽,延时5个始终周期后输出一个高电平load。(3)计数模块:脉宽参数端data接受8位的数据,经数据预置端clr装载脉宽参数,在计数允许端有效后便开始计数。该计数器设计成为减法计数的模式,当其计数到0时,输出端pulse由高电平变为低电平。便可得到单脉冲的输出。②系统功能描述时序关系:可编程单脉冲发生器的操作过程是:(1)预置脉宽参数。(2)按下复位键,初始化系统。(3)按下启动键,发出单脉冲。  以上三步可用三个按键来完成。但是,由于目标板已确定,故考虑在复位键按下后,经过延时自动产生预置脉

4、宽参数的动作。输出的信号加到灯上,输如的脉宽有开发版上的拨码开关决定,当输入脉宽后,按下复位键置入脉宽,然后按下启动键,发出单脉冲,延时一段时间后灯开始亮,亮一段时间后灯熄灭。延时模块的时序图如下:clkclrload3.流程图的设计:  根据时序关系,可以做出图所示的流程图。  在系统复位后,经一定的延时产生一个预置脉冲load,用来预置脉宽参数。当按键key有效后产生脉冲pulse。  开始系统复位延时启动计数器预置脉宽计数器结束?产生单脉冲结束计数器减一四、验证方案:1.验证方案的设计:①分频模块的设计:分频模块的代码:modulediv

5、(clk_50M,clk);//模块名及端口的定义,到endmodule。inputclk_50M;//输入端口的定义。outputclk;//输出端口的定义。reg[31:0]a=32‘d0;//定义内部寄存器并赋初值。regclk=0;//给输出赋初值。always@(posedgeclk_50M)beginif(a==32'd500000)//判断计数器是不是记到了500000begina<=32'd0;//计数器记到了500000清零。clk=~clk;//输出脉冲取反end//结束。elsea<=a+1;//计数器没有记到了50000

6、0自加。end//结束always块。endmodule//结束分频模块。分频模块的仿真结果:在验证的时候设计了一个8分频。有波形图可以看出clk_50M经过8个周期后clk取反,实现了8分频,验证了自己的设计。②延时模块的设计:延时模块的代码:moduledely(clk,clr,load);//模块名及端口的定义,endmodule。inputclk,clr;//输入端口的定义。outputload;//输出端口的定义。reg[2:0]counta;//延时计数器。regload;//输出。always@(posedgeclkorneged

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

8、。③计数模块的设计:计数模块代码:modulecount(clk,data,clr,load,pulse,key);//模块名定义。inputclk,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。