现代科技电子钟课程设计.doc
《现代科技电子钟课程设计.doc》由会员分享,可在线阅读,更多相关《现代科技电子钟课程设计.doc(29页珍藏版)》请在三一办公上搜索。
1、太原理工大学现代科技学院 EDA技术与FPGA应用设计 课程设计 设计名称 数字电子钟 专业班级 学 号 姓 名 指导教师 张 博 太原理工大学现代科技学院专业班级学生姓名课程名称EDA技术与FPGA应用设计设计名称数字电子钟设计周数1.5指导教师张博设计任务主要设计参数设计一个电子钟,具体要求如下: (1) 具有时、分、秒计数显示功能,以24小时循环计时; (2) 具有清零、校时、校分功能; (3) 具有整点蜂鸣器报时功能。 设计内容设计要求(1)根据选题要求,进行方案比较,画出系统框图; (2)使用VHDL语言描述各单元电路; (3)利用Quartus II 10.0软件对单元电路进行编译
2、、仿真、引脚锁定、下载调试; (4)撰写课程设计任务书。 主要参考资 料1 张文爱.EDA技术与FPGA应用设计.电子工业出版社, 2013. 2 贾秀美. 数字电路硬件设计实践. 高等教育出版社, 2008 学生提交归档文件课程设计说明书,主要包括以下内容: (1)设计方案,系统框图,原理分析; (2)系统各模块的VHDL源程序; (3)综合、编程部分,包括各模块的综合结果、仿真分析,系统管脚定义,下载验证结果; (4)设计总结部分,指出设计系统的特点及选用方案优缺点,提出改进意见及展望,总结设计收获、体会; (5)参考文献。 课程设计任务书注:1.课程设计完成后,学生提交的归档文件应按照:
3、封面任务书说明书图纸的顺序进行装订上交(大张图纸不必装订) 2.可根据实际内容需要续表,但应保持原格式不变。指导教师签名: 日期: 2016.06.08 装订线专业班级 学号 姓名 成绩 数 字 电 子 钟一、设计名称: 数字电子钟的实现 二、设计要求:设计一个电子钟,具体要求如下: (1) 具有时、分、秒计数显示功能,以24小时循环计时; (2) 具有清零、校时、校分功能; (3) 具有整点蜂鸣器报时功能。 三、设计内容: (1)根据选题要求,进行方案比较,画出系统框图; (2)使用VHDL语言描述各单元电路; (3)利用Quartus II 10.0软件对单元电路进行编译、仿真、引脚锁定、
4、下载调试; (4)撰写课程设计任务书。 四、CPLD介绍:(1)FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interco
5、nnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无
6、限次的编程。 五、 电子钟总体设计方案:本时钟系统主要由分频器、计数、译码、显示、校时以及闹钟等功能。由于分频器从50MHZ晶振中得到1HZ信号给计数器提供标准时钟,译码器将计数器数据译码数码管能显示的信号,显示模块扫描译码器数据并显示。由于计数的起始时间不可能与标准时间一致,所以需要加入一个分频程序。1.分频程序先后采用过两种方式:(1)signal count : integer;-分频内部时钟process(clk)-分频程序beginif (clkevent and clk=1) thenif(count=N-1)thencount=conv_integer(0);elsecount=
7、count+1;if count(integer(N/2)thenclk1=0;elseclk1=1;end if;end if;end if;end process;这种分频程序可调,但是应用于开发板写入之后发现计数器在十几秒内无响应,十几秒之后正常计数,所以采用了进位时钟,见第二个。(2)signal cnt : std_logic_vector(25 downto 0);process(rst,clk)beginif rst=0 thencnt0);elsif clkevent and clk=1 thencnt=cnt+1;end if;end process;clk1=cnt(24)
8、;这个是应用于分频的分频程序模块,测试结果良好。此分频没有严格分频至1秒种,要求严格可以进一步深入编辑。2.计数模块signal sz_h,sz_l: std_logic_vector(3 downto 0);-内部小时BCDsignal fz_h,fz_l: std_logic_vector(3 downto 0);-内部分钟BCDsignal mz_h,mz_l: std_logic_vector(3 downto 0);-内部秒钟BCDsignal gongneng:std_logic_vector(2 downto 0);-功能控制process(clk1,gongneng,rst)-
9、秒针BCDbeginif rst=0 then-复位有效mz_h=0000;mz_l=0000;elsif kz_1=1 then-调整秒针低位控制按钮mz_l=a;elsif kz_2=1 then-调整秒针高位控制按钮mz_h=a;elsif (gongneng=000 and (clk1event and clk1=1) thenif mz_l=9 then if mz_h=5 thenmz_h=0000; else mz_h=mz_h+1; end if;mz_l=0000;else mz_l=mz_l+1;end if; end if;end process;以上一部分为秒针的计数器
10、模块,通过IF嵌套将复位信号、秒针计数、及置位模块并入同一进程,因为信号不能不在多个进程被赋值,所以只能集成如同一进程。process(clk1,gongneng,rst)-分针BCDbeginif rst=0 then-复位有效fz_h=0000;fz_l=0000;elsif kz_3=1 then-分钟低位置数fz_l=a;elsif kz_4=1 then-分钟高位置数fz_h=a;elsif gongneng=000 thenifclk1event and clk1=1 thenif(mz_l=9 and mz_h=5) thenif fz_l=9 then if fz_h=5 th
11、enfz_h=0000; else fz_h=fz_h+1; end if;fz_l=0000;else fz_l=fz_l+1;end if; end if;end if;end if;end process;process(clk1,gongneng,rst)-时针BCDbeginif rst=0 then-复位控制sz_h=0000;sz_l=0000;elsif kz_5=1 then-时针低位控制sz_l=a;elsif kz_6=1 then-时针高位控制sz_h=a;elsif gongneng=000 then if clk1event and clk1=1 thenif(fz
12、_l=9 and fz_h=5 and mz_l=9 and fz_h=5) thenif(sz_h=2 and sz_l=3)thensz_h=0000;sz_l=0000;elsif sz_l=9 thensz_l=0000; sz_h=sz_h+1; elsesz_l miao_h miao_h miao_h miao_h miao_h miao_h miao_h miao_h miao_h miao_h null;end case;end process;因为实验箱电路板提供的是共阳数码管,所以为低位有效,将进程中的敏感信号切换即可显示各模块的时间显示。4. 功能调整模块jz_0:in
13、 std_logic;-校正开关signal gn:std_logic_vector(2 downto 0);-内部功能计数signal gongneng:std_logic_vector(2 downto 0);-功能控制计数以便拓展 -这里只用到1为调位,0process(jz_0)-功能计数beginif(jz_0event and jz_0=1)then if gn=001 then -此处可选功能增加或减少功能gn=000; elsegn=gn+1; end if;end if;gongneng=gn;end process;以上为功能调整模块,例如本例中想通过000控制正常计数,而
14、001时停止计数,开始调整,此处选择001返回000是因为校时分秒采用了单独的置位开关,所以功能只有停止和计数两种模式。在附录中提供集成功能控制的校时程序。5. 校正时间输入调整模块clk_tz :in std_logic;-单独的时间调整按钮process(clk_tz,gongneng)-校正时间调整beginif gongneng=001 then if clk_tzevent and clk_tz=1then if a=9 then a=0000;elsea=a+1;end if;end if;end if;end process;此段程序虽然可以实现置数校时,但是例如分秒高位最高只有
15、5所以改进程序如下:process(clk_tz)beginif gongneng/=000 then if clk_tzevent and clk_tz=1then if kz_1=1 or kz_3=1 or kz_5=1thenif a=9 then a=0000;elsea=5 then a=0000;elsea4 and a=1 then a2 thena=0000;elsea=a+1;end if;end if; end if;end if;end process;这样就不会出现调整高位时间溢出的问题。6. 在实验过程中还加入了便于观察和研究的校时单独显示模块。process(go
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代科技 电子钟 课程设计
链接地址:https://www.31ppt.com/p-3919240.html