2022年EDA电子综合设计.pdf
《2022年EDA电子综合设计.pdf》由会员分享,可在线阅读,更多相关《2022年EDA电子综合设计.pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、苏州科技学院EDA电子综合设计院系:电子与信息工程专业:电子信息工程班级:学号:姓名:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 23 页 - - - - - - - - - - 第一部分:设计说明1、设计任务设计一款数字电子时钟,具体要求如下:1:输入条件: 50MHz 时钟, 2 个输入按键;2:功能实现:具有显示时、分、秒功能;采用LED数码管显示;具有闹钟与对时功能,对时精确到分,闹钟设置与对时采用按键作为输入信号。3:采用 altera公司的 quartusII软件进行编程与仿真
2、, 设计语言可以选择VerilogHDL 或 VHDL 。2、目的与意义训练综合运用学过的数字电子技术、数字系统设计技术 (HDL硬件设计 ) 和计算机编程及电路相关基本知识,培养独立设计比较复杂数字系统设计能力。通过综合设计, 力争掌握使用 EDA工具设计数字系统电路的基本方法,包括原理方案的确定、 详细设计中的编程与仿真等一系列过程,为以后进行工程实践问题的研究打下设计基础。时钟,自从它发明的那天起,就成为人类的朋友,但随着社会的进步,科技的的发展,人们对它的功能又提出了新的要求,怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现代社会,守时已不仅
3、关系到一个人的职业生涯,还成了衡量一个人道德的标准。时钟为人们提供了科学利用时间规律的依据,然而,普通的机械钟表与半机械钟表对于忙碌的生活显然早已不太适应,设计一款高精度数字时钟势在必行。本课题将通过对目前市场上的数字电子钟的研究,利用 EDA 技术设计一款高精度数字式电子钟,使人们可以得到精确时间显示, 帮助人们合理安排时间,方便人们的生活。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 23 页 - - - - - - - - - - 第二部分原理方案设计1、多功能数字钟的设计设计一个多功
4、能数字时钟,具有时分、秒计数显示、闹钟功能。能够利用按键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示。能够利用按键实现“较时”、“较分”功能,随时对数码管的显示进行校正和校对。数字中系统主要由系统时钟,三个功能按键(mode ,turn ,change),FPGA ,数码管和蜂鸣器部分组成。2、设计原理框图图 2.2 分频模块计时模块闹钟模块显示模块控制模块蜂鸣器数码管Clk 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 23 页 - - - - - - - - - - 第三部
5、分详细设计过程3.1、关于模式信号 mode 选择各个功能显示的构思:考虑到使用 mode按键产生 0、1 信号在正常时间显示、调节时间功能、调节闹钟功能和跑表功能这四个功能之间的转换。所以mode信号的作用主要体现在控制模块 (1)和显示模块中,虽然计时模块中也用到mode 信号,但是它只是 turn信号将秒信号清零的辅助作用,保证只有在m=0(即普通时钟显示)下turn 信号清零功能才起作用, 在校时功能下只能是分、 小时的切换和跑表下的暂停功能。a、在控制模块下的作用:在控制模块下,其实 mode和 turn 信号的作用更像 2-4译码器的功能,将 change数字上加信号按不同的mod
6、e和 turn 分成四个信号,分别是count1(时间显示下的分信号 )、counta(时间显示下的小时信号 )、count2(闹铃显示下的分信号 )、countb(闹铃显示下的小时信号 )。b、 在显示模块下的作用:同在控制模块下的作用。只是将turn 信号选出的小时和分钟在同一个mode下一起送至数码管显示。3.2、关于时间调整和闹铃时间调整中数字上加的原理:对于这个问题,我们要考虑两种情况,首先是时间调整的情况:因为在时间调整下,数字的上加不仅受到change信号的作用(即人工调时), 还受本身在 1Hz信号下计时而随时发生的累加。 而闹铃时间调整不存在这种情况,因为闹铃下的时间数字发生
7、上加只可能人工调节(change信号作用下 )的结果。a、时间调整下的上加:由于在控制模块 (2)下又设置了快加的功能, 所以有三部分信号对上加起作用, 一是快加下的 numXclk, 表示以原始时钟的速率上加, 二是慢加下的 change具体到各模块、 各位的 count1 或 counta,三是秒信号记到 9 向分信号的进位。b、 闹铃时间调整下的上加:该部分原理同上, 只是少了低位记到9 向高位的进位。 所以只有两部分组成,一是快加下的 numXclk, 表示以原始时钟的速率上加,二是慢加下的change具体到各模块、各位的count2 或 countb。精品资料 - - - 欢迎下载
8、- - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 23 页 - - - - - - - - - - 3.3 分频模块3.3.1 模块功能输入一个频率为 50MHz的 CLK ,利用计数器分出1KHz的 q1KHz ,500Hz的q500Hz ,2Hz的 q2Hz和 1Hz的 q1Hz。3.3.2 模块设计思想对系统的时钟 50MHZ 进行分频,设置不同长度的计数值,当系统时钟clk有变化时计数器开始计数, 当计数到某个值时输出一个信号,计数值不同输出信号的周期也就不同, 从而实现了对系统时钟进行不同的分频,产生不同频率的信号。
9、3.3.3 模块设计流程图如下计数分频2HZ500HZ1HZ50MHz图 3.1 分频流程由于 FPGA 内部提供的时钟信号频率大约为50MHz,在这需要将它转化成1Hz的标准时钟信号供数字钟的计时显示;在此我采用了级联分频法。代码如下:/fenpin 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 23 页 - - - - - - - - - - module fenpin(clk,clk_1Hz,clk_100Hz,clk_1k); output clk_1Hz,clk_100Hz,clk
10、_1k; input clk; reg clk_1Hz=0,clk_3=0,clk_1=0,clk_2=0,clk_1k=0; reg 6:0 cnt1=0,cnt2=0,cnt3=0,cnt4=0,cnt5=0; wire clk_100Hz; always (posedge clk) begin if ( cnt1 156/2-1) /156分频 ,生成 1MHz 信号begin cnt1 = cnt1 + 1; end else begin cnt1 = 0; clk_1 = clk_1; end end always (posedge clk_1) if ( cnt2 156/2-1)
11、 /100分频,生成10000Hz 信号begin cnt2 = cnt2 + 1; end else begin cnt2 = 0; clk_2 = clk_2; end always (posedge clk_2) if ( cnt5 10/2-1) /10分频,生成1kHz 标准信号begin cnt5= cnt5 + 1; end else begin cnt5= 0; clk_1k= clk_1k; end always (posedge clk_2) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - -
12、-第 6 页,共 23 页 - - - - - - - - - - if ( cnt3 100/2-1) /100分频,生成100Hz 信号begin cnt3 = cnt3 + 1; end else begin cnt3 = 0; clk_3 = clk_3; end assign clk_100Hz=clk_3; always (posedge clk_3) if ( cnt4 100/2-1) /100分频,生成1Hz 标准信号begin cnt4= cnt4 + 1; end else begin cnt4= 0; clk_1Hz= clk_1Hz; end endmodule 3.
13、4 计时模块3.4.1 模块功能描述输入引脚是功能选择模块的输出timemode、分频模块的输出 clk1Hz 和按键脉冲信号 plus ,输出引脚是时间的时、分、秒。3.4.2 模块设计思想本模块是为系统提供控制信号的模块,通过输入信号的脉冲,改变输出信号的不同状态,不同状态表示不同的工作模式。3.4.3 模块设计流程首先判断工作模式,如果timemode是 01处于校分模式,当按键脉冲到了,分加一。如果 timemode 是 10 处于校时模式,当按键脉冲到了,时加一。其他值(timemode=00)处于正常模式,保持正常的计时功能。3.4.4 设计关键知识点精品资料 - - - 欢迎下载
14、 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 23 页 - - - - - - - - - - 图 3.2 模 60 和 模 24 模块代码如下:/jishi module jishi(clk,clk_1Hz, turn,/ turn : 接按键,在手动校时功能时,选择是调整小时,还是分钟;若长时间按住该键,还可使秒信号清零,用于精确调时mode,count1,counta,sec1,min1,hour1,num3,num4); input clk,clk_1Hz,turn,num3,num4; input mode;
15、input count1,counta; output 7:0 sec1,min1; output 7:0 hour1; wire clk_1Hz,ct1,cta,turn,num3,num4; reg 7:0 sec1=0,min1=0; reg 7:0 hour1=0; reg 1:0 m; wire count1,counta; reg minclk,hclk; always (posedge mode) /mode 信号控制系统在三种功能间转换begin if(m=4) m=0; else m=m+1; end /秒钟计时模块 / always (posedge clk_1Hz) if
16、(sec1=8h59)|turn&(!m)/若长时间按住该键,还可使秒信号清零,用于精确调时。begin sec1=0; /按住 “ turn ”按键一段时间,秒信号可清零,该功能用于手动精确调时if(!(turn&(!m) minclk=1;/ 产生进位end else begin 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 23 页 - - - - - - - - - - if(sec13:0=4b1001) begin sec13:0=4b0000; sec17:4=sec17:4+
17、1; end else sec13:0=sec13:0+1; minclk=0; end / 分钟计时模 ?/ assign m_clk=minclk|count1;/m_clk产生进位或校正改变assign ct1=(num3&clk)|(!num3&m_clk); /ct1 用于计时、校时中的分钟计数always (posedge ct1) begin if(min1=8h59) begin min1=0; hclk=1; end else begin if(min13:0=9) begin min13:0=0; min17:4=min17:4+1; end else min13:0=mi
18、n13:0+1; hclk=0; end end / 小时计时模块/ assign h_clk=hclk|counta;/h_clk产生进位或校正改变assign cta=(num4&clk)|(!num4&h_clk); /cta 用于计时、校时中的小时计数always (posedge cta) if(hour1=8h23) hour1=0; else if(hour13:0=9) begin hour17:4=hour17:4+1; hour13:0=0; end else hour13:0=hour13:0+1; endmodule 3.5 闹钟模块3.5.1 模块功能描述实现给定时间
19、的闹铃功能。3.5.2 模块设计思想程序中的语句if m1=0101 and m0=1001 and s1=0101 then if s0=0001 or s0=0011 or s0=0101 or s0=0111 即是实现闹铃功能的程序,改变数值即可改变闹铃时间。3.5.3 模块设计流程精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 23 页 - - - - - - - - - - 图 3.5.3 闹铃模块结构图3.5.4 设计关键知识点VHDL 语言语法、 60 进制、 24 进制的加法。
20、/ Alarm module Alarm(clk,amin,ahour,num1,num2,count2,countb,LD_alert); input clk,num1,num2,count2,countb; output 7:0 amin; output 7:0 ahour; output LD_alert; wire LD_alert; reg 7:0 amin=0; reg 7:0 ahour=0; assign ct2=(num1&clk)|(!num1&count2); /ct2 用于定时状态下调整分钟信号assign LD_alert=(ahour|amin)?1:0;/ 指示是
21、否进行了闹铃定时always (posedge ct2) if(amin=8h59) amin=0; else if(amin3:0=9) begin amin3:0=0; amin7:4=amin7:4+1; end else amin3:0=amin3:0+1; assign ctb=(num2&clk)|(!num2&countb); /ctb 用于定时状态调节小时信号always (posedge ctb) if(ahour=8h23) ahour=0; else if(ahour3:0=9) begin ahour3:0=0; ahour7:4=ahour7:4+1; end els
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 EDA 电子 综合 设计
限制150内