




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏州科技学院EDA电子综合设计苏州科技学院天平学院EDA电子综合设计院 系: 专 业: 班 级: 学 号: 姓 名: 第一部分:设计说明1.1设计任务设计一款数字电子时钟,具体要求如下:1:输入条件:50MHz时钟,2个输入按键;2:功能实现:具有显示时、分、秒功能;采用LED数码管显示;具有闹钟与对时功能,对时精确到分,闹钟设置与对时采用按键作为输入信号。3:采用altera公司的quartusII软件进行编程与仿真,设计语言可以选择VerilogHDL或VHDL。1.2目的与意义训练综合运用学过的数字电子技术、数字系统设计技术(HDL硬件设计)和计算机编程及电路相关基本知识,培养独立设计比较复杂数字系统设计能力。通过综合设计,力争掌握使用EDA工具设计数字系统电路的基本方法,包括原理方案的确定、详细设计中的编程与仿真等一系列过程,为以后进行工程实践问题的研究打下设计基础。时钟,自从它发明的那天起,就成为人类的朋友,但随着社会的进步,科技的的发展,人们对它的功能又提出了新的要求,怎样让时钟更好的为人民服务,怎样让我们的老朋 友焕发青春呢?这就要求人们不断设计出新型时钟。现代社会,守时已不仅关系到一个人的职业生涯,还成了衡量一个人道德的标准。时钟为人们提供了科学利用时间规律的依据,然而,普通的机械钟表与半机械钟表对于忙碌的生活显然早已不太适应,设计一款高精度数字时钟势在必行。本课题将通过对目前市场上的数字电子钟的研究,利用EDA技术设计一款高精度数字式电子钟,使人们可以得到精确时间显示,帮助人们合理安排时间,方便人们的生活。第二部分 原理方案设计设计一个多功能数字时钟,具有时分、秒计数显示、闹钟功能。能够利用按键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示。能够利用按键实现“较时”、“较分”功能,随时对数码管的显示进行校正和校对。数字中系统主要由系统时钟,三个功能按键(mode,turn,change),FPGA,数码管和蜂鸣器部分组成。分频模块计时模块闹钟模块显示模块控制模块蜂鸣器图1多功能数字时钟整体模块图2.1分频模块方案设计分频模块用于为系统的实现提供稳定的工作频率和计时信号源,产生分频为1HZ频率的信号作为计时模块的信号源。分频算法设计:定义变量并根据需要得到的分频信号设定计数值,对该变量进行加或减计数,每到达一次计数值点,将该变量清零或重置,并且对输出信号取一次反,即可以得到所需的分频信号。在这里使用任意分频计数器。定义变量并且设定一个上限值,每次加计数到该上限值时,输出该计数值的最高位。2.2显示模块计时模块是对1s的信号源进行秒计时,计时满后向上进位的设计思想。译码显示模块采用的是数码管的动态扫描方式。2.3控制模块设置三个按键,一个作为功能控制信号,按键每次加一,加到三在归零。为0:计时功能; 为1:闹铃功能; 为2:手动校对功能。 一个按键选择是调整时间,还是分钟,若长时间按住该键,可使秒信号清零,用于精确调时。 一个按键用于手动调整,每按一次,计数器加1,如果长按,则连续快速加1;用于快速调时和定时。第三部分 详细设计过程图2 顶层模块3.1分频模块3.1.1模块功能描述该模块为任意分频计数器,在这里使用了两个分频模块,分别输出4Hz和1Khz的时钟信号。功能:对输入时钟clock进行F_DIV倍分频后输出clk_out。其中F_DIV为分频系数,分频系数范围为12n (n=F_DIV_WIDTH)若要改变分频系数,改变参数F_DIV或F_DIV_WIDTH到相应范围即可。若分频系数为偶数,则输出时钟占空比为50%;若分频系数为奇数,则输出时钟占空比取决于输入时钟占空比和分频系数(当输入为50%时,输出也是50%)。图3 分频模块div_4hz图4 分频模块div_1k3.1.2模块设计思想定义变量为分频系数,若位偶数,则产生分频系数的一半个时钟周期为高电平,分频系数的一半个时钟周期为低电平;若为奇数,则相应地偏移一个。3.1.3设计关键知识点若分频系数为偶数,则输出时钟占空比为50%;若分频系数为奇数,则输出时钟占空比取决于输入时钟占空比和分频系数(当输入为50%时,输出也是50%)。module div_4hz (clock,clk_out); /I/O口声明inputclock;/输入时钟outputclk_out;/输出时钟/内部寄存器regclk_p_r;/上升沿输出时钟reg clk_n_r;/下降沿输出时钟regF_DIV_WIDTH - 1:0 count_p;/上升沿脉冲计数器regF_DIV_WIDTH - 1:0 count_n;/下降沿脉冲计数器/参数-分频系数parameter F_DIV = 12500000;/分频系数-修改这里parameter F_DIV_WIDTH = 32; /分频计数器宽度wire full_div_p;/上升沿计数满标志wire half_div_p;/上升沿计数半满标志wire full_div_n;/下降沿计数满标志wire half_div_n;/下降沿计数半满标志/判断计数标志位置位与否assign full_div_p = (count_p F_DIV - 1);assign half_div_p = (count_p 1) - 1);assign full_div_n = (count_n F_DIV - 1);assign half_div_n = (count_n 1) - 1);/时钟输出assignclk_out = (F_DIV = 1) ? clock : (F_DIV0 ? (clk_p_r & clk_n_r) : clk_p_r);/上升沿脉冲计数always (posedge clock)beginif(full_div_p)begincount_p = count_p + 1b1;if(half_div_p)clk_p_r = 1b0;elseclk_p_r = 1b1;endelsebegincount_p = 0;clk_p_r = 1b0;endend/下降沿脉冲计数always (negedge clock)beginif(full_div_n)begincount_n = count_n + 1b1;if(half_div_n)clk_n_r = 1b0;elseclk_n_r = 1b1;endelsebegincount_n = 0;clk_n_r = 1b0;endendendmodule3.2显示模块3.2.1模块功能描述该模块设计为时钟显示模块,一共8个共阳极数码管,显示格式为XX.XX.XX。3.2.2模块设计思想整个时钟的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为023时。由于分钟和秒钟显示的范围都是从059,可以用一个4位的二进制码显示十位,用一个四位的二进制码(BCD码)显示个位;对于小时因为他的范围是从023,同样可以用一个4位的二进制码显示十位,用一个4位的二进制码(BCD码)显示个位。3.2.3设计关键知识点由于动态扫描,需要一个频率较高的时钟信号用于刷新显示。送入显示的数高低4位分离开来,分别用于显示十位和个位。图5 显示模块scan_ledmodule scan_led(clk_1k,dig,seg,hourh,hourl1,minh,minl1,sech,secl1);input clk_1k;input3:0 hourh,hourl1,minh,minl1,sech,secl1;output7:0dig;output7:0seg;reg7:0dig;reg7:0seg;reg3:0dataout_buf;reg2:0count;always (posedge clk_1k )begin count=count+1b1;endalways (posedge clk_1k )begin case(count) 3d0 : dataout_buf = secl1; 3d1 : dataout_buf= sech; 3d2 : dataout_buf= 4ha; 3d3 : dataout_buf = minl1; 3d4 : dataout_buf= minh; 3d5 : dataout_buf = 4ha; 3d6 : dataout_buf= hourl1; 3d7 : dataout_buf = hourh; endcasecase(count)3d0 : dig = 8b1111_1110; 3d1 : dig = 8b1111_1101; 3d2 : dig = 8b1111_1011; 3d3 : dig = 8b1111_0111; 3d4 : dig = 8b1110_1111; 3d5 : dig = 8b1101_1111; 3d6 : dig = 8b1011_1111; 3d7 : dig = 8b0111_1111; endcaseendalways(dataout_buf)begincase(dataout_buf)4h0:seg=8b0000_0011;4h1:seg=8b1001_1111;4h2:seg=8b0010_0101;4h3:seg=8b0000_1101;4h4:seg=8b1001_1001;4h5:seg=8b0100_1001;4h6:seg=8b0100_0001;4h7:seg=8b0001_1111;4h8:seg=8b0000_0001;4h9:seg=8b0000_1001;4ha:seg=8b1111_1101; endcaseendendmodule3.3时钟控制模块3.3.1模块设计功能该模块设计为多功能数字钟的控制模块。 各信号引脚功能定义为:mode:功能控制信号;为0:计时功能; 为1:闹铃功能; 为2:手动校对功能; turn:在手动校对时,选择是调整时间,还是分钟,若长时间按住该键,可使秒信号清零,用于精确调时; change:手动调整时,每按一次,计数器加1,如果长按,则连续快速加1;用于快速调时和定时;hour,min,sec:时,分,秒显示信号; alert:扬声器驱动信号;用于产生闹铃音和报时音;闹铃音为持续20秒的急促的“嘀嘀嘀”音 ,若按住“change”键,可屏蔽该闹铃音;整点报时音为“嘀嘀嘀嘀嘟”四短一长音;LD_alert:接发光二极管,指示是否设置了闹钟功能; LD_hour:接发光二极管,指示当前调整的是小时信号; LD_min: 接发光二极管,指示当前调整的是分钟信号。3.3.2模块设计思想mode按键每触发一次,定义一个变量m自加,从0加到2;加满2,重新置为0。用case语句产生3种模式。图6 时钟模块clock1module clock(clk,clk_1k,mode,change,turn,alert,hourh,hourl1,minh,minl1,sech,secl1,LD_alert,LD_hour,LD_min);input clk,clk_1k,mode,change,turn;output alert,LD_alert,LD_hour,LD_min;output3:0 hourh,hourl1,minh,minl1,sech,secl1;reg7:0 hour,min,sec,hour1,min1,sec1,ahour,amin;reg1:0 m,fm,num1,num2,num3,num4;reg1:0 loop1,loop2,loop3,loop4,sound;reg LD_hour,LD_min;reg clk_1Hz,clk_2Hz,minclk,hclk;reg alert1,alert2,ear;reg count1,count2,counta,countb;wire ct1,ct2,cta,ctb,m_clk,h_clk;always (posedge clk)beginclk_2Hz=clk_2Hz;if(sound=3) begin sound=0; ear=1; endelse begin sound=sound+1; ear=0; endend / ear信号用于产生或屏蔽声音always (posedge clk_2Hz) /由4HZ的输入时钟产生1HZ的时基信号clk_1Hz=clk_1Hz;always (negedge mode) / mode信号控制系统在三种功能间的转换begin if(m=2) m=0; else m=m+1;endalways (negedge turn) /产生count1, count1 ,count a ,countb四个信号fm=fm;always begin case(m) 2:begin if(!fm) begincount1=!change; LD_min,LD_hour=2; endelse begin counta=!change; LD_min,LD_hour=1; endcount2,countb=0; end 1:begin if(!fm) begincount2=!change; LD_min,LD_hour=2; endelsebegin countb=!change; LD_min,LD_hour=1; endcount1,counta=2b00; end default: count1,count2,counta,countb,LD_min,LD_hour=0; endcase endalways (negedge clk)if(count2) beginif(loop1=3) num1=1;elsebegin loop1=loop1+1; num1=0; endendelse begin loop1=0; num1=0; endalways (negedge clk)if(countb) beginif(loop2=3) num2=1;elsebegin loop2=loop2+1; num2=0; endendelse begin loop2=0; num2=0; endalways (negedge clk)if(count1) beginif(loop3=3) num3=1;elsebegin loop3=loop3+1; num3=0; endendelse begin loop3=0; num3=0; endalways (negedge clk)if(counta) beginif(loop4=3) num4=1;elsebegin loop4=loop4+1; num4=0; endendelse begin loop4=0; num4=0; endassign ct1=(num3&clk)|(!num3&m_clk);assign ct2=(num1&clk)|(!num1&count2);assign cta=(num4&clk)|(!num4&h_clk);assign ctb=(num2&clk)|(!num2&countb);always (posedge clk_1Hz)if(!(sec18h59)|(!turn)&(!m) beginsec1=0; if(!(!turn)&(!m) minclk=1;endelse beginif(sec13:0=4b1001) begin sec13:0=4b0000; sec17:4=sec17:4+1; endelse sec13:0=sec13:0+1; minclk=0;endassign m_clk=minclk|count1;always (posedge ct1)beginif(min1=8h59) begin min1=0; hclk=1; endelse beginif(min13:0=9)begin min13:0=0; min17:4=min17:4+1; endelse min13:0=min13:0+1; hclk=0;endendassign h_clk=hclk|counta;always (posedge cta)if(hour1=8h23) hour1=0;elseif(hour13:0=9) begin hour17:4=hour17:4+1; hour13:0=0; endelse hour13:0=hour13:0+1;always (posedge ct2)if(amin=8h59) amin=0;elseif(amin3:0=9)begin amin3:0=0; amin7:4=amin7:4+1; endelse amin3:0=amin3:0+1;always (posedge ctb)if(ahour=8h23) ahour=0;elseif(ahour3:0=9)begin ahour3:0=0; ahour7:4=ahour7:4+1; endelse ahour3:0=ahour3:0+1;alwaysif(min1=amin)&(hour1=ahour)&(amin|ahour)&(change)if(sec18h20) alert1=1;else alert1=0;else alert1=0;always case(m)3b00:begin hour=hour1; min=min1; sec=sec1; end3b01:begin hour=ahour; min=amin; sec=8hzz; end3b10:begin hour=hour1; min=min1; sec8h54)|(!(mi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程经济的资金管理策略试题及答案
- 唾液腺黏液囊肿
- 美术雕刻土豆课件
- 工程经济运营管理试题及答案
- 2025年工程项目管理个人能力提升试题及答案
- 工程项目管理产品生命周期试题及答案
- 物流管理信息系统设计
- 初中寒假交通安全教育
- 工程经济学前沿问题试题及答案
- 艺考教育创业计划书
- DB32∕T 1649-2010 公路养护工程预算编制办法及定额
- DLT 1053-2017 电能质量技术监督规程
- 十年(2015-2024)高考真题英语分项汇编(全国)专题 22 完形填空(新高考15空)(学生卷)
- 山东省济南市章丘区章丘市第四中学2024年高一下数学期末达标检测试题含解析
- 化妆品中二恶烷的检测方法
- 江苏省盐城市射阳实验中学2023-2024学年中考二模物理试题含解析
- 2023年-2024年邮储银行大堂经理岗位资格认证考试题库(含答案)
- 察右后旗宿泥不浪铁矿2023年度治理计划
- 【部编版】道德与法治六年级下册第9课《日益重要的国际组织》精美课件
- 模具管理系统解决方案课件
- 高考日语-必考11个语法
评论
0/150
提交评论