您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电气EDA课程设计基于VHDL的电子秒表的设计
EDA技术及应用课程设计任务书一、设计题目基于VHDL的电子秒表的设计二、设计主要内容设计一个电子秒表,给定时钟信号为256HZ,要求系统达到以下功能:(1)用6个数码管分别显示时、分、秒,计时范围为:00:00:00~23:59:59。(2)计时精度是1s。(3)具有启/停开关,复位开关,可以在任何情况下使用。三、原始资料电子秒表的基本工作原理就是不断输出连续脉冲给加法计数器,加法计数器通过译码器来显示它所记忆的脉冲周期个数。1、系统总体框图根据系统设计要求,系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、LED显示模块组成。系统顶层设计图如图1所示图1系统顶层设计图图1中左边为三个输入信号en,clk,reset,分别为启动/停止开关,时钟信号和复位开关。中间从上至下依次为count24,count60,count60,fenpinqi。右边是clock1和输出信号wei[3..0],led[6.0]。2、模块功能设计本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能,输入信号是256Hz,通过分频后为1hz,时钟信号是1Hz作为秒表的秒输入,秒为60进制计数器,分也为60进制计数器,小时采用二十四进制计数器,各级进位作为高位的使能控制。(1)六十进制计数器模块设计一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0]、rco,分别为低4位输出、高4位输出和进位位。图2六十进制计数器示意图(2)二十四进制计数器模块设计一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0],分别为低4位输出、高4位输出。图3二十四进制计数器示意图(3)分频器模块设计一个分频器,要求将输入256HZ的时钟信号分频为1HZ的时钟信号作为秒表的秒输入。输入信号为clk和rst,分别为时钟信号和复位信号,输出信号为clk_out,为分频器1HZ的时钟信号输出。图4分频器示意图(4)LED显示模块LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,又称数码管。七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码),如显示”0”,字形码为3fh。图5LED数码管结构图数码管的接口有静态接口和动态接口。动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。将二十四进制计数器和2个六十进制计数器的输出作为LEDA显示模块的输入,在时钟信号的控制下通过此模块完成6个LED数码管的显示,输出信号为WEI[2…0]和LED[6…0],分别为位选信号和段码输出。图6LED显示示意图四、要求的设计成果答辩时需调通各个模块的程序;各部分模块完成后,用Quartus对程序编译、仿真;得出系统仿真波形,包括各模块仿真波形及顶层仿真波形。课程设计报告中需完成系统的设计要求,软件部分需要给出具体的代码,调试的部分要求撰写心得体会。五、进程安排序号课程设计内容学时分配集中学生学习课程设计关键理论、明确设计任务及设计要求、指导学生分组、安排设计进度0.5天2查阅、收集资料,拟定控制方案0.5天3计数器程序编写及仿真调试0.5天4分频器程序编写及仿真调试0.5天5系统整体仿真调试0.5天6按规范要求撰写课程设计说明书2天7提交设计作品及设计说明书、答辩0.5天合计5天六、主要参考资料[1]杨晖.大规模可编程逻辑器件与数字系统设计.北京:北京航空航天大学出版社,2010.[2]任爱锋.基于FPGA的嵌入式系统设计.西安:西安电子科技大学出版社,2011.[3]杨恒.FPGA/CPLD最新实用技术指南.北京:清华大学出版社,2010.[4]王锁萍.电子设计自动化(EDA)教程.成都:电子科技大学出版社,2009.[5]路而红.电子设计自动化应用技术.北京:北京希望电子出版社,2009.[6]潘松.VHDL实用教程.成都:电子科技大学出版社,2010.指导教师(签名):20年月日《EDA技术及应用》课程设计报告题目:基于VHDL的电子秒表的设计院(系):机电与自动化学院专业班级:电气工程及其自动化1204学生姓名:学号:指导教师:2015年1月5日至2015年1月9日华中科技大学武昌分校制第1页目录1.课程设计题目…………………………………………………………………………………22.课程设计目的…………………………………………………………………………………23.课程设计主要内容……………………………………………………………………………24.具体设计………………………………………………………………………………………24.1系统总体框图………………………………………………………………………………24.2系统模块功能设计及仿真…………………………………………………………………34.2.1六十进制计数器模块……………………………………………………………………34.2.2二十四进制计数器模块…………………………………………………………………54.2.3分频器模块………………………………………………………………………………64.2.4LED显示模块……………………………………………………………………………85.课程设计总结………………………………………………………………………………116.参考文献……………………………………………………………………………………12第2页1.课程设计题目基于VHDL的电子秒表的设计2.课程设计目的(1)熟悉并理解VHDL程序,掌握VHDL的格式和语法规则。(2)掌握相关的EDA知识。(3)了解数字秒表的设计原理。(4)熟悉掌握程序设计思路及运用VHDL语言控制。(5)加深对数字系统自顶向下的模块化设计思想的理解。(6)熟悉QuartusⅡ软件的使用方法,重点掌握编译和仿真的操作。3.课程设计主要内容设计一个电子秒表,给定时钟信号为256HZ,要求系统达到以下功能:(1)用6个数码管分别显示时、分、秒,计时范围为:00:00:00~23:59:59。(2)计时精度是1s。(3)具有启/停开关,复位开关,可以在任何情况下使用。4.具体设计电子秒表的基本工作原理就是不断输出连续脉冲给加法计数器,加法计数器通过译码器来显示它所记忆的脉冲周期个数。4.1系统总体框图根据系统设计要求,系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、LED显示模块组成。系统顶层设计图如图1所示。图1系统顶层设计图第3页图1中左边为三个输入信号en,clk,reset,分别为启动/停止开关,时钟信号和复位开关。中间从上至下依次为count24,count60,count60,fenpinqi。右边是clock1和输出信号wei[3..0],led[6.0]。4.2模块功能设计及仿真本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能,输入信号是256Hz,通过分频后为1hz,时钟信号是1Hz作为秒表的秒输入,秒为60进制计数器,分也为60进制计数器,小时采用二十四进制计数器,各级进位作为高位的使能控制。4.2.1六十进制计数器模块功能:实现在计时脉冲的作用下逢六十进一,从而完成对秒部分和分部分进行计数的功能。图2六十进制示意图图2为一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0]、rco,分别为低4位输出、高4位输出和进位位。设计思路:qb、qa端口输出分别为数的十位个位,qb输出端口取值范围为0-5,qa输出端口取值范围为0-9,rco端口输出进位信号。在时钟(计时)信号上升沿同步下,Reset端口输入复位信号对qa,qb端口的输出进行同步的清零,低电平有效;在时钟(计时)信号上升沿同步下,en使能端为高电平时,当qb=5,qa=9,rco=0,那么rco产生进位信号,qa清零,qb清零;当qa和qb为其他值时,qa进行加1计数,直到值为9时,qa清零,qb加1。模块源程序:LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;ENTITYcount60ISPORT(en,Reset,clk:inSTD_LOGIC;qa:outSTD_LOGIC_VECTOR(3DOWNTO0);第4页qb:outSTD_LOGIC_VECTOR(3DOWNTO0);rco:OUTSTD_LOGIC);ENDcount60;ARCHITECTUREaOFcount60ISBEGINprocess(clk)variabletma:STD_LOGIC_VECTOR(3DOWNTO0);variabletmb:STD_LOGIC_VECTOR(3DOWNTO0);beginIfReset='0'thentma:=0000;tmb:=0000;elsifclk'eventandclk='1'thenifen='1'thenrco=tmb(2)andtmb(0)andtma(3)andtma(0);iftma=1001thentma:=0000;iftmb=0101thentmb:=0000;elsetmb:=tmb+1;endif;elsetma:=tma+1;endif;endif;endif;qa=tma;qb=tmb;endprocess;ENDa;图3六十进制仿真波形图第5页4.2.2二十四进制计数器模块功能:实现在计时脉冲的作用下逢二十四进一,从而完成对小时部分进行计数的功能。图4二十四进制计数器示意图图4为一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0],分别为低4位输出、高4位输出。设计思路:qb、qa端口输出分别为数的十位个位,qb输出端口取值范围为0-2,qa输出端口取值范围为0-9。在时钟(计时)信号上升沿同步下,Reset端口输入复位信号对qa,qb端口的输出进行同步的清零,低电平有效;在时钟(计时)信号上升沿同步下,en使能端为高电平时,当qb=2,qa=3,那么qb清零,qa清零;当qa和qb为其他值时,qa进行加1计数,直到值为9时,qa清零,qb加1。模块源程序:LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;ENTITYcount24ISPORT(en,Reset,clk:inSTD_LOGIC;qa,qb:outSTD_LOGIC_VECTOR(3DOWNTO0);ENDcount24;ARCHITECTUREa1OFcount24ISBEGINprocess(clk)variabletma:STD_LOGIC_VECTOR(3DOWNTO0);variabletmb:STD_LOGIC_VECTOR(3DOWNTO0);beginIfReset='0'thentma:=0000;tmb:=0000;elseifclk'eventandclk='1'then第6页ifen='1'theniftma=1001thentma:=0000;tmb:=tmb+1;elsiftmb=0010andtma=0011thentma:=0000;tmb:=0000;elsetma:=tma+1;endif;endif;endif;endif;qa=tma;qb
本文标题:电气EDA课程设计基于VHDL的电子秒表的设计
链接地址:https://www.777doc.com/doc-2213497 .html