欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    EDA课程设计报告模板.doc

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

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

    EDA课程设计报告模板.doc

    湖北大学物电学院EDA课程设计报告(论文)题目:多功能数字钟设计专业班级: 14微电子科学与工程姓 名: 黄山 时 间: 2016年12月20日 指导教师: 万美琳 卢仕 完成日期: 2015年 12月 20日多功能数字钟设计任务书1 设计目的与要求了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解2设计内容1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开;2,能用按键调时调分;3,能整点报时,到达整点时,蜂鸣器响一秒;4,拓展功能:秒表,闹钟,闹钟可调3编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。4答辩在规定时间内,完成叙述并回答问题。 目录 (四号仿宋_GB2312加粗居中)(空一行)1 引言 12 总体设计方案 12.1 设计思路 12.2总体设计框图 23设计原理分析 33.1分频器 43.2计时器和时间调节.43.3秒表模块53.4状态机模块63.5数码管显示模块73.6顶层模块83.7管脚绑定和顶层原理图94 总结与体会 11多功能电子表摘要: 本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分秒清零,时间保持和整点报时等多种基本功能关键词: Verilog语言, 多功能数字钟,数码管显示;1 引言 QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然2 总体设计方案2.1 设计思路 根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。这些模块在顶层原理图中相互连接作用蜂鸣器计时器2.2 总体设计框图分频器数码管状态机晶振秒表3 设计原理分析3.1 分频器 分频模块:将20Mhz晶振分频为1hz,100hz,1000hz分别用于计数模块,秒表模块,状态机模块module oclk(CLK,oclk,rst,clk_10,clk_100); input CLK,rst; output oclk,clk_10,clk_100; reg 32:0cnt,cnt1,cnt2; reg oclk,clk_10,clk_100; always(posedge CLK or negedge rst)beginif(!rst)begincnt<=0;oclk<=0;endelse if(cnt<10000-1)cnt<=cnt+1;else begincnt<=0;oclk=oclk;endendalways(posedge CLK or negedge rst)beginif(!rst)begincnt1<=0;clk_10<=0;endelseif(cnt1<=10000000-1)cnt1<=cnt1+1;elsebegincnt1<=0; clk_10<=clk_10;endendalways(posedge CLK or negedge rst)beginif(!rst)begincnt2<=0;clk_100<=0;endelse if(cnt2<100000-1)cnt2<=cnt2+1;else begincnt2<=0;clk_100=clk_100;endendendmodule3.2计时器和时间调节 计时模块:检测posedge clk_10 并进行计数,同时能调时调分,最后是整点报时部分 module cni(clk_10,rst,tiaoshi,tiaofen,ge,shi,bai,qian,wan,shiwan,bee); input clk_10,rst,tiaoshi,tiaofen; output reg3:0ge,shi,bai,qian,wan,shiwan,bee; always(posedge clk_10 or negedge rst) beginif(!rst)beginge<=0;shi<=0;bai<=0;qian<=0;wan<=0;shiwan<=0; end elsebeginif(!tiaofen)&&(bai<9)bai<=bai+1;else begin if(!tiaofen)&&(qian<5)begin bai<=0;qian<=qian+1;end if(!tiaoshi)&&(wan<9) wan<=wan+1;else begin if(!tiaoshi)&&(shiwan<2)begin wan<=0;shiwan<=shiwan+1;end else begin if(shiwan=2)&&(wan=4) begin ge<=0;shi<=0;bai<=0;qian<=0;wan<=0;shiwan<=0;endif(ge<9)ge<=ge+1;else beginge<=0;if(shi<5)shi<=shi+1;elsebegin shi<=0; if(bai<9)bai<=bai+1; else begin bai<=0; if(qian<5)qian<=qian+1;elsebeginqian<=0; if(wan<3) wan<=wan+1; else begin wan<=0; if(shiwan<2) shiwan<=shiwan+1; else shiwan<=0; end end endend endendend endendendalways(posedge clk_10)beginif(ge=0)&&(shi=0)&&(bai=0)&&(qian=0) bee=0; else bee=1;end endmodule3.3秒表模块 与计时部分类似,总体思想是调整进制和提高信号频率,如下module miaobiao(clk_100,tm,m6,m5,m4,m3,m2,m1);input tm,clk_100;output m6,m5,m4,m3,m2,m1;reg 3:0 m6,m5,m4,m3,m2,m1;always(posedge clk_100 )begin if (tm) begin m6<=0; m5<=0; m4<=0; m3<=0; m2<=0; m1<=0;endelsebegin if(m1<9) m1<=m1+1; else begin m1<=0; if(m2<9) m2<=m2+1; else begin m2<=0;if(m3<9) m3<=m3+1;else begin m3<=0; if(m4<9) m4<=m4+1; else begin m4<=0;if(m5<9)m5<=m5+1;else begin m5<=0; if(m6<9) m6<=m6+1; else m6<=0; end end end endendendendendmodule3.4状态机模块一般通过逻辑抽象,得出状态转换图,状态化简,状态分配,用三段式写法入下module state(clk1k,rst,tm,num,wela,ge,shi,bai,qian,wan,shiwan,m6,m5,m4,m3,m2,m1); input clk1k,rst,tm,ge,shi,bai,qian,wan,shiwan,m6,m5,m4,m3,m2,m1; output num,wela;wire 3:0ge,shi,bai,qian,wan,shiwan,m6,m5,m4,m3,m2,m1;reg 3:0num;reg 5:0wela;reg 3:0current_state,next_state; parameter3:0D1=1;parameter3:0D2=2;parameter3:0D3=3;parameter3:0D4=4;parameter3:0D5=5;parameter3:0D6=6;parameter3:0D01=7;parameter3:0D02=8;parameter3:0D03=9;parameter3:0D04=10;parameter3:0D05=11;parameter3:0D06=12;always(posedge clk1k or negedge rst) begin if(!rst) current_state<=D1; else current_state<=next_state; end always(current_state ) begin if(tm=0) begin case(current_state) D1: begin num=m1; wela=6'b111110; if(clk1k) next_state=D01; else next_state=D1;end D01: begin num=12; wela=6'b1111101; if(clk1k) next_state=D2; else next_state=D01;end D2: begin num=m2; wela=6'b111101; if(clk1k) next_state=D02; else next_state=D2;endD02: begin num=12; wela=6'b111011; if(clk1k) next_state=D3; else next_state=D02;endD3: begin num=m3; wela=6'b111011; if(clk1k) next_state=D03; else next_state=D3;endD03: begin num=12; wela=6'b110111; if(clk1k) next_state=D4; else next_state=D03;endD4: begin num=m4; wela=6'b110111; if(clk1k) next_state=D04; else next_state=D4;endD04: begin num=12; wela=6'b101111; if(clk1k) next_state=D5; else next_state=D04;endD5: begin num=m5; wela=6'b101111; if(clk1k) next_state=D6; else next_state=D05;endD05: begin num=12; wela=6'b011111; if(clk1k) next_state=D6; else next_state=D05;endD6: begin num=m6; wela=6'b011111; if(clk1k) next_state=D06; else next_state=D6;endD06: begin num=12; wela=6'b111110; if(clk1k) next_state=D1; else next_state=D06;endendcase endelse begin case(current_state) D1:begin num=ge;wela=6'b111110; if(clk1k) next_state=D01; else next_state=D1; end D01:begin num=15;wela=6'b111101; if(clk1k) next_state=D2; else next_state=D01; end D2:begin num=shi;wela=6'b111101; if(clk1k) next_state=D02; elsenext_state=D2; endD02:begin num=15;wela=6'b111011; if(clk1k) next_state=D3; else next_state=D02; endD3:begin num=bai;wela=6'b111011; if(clk1k) next_state=D03; else next_state=D3; end D03:begin num=15;wela=6'b110111; if(clk1k) next_state=D4; else next_state=D03;endD4:begin num=qian;wela=6'b110111; if(clk1k) next_state=D04; else next_state=D4; end D04:begin num=15;wela=6'b101111; if(clk1k) next_state=D5; else next_state=D04; endD5:begin num=wan;wela=6'b101111; if(clk1k) next_state=D05; else next_state=D5; end D05:begin num=15;wela=6'b011111; if(clk1k) next_state=D6; else next_state=D05; endD6:begin num=shiwan;wela=6'b011111; if(clk1k) next_state=D06; else next_state=D6; endD06:begin num=15;wela=6'b111110; if(clk1k) next_state=D1; else next_state=D06; end default: next_state=D1; endcase end endendmodule3.5数码管显示模块 module SEG7(num,wela,SEG); input 3:0num; input 5:0wela; output SEG; reg 7:0SEG; always(num) begin if(wela=6'b111011)|(wela=6'b101111) begin case(num) 0:SEG=8'b01000000; 1:SEG=8'b01111001; 2:SEG=8'b00100100; 3:SEG=8'b00110000; 4:SEG=8'b00011001; 5:SEG=8'b00010010; 6:SEG=8'b00000010; 7:SEG=8'b01111000; 8:SEG=8'b00000000; 9:SEG=8'b00011000; default:SEG =8'b11111111; endcase end else begin case(num) 0:SEG=8'b11000000; 1:SEG=8'b11111001; 2:SEG=8'b10100100; 3:SEG=8'b10110000; 4:SEG=8'b10011001; 5:SEG=8'b10010010; 6:SEG=8'b10000010; 7:SEG=8'b11111000; 8:SEG=8'b10000000; 9:SEG=8'b10011000; default:SEG =8'b11111111; endcase end end endmodule3.6顶层模块所有模块通过元件例化进顶层模块 module clock(tm,clk,rst,tiaoshi,tiaofen,wela,SEG,bee); input clk,rst,tiaoshi,tiaofen,tm; output 5:0wela; output 7:0SEG; output bee; wire net1; wire net9; wire net10; wire 3:0net2; wire 3:0net3; wire 3:0net4; wire 3:0net5; wire 3:0net6; wire 3:0net7; wire 3:0net8; wire 3:0m6,m5,m4,m3,m2,m1; oclk u1(.CLK(clk),.oclk(net1),.rst(rst),.clk_10(net9),.clk_100(net10); state u2(.clk1k(net1),.rst(rst),.num(net2),.tm(tm),.wela(wela),.ge(net3),.shi(net4),.bai(net5),.qian(net6),.wan(net7),.shiwan(net8),.m6(m6),.m5(m5),.m4(m4),.m3(m3),.m2(m2),.m1(m1); SEG7 u3(.num(net2),.wela(wela),.SEG(SEG); cni u4(.clk_10(net9),.rst(rst),.tiaoshi(tiaoshi),.tiaofen(tiaofen),.ge(net3),.shi(net4),.bai(net5),.qian(net6),.wan(net7),.shiwan(net8),.bee(bee);miaobiao u5(.tm(tm),.clk_100(net10),.m6(m6),.m5(m5),.m4(m4),.m3(m3),.m2(m2),.m1(m1);endmodule3.7管脚绑定和顶层原理4总结与体会 通过学习,我对多功能数字钟已经有过一定的了解,对于程序,不断的调试仿真过程是必不可少的,无论多么仔细的编程,思路上的漏洞总是存在的,并且会完全体现在实验结果上,在不断的调试仿真过程中,许多问题的暴露使得我们不仅对数字电路原理有了更加深刻的了解也使我们对QuartusII平台的使用规则有了更多的了解。在经过了这一切之后,实现创新功能就会变得不再那么困难。

    注意事项

    本文(EDA课程设计报告模板.doc)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开