欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    EDA技术与应用实训报告.doc

    • 资源ID:13595837       资源大小:506KB        全文页数:18页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA技术与应用实训报告.doc

    桂林电子科技大学信息科技学院EDA技术及应用实训报告学号 1252100301姓名指导教师:覃琴2014年4月29 日实训题目:数字日历电路1 系统设计1.1 设计要求1.1.1 设计任务(1 )用Verilog HDL 语言设计出能够在 EDA实训仪的I/O设备和PLD芯片实现的数字 日历。( 2)数字日历能够显示年、月、日、时、分和秒。(3) 用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在 一定时间段内显示年、月、日(如 20140101),然后在另一时间段内显示时、分、秒(如 010101099),两个时间段能自动倒换。(4) 数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个 按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时。( 5)体现创新部分1.1.2 性能指标要求1 )数字电路能够在一定的时间内显示切换的功能,并且能手动校准年月日和时分秒2 )具有复位和进位的功能3 )能起到提示的作用,如闹钟或亮彩灯等。1.2 设计思路及设计框图1.2.1 设计思路如图 所示1 ) EDA实训箱上的功能有限,可以用到的有8支数码管和12个1ED灯。年、月、日和时、 分、 秒可以通过数码管显示, 年月日和时分秒的切换可以通过拨动开关控制,校正可 以通过按键实现。2 )输入的秒脉冲由 DEA实训仪上的20MHZ晶振经过分频得到, 秒脉冲经过60分频后产生 1分钟脉冲信号,在经过 60分频后产生 1 小时的脉冲信号,最后进行 24分频,得到 1天的 脉冲送 24进制的 cout 输出。在将两个 60 分频和一个 24 分频的输出送到送到数码管的译 码器输入端,得到 24小时的计时显示结果。由此得到数字日历的计时器模块。1.2.2设计框图20MHZ 晶振显示器显示器显示器二十四进制 计数器(时)输 入 电 路校时电路图1.2.2数字钟的原理框图2各个模块程序的设计2.1图1 1HZ秒脉冲的分频模块元件符号2.1输入的秒脉冲由EDA实训仪上的20MHZ晶振经过分频得到,设计一个输出频率为1HZ的秒脉冲。图1是1HZ秒脉冲的分频模块元件符号图1 1HZ秒脉冲的分频模块元件符号2.2图2是cnt24与cnt60模块设计的元件符号 J I Hfl- « I 9V-FB W ! !>*! IB *1*I » -II H I! g-V k cnt2414 " V ! *«! ! ma « I I IB 、.-cnt60elk q7.0clrn coutelk q7.0elm cout.i inst7图2 cnt24 与cnt60模块的元件符号2.3图3是计时器设计原理图elk秒时钟输入端,clrn清除输入端,低电平有效;校时的输入端,下降沿有效;qm7.O、qf7.0和端;cout是"天”脉冲输出端。inst8jm、jf 、js分别是校秒、校分和qs7.O分别是秒、分、和时的输出2.4数字日历电路的设计数字电路原理图包括包括计时器模块(jsq )、年月日模块(nyr2014 )、控制模块(cour )、校时选择模块(xs_6 )、显示选择模块(mux_16)和流水灯(LED)提示模块。图4是数字日 历设计的原理图。图4是数字日历设计的原理图2.5控制模块的设计图5是控制模块的元件符号JCOntruLelkkrKI k2inst2r图5控制模块的元件符号elk 是1s时钟输入端;k1和k2是控制输入端,k是控制输出端。k1k2=00或11时是自动 显示模块,控制数码器用 8s钟时间显示年月日8s显示时分秒,k1k2=01时仅控制显示时分 秒,同时用j1、j2、j3校秒、校分和校时,k1k2=10时,仅显示年、月、日,同时用 j1、 j2、j3校年、校月和校日。2.6校时选择模块的设计校时选择模块的元件符号如图 6所示。k是控制输入端,k=0是,控制将校时按钮j1、j2 和j3的信号分别分别送到计时器模块的 jm、jf、js,k=1时校时按钮j1、j2、j3的信号分 别送到年月日模块的jr、jy、jn。i » <X6_0kjmj1Jfj2isJ3jriy)ninstG图6校时选择模块的元件符号2.7显示选择模块控制将计时器模块送来的k=1时将年月日送来的图7是显示选择模块的元件符号。k是控制输入端,K=0时,qm7.O、qf7.O、和qs7.O状态信号送到数码管显示。qr7.O、qy7.O、qn7.0状态信号送到数码管显示。mux_16kq31.O1qm7.O|1qf|7 0taqs7 .0iqr7 -0qa1 qyIT-QI:aI-qn15.OI inst4图7显示选择模块的元件符号2.8流水灯提示模块的设计K是控制输入端,qy7.0是输出的流水灯图8是流水灯提示模块的元件符号。elk是一秒钟输入端,(月八qr7.O(日)是状态信号送到数码管显示。qo11.0czbf口-elk |q11.0kqo11.01 q 亿 0i nrf7 Al图 8 流水灯提示模块的元件符号3 调试过程 当数字日历得所有模块编译成功后我首次下载到实训箱上时, 它并不能实现 进位的功能, 经调整。数字日历的各基本功能通实现后, 在其基础上新增了彩灯 控制模块。 经过逐条编写和更正。 程序最终通过编译并能顺利下载到实训箱上进 行验证。4 功能测试4.1 测试仪器与设备EDA 实训箱4.2 性能指标测试当所设定的生日到时流水灯能顺利的实现该提示功能, 不过自动显示模块还 是没能很准确的进行累加,该功能的延时时间超出了设计的时间。5 实训心得体会从陌生到熟悉,我基本上的摸清了 QuartusII9.0 的用法。并逐渐掌握 了 verilog HDL 语言的规则。并能编写简单的程序。经过查找资料和各个老 师的耐心指导。我完成了数字日历电路的设计。不仅添加了创新部分,还在 EDA实训仪上成功实现了它的彩灯旋转功能。并用一个拨动开关来控制灯的 亮灭。记得刚开始拿到实训课题时,我那一脸的茫然,不知从哪儿入手。来 回跑了图书馆好几趟,最后跟着舍友起步。从编写代码开始,经编译后逐个 查找错误并纠正。 几番波折,最终完成了数字日历的设计和添加了创新功能。通过此次EDA实训我熟练的掌握了 Quartusll9.0软件,并能通过波形仿 真更加透彻的掌握了程序与该设计。 从编程到生成元器件再到波形仿真和成功下 载,给我的最大体会是一步一个脚印,付出总会有回报的。6 参考文献【1】EDA技术与应用江国强【2】EDA技术与verilog 设计 王金明 冷自强附录附录1:仿真波形图(部分模块)cnt24模块仿真波形图I A*灯Hg. plWm-Ibt T neBarfl piMi 4B J¥11IkIf I LJEJN* JMt iBlit何K oeiMlN iMTqC5N ia fl 1L<JIE I5nUO* 'MIDr iCfl11问 Ia imLV ldrIIIrI1 nooi««l'i JI mi Il 3| W5±n±-:.n n Ln. n .n. r Ln. n .n.l jn. m 厂nyr模块仿真波形图附录 2: 程序清单2.1 分频器模块 module s_1 ( clk,cout); input clk;reg 24:0 q;output reg cout;always (posedge clk)beginif (q=20000000-1) q=0; /1s else q=q+1;if(q<=10000000-1) cout=1; /0.5s else cout=0;endEndmodule2.2 cnt24 计数器源程序module cnt24(clk,clrn,j,q,cout); /elk秒时钟输入端,clrn 清除输入端,cout "天”脉冲输出端input clk,clrn,j;/j校时输入端,output reg 7:0 q;output reg cout;always (posedge clkAj or negedge clrn) /j与时钟输入端 clk 异或就可以达到校时的作用beginif (clrn) q=0;/低电平有效else beginif (q='h23) q=0;else q=q+1;if (q3:0='ha) beginq3:0=0; q7:4=q7:4+1; endif (q='h23) cout=1;else cout=0;endendendmodule2.3 cnt60 计数器源程序module cnt60(clk,clrn,j,q,cout);input clk,clrn,j;output reg 7:0 q;output reg cout;always (posedge clkAj or n egedge clrn) beginif (clrn) q=0;else beginif (q='h59) q=0;else q=q+1;if (q3:0='ha) beginq3:0=0; q7:4=q7:4+1; endif (q='h59) cout=1;else cout=0;endendendmodule2.4 年月日模块module nyr2014(clrn,clk,jn,jy,jr,qn,qy,qr);input clrn,clk,jn,jy,jr;output 15:0 qn;output 7:0qy,qr;reg 15:0 qn;reg7:0 qy,qr;regclkn,clky;reg7:0 date;reg clkn1, clkn2 , clkn3;initial begin clkn1=1; clkn2=2 ; clkn3=1;endinitial begin qn='h2000;qy=1;qr=1;endalways (posedge (clkAjr) or n egedge clrn) begin if (clrn) qr=1;else beginif (qr=date) qr=1;else qr=qr+1;if (qr3:0='ha) beginqr3:0=0; qr7:4=qr7:4+1; endif (qr=date) clky=1;else clky=0;endendalways (posedge clkyAjy or negedge clrn) beginif (clrn) qy=1;else beginif (qy='h12) qy=1;else qy=qy+1;if (qy3:0='ha) beginqy3:0=0; qy7:4=qy7:4+1; endif (qy='h12) clkn=1;else clkn=0;endendalwaysbegincase(qy)'h01: date='h31;'h02: beginif (qn/4=0)&(qn/100!=0)|(qn/400=0) date='h29;else date='h28;end'h03: date='h31;'h04:date='h30;'h05:date='h31;'h06:date='h30;'h07:date='h31;'h08:date='h31;'h09:date='h30;'h10:date='h31;'h11:date='h30;'h12:date='h31;default :date='h30;endcaseendalways (posedge (elk njn) or n egedge clrn) beginif (clrn) qn3:0=0;else begin if (qn3:0=9) qn3:0=0;else qn3:0= qn3:0+1;if (qn3:0=9) clkn1=0;else clkn1=1;endendalways (posedge clkn1 or negedge clrn) beginif (clrn) qn7:4=0;else begin if (qn7:4=9) qn7:4=0;else qn7:4=qn7:4+1;if (qn7:4=9) clkn2=0;else clkn2=1;endendalways (posedge clkn2 or negedge clrn) beginif (clrn) qn11:8=0;else begin if (qn11:8=9) qn11:8=0; else qn11:8= qn11:8+1;if (qn7:4=9) clkn3=0;else clkn3=1;endendalways (posedge clkn3 or negedge clrn) beginif (clrn) qn15:12=2;else if (qn15:12=9) qn15:12=0;else qn15:12= qn15:12+1;endEndmodule2.5 校时选择模块module xs_6(k,jm,jf,js,jr,jy,jn,j1,j2,j3); /k input k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;alwaysBeginif (k=0) jm,jf,js=j1,j2,j3;/k=0 别送到计时器模块的 jm、 jf else jr,jy,jn=j1,j2,j3;/k=1 模块的 jr 、jy 、 jn是控制输入端是,控制将校时按钮 j1、j2 和 j3 的信号分别分时校时按钮 j1 、j2 、j3 的信号分别送到年月日endEndmodule2.6 显示选择模块的设计module mux_16(k,qm,qf,qs,qr,qy,qn,q);input k; /k qn 状态信号送到数码管显示 input7:0 qm,qf,qs,qr,qy; input15:0 qn;output reg 31:0 q; alwaysbeginif(k=0) beginq31:24=0; q23:0=qs,qf,qm;end else q=qn,qy,qr;endendmodule是控制输入端, k=1 时将年月日送来的 qr 、 qy、2.7 控制模块源程序module contr(clk,k1,k2,k); /clkinput clk,k1,k2;output reg k;/kreg3:0 qc;reg rc;always (posedge clk)beginqc=qc+1;if (qc<8)rc=0;else rc=1;case(k1,k2)0:k=rc;/k1k2=00间显示年月日 8s显示时分秒1:k=0;/k1k2=01校分和校时2:k=1;/k1k2=10年、校月和校日3:k=rc;/11是 1s 时钟输入端 ;k1 和 k2 是控制输入端是控制输出端或 11 时是自动显示模块, 控制数码器用 8s 钟时时仅控制显示时分秒,同时用 j1 、j2 、j3 校秒、时,仅显示年、月、日,同时用 j1、j2 、j3 校endcase endendmodule8s 为低/ 在控制模块中使用了一个 16 分频电路,输出 rc 时 16s 的方波,即 8s 为高电平、 电平用于万年历的自动倒换模式。2.8 生日彩灯模块 module czbf (clk,k,qy,qr,q,qo);input clk,k;input 7:0 qy,qr;output reg 11:0 q, qo;reg s,qs,clkn;reg24:0 qq;reg6:0 qss;initial q=5;always ( posedge clk)begin if (qq=2000000-1) qq=0; else qq=qq+1;if (qq=2000000-1) clkn=1; else clkn=0;endalways (posedge clkn)beginif (s) begin qs=q11; q=q<<1;q0=qs;endelse begin qs=q0; q=q>>1;q11=qs;end endalways (posedge clkn)beginqss=qss+1;if (qss<63) s=0; else s=1;endalwaysbegin if (qy='h05&qr='h13&k) qo=q;else qo=0;enden dmodule/当数码管上的月日与某生日相同时,流水灯相继左右旋转。此时可通用拨动开关K控制流水灯的亮灭。

    注意事项

    本文(EDA技术与应用实训报告.doc)为本站会员(scccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开