《EDA综合设计与实践》课程设计-用Verilog HDL设计电子钟

上传人:daj****de2 文档编号:174128300 上传时间:2022-12-14 格式:DOCX 页数:13 大小:17.58KB
收藏 版权申诉 举报 下载
《EDA综合设计与实践》课程设计-用Verilog HDL设计电子钟_第1页
第1页 / 共13页
《EDA综合设计与实践》课程设计-用Verilog HDL设计电子钟_第2页
第2页 / 共13页
《EDA综合设计与实践》课程设计-用Verilog HDL设计电子钟_第3页
第3页 / 共13页
资源描述:

《《EDA综合设计与实践》课程设计-用Verilog HDL设计电子钟》由会员分享,可在线阅读,更多相关《《EDA综合设计与实践》课程设计-用Verilog HDL设计电子钟(13页珍藏版)》请在装配图网上搜索。

1、广东工业大学实验报告信息工程学院通信工程专业 04班 成绩评定学号3205002894 姓名张凤珠教师签名预习情况操作情况考勤情况数据处理情况实验题目 用Verilog HDL设计电子钟第_周至 第17 周一、课程设计目的和要求目的:1. 学会使用quantusll软件(编译、仿真等),并利用它进行设计一些简单的数字电路;2. 利用实验室提供的GW48 SOPC系统主板,结合quantusll软件实现电子钟的功能显示。要求:电子钟应实现如下功能: 1时钟显示功能:,该电子钟正常显示小时、分钟、秒,各用2位数码管(共6位数码管) 显示范围为023时59分59秒,分辨率为1秒,包括启动与停止。2校

2、时功能:包括小时校准和分钟校准。 3跑表:包括跑表清零、启动计时、停止及继续计时功能。二、实验器件实验室提供的GW48 SOPC系统主板实验箱三、设计方案和源程序代码首先分析电子钟要实现的三个功能,然后确定它的基本结构,因为设计时电子钟的三个 基本功能都要用到数码管显示,考虑到三者为了避免竞争数码管资源的问题,因此设计时电 子钟有3个主要输入按键KI、K2、K3,分别为时间显示、校时功能、跑表的启动,而且是当 任一个按键按下,其余两个键都无效,即此时只有按下的键才有效,执行该键所控制功能的 启动。其次,各个功能模块的设计。A、对于时间显示模块中,涉及到的是时分秒各个计数器 的设计 ,“秒计数器

3、”采用60进制计数器,每累计60秒,发出一个“分脉冲”信号,该信 号将被送到“分计数器”。“分计数器”采用60进制计数器,每累计60分,发出一个“分 脉冲”信号,该信号被送到“时计数器”。“时计数器”采用24进制计数器,可实现24小时 的累计计数。 B 、对于校时模块,同样用到了上述的时分计数器,不过只是能实现校时分钟 和小时功能,分别用K4、K5键控制,做法是每按下一次键,对应的计数器加一。C、最后是 跑表模块,这相对于前面两个模块较为复杂,它有计时复位、启动和计时停止三个功能,分 别用 K6、K8、K7 按键控制,这里用到了毫秒、秒、分钟计数器,其中“毫秒计数器”采用 100进制计数器,每

4、累计100毫秒产生一个“秒脉冲”信号,该信号将作为“秒计数器”的 时钟脉冲,其余同A所述。百分秒、秒和分钟信号用七段LED显示。而复位信号是高电平有 效,可以对整个跑表同步清0;当启动/停止为高电平时跑表开始计时,为低电平时停止计时, 变高后在原来的数值基础上再计数。最后,就是整体的综合。包括每个模块用到的时钟设置、按键显示模块和确定输入输出 参数;本次课程设计采用了一个输入主时钟源4096HZ,其余各个模块用到的时钟信号从此时 钟源分频得到,因此专门设置了一个分频小模块。源程序代码如下:module main(k1,k2,k3,k4,k5,k6,k7,k8,clk_4096,LED1,LED

5、2,LED3,LED4,LED5,LED6); input k1,k2,k3,k4,k5,k6,k7,k8,clk_4096;output3:0LED1,LED2,LED3,LED4,LED5,LED6;reg 3:0 LED1,LED2,LED3,LED4,LED5,LED6;reg 7:0 hour,minute,second;define hour1 hour3:0define hour2 hour7:4define min1 minute3:0define min2 minute7:4define sec1 second3:0define sec2 second7:4reg 15:0

6、j1,j2,j3;reg clk1,clk2,clk3;always (posedge clk_4096)/输入 4096HZ 时钟源beginif(j1=40)begin j1=0;clk1=clk1; /100HZ endelsej1=j1+1;if(j2=4095)beginj2=0;clk2=clk2; /1HZendelsej2=j2+1;if(j3=7)beginj3=0;clk3=clk3; /512HZendelsej3=j3+1;end/跑表reg 7:0 missecondrun, secondrun,miurun;reg runnings,mis,sec;always(p

7、osedge clk1)beginif(k6) /复位beginmissecondrun7:0=8d0;secondrun7:0=8d0;miurun7:0=8d0;runnings=0;endif(k7) /停止beginrunnings=0;endif(k8) /运行runnings=1;if(runnings)beginif(missecondrun3:0=9) / 1/100秒beginif(missecondrun7:4=9)beginmissecondrun7:0=0; /如果为99时,转为0mis=1; /产生进位提示endelsebegin为0missecondrun3:0=0

8、; /如果只是个位为9时,十位加1,个位missecondrun7:4=missecondrun7:4+1;endendelsemissecondrun3:0=missecondrun3:0+1; /如果个位不为0时,个位加1,十位不变if(mis) /当进位为1时才进行一次加1beginmis=0;if(secondrun3:0=9) /秒beginif(secondrun7:4=5)beginsecondrun7:0=0; /如果为59时,转为0sec=1; /产生进位提示endelsebeginsecondrun3:0=0;secondrun7:4二secondrun7:4 + l;/如

9、果只是个位为 9 时,十位加 1,个位为0endendelsesecondrun3:0=secondrun3:0+1; /如果个位不为0时,个位加1,十位 不变endif(sec)/当进位为1时才进行一次加1beginsec=0;if(miurun3:0=9) /分钟beginif(miurun7:4=5)beginmiurun7:0=0;endelsebeginmiurun3:0=0;miurun7:4=miurun7:4+1;endendelsemiurun3:0=miurun3:0+1;endendend/时钟显示reg secondin,minutein;always(posedge

10、clk2)beginif(、sec2=5 &、secl=9)begin、sec2=0;、secl=0;secondin=1;endelsebeginif(、secl=9)begin、secl=0;、sec2二、sec2+l;endelse seel二 secl+1;endif(secondin)beginsecondin=0;if(、min2=5 &、min1=9)begin、min2=0;、min1=0;minutein=l;endelsebeginif(min1=9)begin、min1=0;、min2二、min2+1;endelse mini二 minl+1;endendif(minut

11、ein)beginminutein=0;if(、hour2=3&、hour1=2)begin、hour2=0;、hourl=0;endelsebeginif(、hourl=9)begin、hourl=0;、hour2二、hour2+l;endelse hour1= hourl+1;endendif(k4)/校时分钟beginif(minute7:4=5)beginif(minute3:0=9)beginminute7:0=0;endelseminute3:0=minute3:0+1;endelsebeginif(minute3:0=9)beginminute3:0=0;minute7:4=mi

12、nute7:4+1;endelseminute3:0=minute3:0+1;endendif(k5)/ 校时小时beginif(、hour2=2)beginif(、hourl=3)begin、hour2=0;、hourl=0;endelse、hourl二、hourl+1;endelsebeginif(、hourl=9)begin、hourl=0;、hour2二、hour2+l;endelsehourl二 hourl+1;endendend/ 按键显示模块reg k1_rst,k2_rst,k3_rst;always(posedge clk3)beginif(k1)begink1_rst=1;

13、k2_rst=0;k3_rst=0;endif(k2)begink1_rst=0;k2_rst=1;k3_rst=0;endif(k3)begink1_rst=0;k2_rst=0;k3_rst=1;endif(k1_rst) /时间显示 beginLED1=second3:0;LED2=second7:4;LED3=minute3:0;LED4=minute7:4;LED5=hour3:0;LED6=hour7:4;endif(k2_rst) /校时beginLED3=minute3:0;LED4=minute7:4;LED5=hour3:0;LED6=hour7:4;endif(k3_rs

14、t) /跑表显示beginLED1=missecondrun3:0;LED2=missecondrun7:4;LED3=secondrun3:0;LED4=secondrun7:4;LED5=miurun3:0;LED6=miurun7:4;endendendmodule四、修改后设计方案由于本课程设计用到的主时钟源是实验箱上的4096HZ,而真正用到的时钟是1HZ、100HZ、512HZ,分别用于时间显示(包含校时)、跑表、按键显示;这些时钟都从主频分频得到,而 从主频4096HZ到1HZ,要经过4096次分频,分频计数太大,主频与分频后的时钟频率相差 太大,不利于程序仿真,所以建议使用较低

15、的主频,如1024HZ主频;原设计中用到多个按键控制,而每个按键都只是只有一种控制功能,缺乏灵活性,所以 修改后将按键设置为模式键,即每次按下键都实现不同功能显示,可用状态机来实现设计, 这里只用到三个按键。五、实验结果和数据处理按下按键K1,电子钟正常显示时间,再按下键,停止显示。按下按键K2,进入校时状态:按下K4键,进行校准分钟,每按下一次K4键,分钟计数 器加一;按下K5键,进行小时校准,每按下一次K5键,小时计数器加一;最后再若按下K2 键,停止校时。按下按键K3,进入跑表计时功能:按下K6键,复位;按下K8键,开始计时;按下K7 键,停止计时;六、心得体会本次课程设计,我花了大概三

16、天时间来完成(不包括报告),虽然没有达到教程安排的五 天时间,但是我却是所花时间在课程设计上比较多的少数人之一,不过总算也完成了作品, 尽管不是很完美,功能也不是很多,但是心里还是蛮有成就感的!当然,完成一次课程设计都不是很容易的!首先确定了自己做电子钟的设后,就开始着 手写程序;刚开始,确定实现的设计目标是多功能的电子钟,而且还确定了每个功能用一个 模块来写,最后编写一个主模块,采取调用模块的形式调用所写的各个功能模块,这样想法 构思是很不错的;但是限于自己所学知识不是很牢固,也不是很深入,写Verilog HDL程 序也比较少,实践能力还不够,所以当我好不容易编写好各个功能模块后,最终在编

17、写主程 序时却遇上了很多问题,特别是在编写调用模块时,出现了重重关卡,原来想法总比做的来 的简单!这期间我也有问过同学,可是由于碍于时间的问题,最终决定还是放弃这种调用多 个模块的好方法,转为全部在一个模块实现的正常形式。确定了总体版面后,就将原先全部 模块综合在一个模块之内,可是一经编译,还是出现了很多意想不到的错误,编译不成功; 一切又得从头检查起,经过多方面的努力,最终得以完成!不过,却比预想的电子钟少了一 些功能。从这次课程设计中,我学到了很多东西,也发现了自己的不足,特别是发现自己不够 有恒心,这与搞技术开发的锲而不舍的精神相违背,所以希望自己在这方面都加强些,编程 能力也有待进一步加强;多进行自我实践,多请教老师同学,争取自己能上一个台阶!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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