基于fpga的单脉冲发生器_第1页
基于fpga的单脉冲发生器_第2页
基于fpga的单脉冲发生器_第3页
基于fpga的单脉冲发生器_第4页
基于fpga的单脉冲发生器_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

出为TTL电平。在输入按键的控制下,产生单次的脉冲,脉冲的宽度由8位的输入数据控制(以下称之为脉宽参数)。由于是8位的脉宽参数,故可以产生255种宽度的单次脉冲。序号阶段名称时间安排地点或条件1布置设计题目第一周周一电科实验室2技术规范制订周一周二电科实验室3总体方案设计周三周四电科实验室4详细方案设计周五电科实验室5电路设计第二周周一周二电科实验室6仿真验证周三电科实验室7综合布局布线周四电科实验室8后仿真周四电科实验室9下载实现周五电科实验室总结撰写报告电科实验室单次的脉冲pulse,脉冲的宽度由data8位的输入数据控制(以下称(1)分频模块:输入为总的时钟50M,经过分频以后变为100HZ。(2)延时模块:当clk为高电平且在复位延时5个始终周期后输出一个高电平load。(3)计数模块:脉宽参数端data接受8位的数据,经数据预置端clr装时间后灯开始亮,亮一段时间后灯熄灭。延时模块的时序图如下:根据时序关系,可以做出图所示的流程图。开始计数器减一计数器分频模块的代码:reg[31:0]a=32‘d0;//定义内部寄存器并赋初值begina<=32'd0;//计数器记到了500000清零。elsea<=a+1;//计数器没有记到了500000自加。endmodule//结束分频模块。分频模块的仿真结果:在验证的时候设计了一个8分频。有波形图可以看出clk50M经过8个周期后clk取反,实现了8分频,验证了自己的设计。②延时模块的设计:inputclk,clr;//输入端口的定义。always@(posedgeclkornegedgeclr)beginload<=0;else//当clr为高电平时计数器减counta<=counta-8'd1;begincounta<=8'd0:load<=1;//输出load为高。延时模块的仿真结果:从波形图可以看出当clr为高电平,且时钟的上升沿到来的时候,延时5个时钟周期后输出load为高电平。regpulse;//输出定义为reg类型。always@(posedgeclkornegedgeclr)pulse<=1;//输出为高电平。if(count==8'dO)//当计数器减到零的时候。beginend//endbeginend//endbeginend//endalwaysendmodule//结束计数模块。计数模块的仿真结果:000H0P/rimptssthwavtt000H0Pconmpe.hh=43t生上图为可编程单脉冲发生器的逻辑仿真结果。由仿真结果可以看出,单脉冲输出的持续时间(脉冲宽度)由输入的脉宽参数data决定。2.仿真激励源代码:moduleconfirmpulsetb;//仿真模块名字的定义。,regclk_50M,key,clr;//输入的时钟,按键,清零。always#10clk50M=~clk50M;//时钟周期。beginbegin$monitor($time,,,"clk50M=%d,clr=%d,data=%d,key=%d,pulse=%d\n",clk50M,clr,data,key,pulse):moduleconfirmpulse(clk50M,data,clr,key,pulse);outputpulse;//脉宽的输u2(.clk(clk),.data(data),.clr(clr),.load(load),.pulse(pulse),.key(key));//begina<=32'd0;//计数器记到了500000清零。reg[2:0]counta;//延时计数器。if(!clr)//当clr为低电平时load<=0;else//当clr为高电平时计数器减一。begincounta<=counta-8'd1;if(counta==8'd0)//计数器减到零时,进行复位输出load为高begincounta<=8'd0;load<=1;//输出load为高。modulecount(clk,data,clr,load,pulse,key);//模块名定义。input[7:0]data;//maikuandedingyiregpulse;//输出定义为reg类型。reg[7:0]count;//计数器的定义。always@(posedgeclkornegcount<=count-8'd1;//计数器减一。if(count==8'd0)//当计数器减到零的时候。beginpulse<=0;//输出为低电平。endmodule//结束计数模块。下图为可编程单脉冲发生器的逻辑仿真结果。由仿真结果可以看出,单脉冲输出的持续时间(脉冲宽度)由输入的脉宽参数data决定。功能仿真符合设计规范。七、综合与布局布线报告综合工具采用的是Altera公司的QuartusⅡ6.0。综合的结果如下:言言clk50Midata7pulseTlowTlowSummaryRevisionNameTop-levelEntityNameFamilyTimingModelsMettimingrequiremTotalvirtualpinsTotalmemorybitsSuccessful-SunJan0confirmpulseCycloneIIEP2C5T144C899/4,608(2%)0/26(0%)0%)koiHkeWmtck.5NietWamAwmueWmleImueeNnieWm-wimutetWmNEor⁴2AahmytebWen/4.TV-crtakoHmNm16H*23koHmNm16H*23lmuetWm/d在设计过程中,经过验证与思考,在设计的时候需要加上一个延时模块,延时模块起了消抖的作用,如果不加延时模块输出的结果和通过这次课程设计,我真正认识了FPGA的设计流程,熟悉了Verilog的程序设计,并让我有机会把理论与实际相结合,掌握了宝贵的实践经验。这是我第一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论