电气EDA课程设计-基于VHDL的电子秒表的设计.doc_第1页
电气EDA课程设计-基于VHDL的电子秒表的设计.doc_第2页
电气EDA课程设计-基于VHDL的电子秒表的设计.doc_第3页
电气EDA课程设计-基于VHDL的电子秒表的设计.doc_第4页
电气EDA课程设计-基于VHDL的电子秒表的设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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和输出信号wei3.0, led6.0。2、模块功能设计本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能, 输入信号是256 Hz,通过分频后为1hz,时钟信号是1 Hz 作为秒表的秒输入, 秒为60 进制计数器, 分也为60 进制计数器, 小时采用二十四进制计数器, 各级进位作为高位的使能控制。(1)六十进制计数器模块设计一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa30、qb30、rco,分别为低4位输出、高4位输出和进位位。图2 六十进制计数器示意图(2)二十四进制计数器模块设计一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa30、qb30,分别为低4位输出、高4位输出。图3 二十四进制计数器示意图(3)分频器模块设计一个分频器,要求将输入256HZ的时钟信号分频为1HZ的时钟信号作为秒表的秒输入。输入信号为clk和rst,分别为时钟信号和复位信号,输出信号为clk_out,为分频器1HZ的时钟信号输出。图4 分频器示意图(4)LED显示模块LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,又称数码管。七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。LED数码管的ga七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码),如显示”0”,字形码为3fh。图5 LED数码管结构图数码管的接口有静态接口和动态接口。动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性 ,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完 成各数码管的轮流点亮(数位选择)。将二十四进制计数器和2个六十进制计数器的输出作为LEDA显示模块的输入,在时钟信号的控制下通过此模块完成6个LED数码管的显示,输出信号为WEI20和LED60,分别为位选信号和段码输出。图6 LED显示示意图四、要求的设计成果答辩时需调通各个模块的程序;各部分模块完成后, 用Quartus 对程序编译、仿真;得出系统仿真波形,包括各模块仿真波形及顶层仿真波形。课程设计报告中需完成系统的设计要求,软件部分需要给出具体的代码,调试的部分要求撰写心得体会。五、进程安排序号课程设计内容学时分配 集中学生学习课程设计关键理论、明确设计任务及设计要求、指导学生分组、安排设计进度0.5天2查阅、收集资料,拟定控制方案0.5天3计数器程序编写及仿真调试0.5天4分频器程序编写及仿真调试0.5天5系统整体仿真调试0.5天6按规范要求撰写课程设计说明书2天7提交设计作品及设计说明书、答辩0.5天合计5天六、主要参考资料1 杨晖大规模可编程逻辑器件与数字系统设计北京:北京航空航天大学出版社,20102 任爱锋基于FPGA的嵌入式系统设计西安: 西安电子科技大学出版社,20113 杨恒FPGA/CPLD最新实用技术指南北京:清华大学出版社,20104 王锁萍电子设计自动化(EDA)教程成都:电子科技大学出版社,20095 路而红电子设计自动化应用技术北京:北京希望电子出版社,20096 潘松VHDL实用教程. 成都:电子科技大学出版社,2010指导教师(签名): 20 年 月 日EDA技术及应用课程设计报告题 目: 基于VHDL的电子秒表的设计 院 (系): 机电与自动化学院 专业班级: 电气工程及其自动化1204 学生姓名: 学 号: 指导教师: 2015年 1月 5日至2015 年 1月9日华中科技大学武昌分校制目 录1.课程设计题目22.课程设计目的23.课程设计主要内容24.具体设计2 4.1系统总体框图2 4.2系统模块功能设计及仿真3 4.2.1六十进制计数器模块3 4.2.2二十四进制计数器模块5 4.2.3分频器模块6 4.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 系统顶层设计图 图1中左边为三个输入信号en,clk,reset,分别为启动/停止开关,时钟信号和复位开关。中间从上至下依次为count24,count60,count60,fenpinqi。右边是clock1和输出信号wei3.0,led6.0。4.2模块功能设计及仿真 本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能, 输入信号是256 Hz,通过分频后为1hz,时钟信号是1 Hz 作为秒表的秒输入, 秒为60 进制计数器, 分也为60 进制计数器, 小时采用二十四进制计数器, 各级进位作为高位的使能控制。4.2.1六十进制计数器模块 功能:实现在计时脉冲的作用下逢六十进一,从而完成对秒部分和分部分进行计数的功能。 图2 六十进制示意图 图2为一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa30、qb30、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。 模块源程序: LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY count60 IS PORT( en,Reset,clk: in STD_LOGIC; qa: out STD_LOGIC_VECTOR(3 DOWNTO 0); qb: out STD_LOGIC_VECTOR(3 DOWNTO 0); rco: OUT STD_LOGIC); END count60; ARCHITECTURE a OF count60 IS BEGIN process(clk) variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0); variable tmb: STD_LOGIC_VECTOR(3 DOWNTO 0); begin If Reset =0then tma:=0000; tmb:=0000; elsif clkevent and clk=1 then if en=1 then rco=tmb(2)and tmb(0)and tma(3)and tma(0); if tma=1001 then tma:=0000; if tmb=0101 then tmb:=0000; else tmb:=tmb+1; end if; else tma:=tma+1; end if; end if; end if; qa=tma;qb=tmb; end process; END a;图3 六十进制仿真波形图4.2.2二十四进制计数器模块 功能:实现在计时脉冲的作用下逢二十四进一,从而完成对小时部分进行计数的功能。 图4 二十四进制计数器示意图 图4为一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa30、qb30,分别为低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。 模块源程序: LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY count24 IS PORT( en,Reset,clk: in STD_LOGIC; qa,qb: out STD_LOGIC_VECTOR(3 DOWNTO 0); END count24; ARCHITECTURE a1 OF count24 IS BEGIN process(clk) variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0); variable tmb: STD_LOGIC_VECTOR(3 DOWNTO 0); begin If Reset = 0then tma:=0000; tmb:=0000; else if clkevent and clk=1 then if en=1 then if tma=1001 then tma:=0000;tmb:=tmb+1; elsif tmb=0010 and tma=0011 then tma:=0000;tmb:=0000; else tma:=tma+1; end if; end if; end if;end if; qa=tma;qb=tmb; end process; END a1;图5 二十四进制仿真波形图4.2.3分频器模块 功能:将输入256HZ的时钟信号分频为1HZ的时钟(计时)信号作为秒表的秒输入。 图6 分频器示意图 图6为一个分频器,输入信号为clk和rst,分别为时钟信号和复位信号,输出信号为clk_out,为分频器1HZ的时钟信号输出。 设计思路:将CLK端口输入的时钟信号经分频后送给CLK_OUT端口;当RST端口输入信号有效(低电平)时,CLK_OUT端口输出信号清零。 模块源程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpinqi IS PORT (CLK,RST:in std_logic; CLK_OUT:out std_logic); END fenpinqi; ARCHITECTURE behav OF fenpinqi IS signal clk_data:std_logic; SIGNAL CNT6 : INTEGER := 0; BEGIN PROCESS(CLK) BEGIN IF RST = 0 THEN CNT6=0 ; ELSIF CLKEVENT AND CLK=1 THEN IF CNT6=255 THEN clk_data=NOT clk_data;CNT6=0; ELSE CNT6=CNT6+1; END IF; END IF; CLK_OUT=clk_data; END PROCESS; END behav ;图7 分频器仿真波形图4.2.4 LED显示模块功能:6个数码管分别显示时、分、秒。LED显示原理:LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,又称数码管。七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。LED数码管的ga七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码),如显示”0”,字形码为3fh。 图8 LED数码管结构图 数码管的接口有静态接口和动态接口。动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性 ,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。图9 LED显示示意图 图9将二十四进制计数器和2个六十进制计数器的输出作为LEDA显示模块的输入信号,在时钟信号的控制下通过此模块完成6个LED数码管的显示,输出信号为WEI20和LED60,分别为位选信号和段码输出。 模块源程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clock1 IS PORT(CLK: IN STD_LOGIC; S1, S2, S3, S4, S5, S6: IN STD_LOGIC_VECTOR(3 DOWNTO 0); WEI: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END ENTITY; ARCHITECTURE behave OF clock1 IS SIGNAL CNT6 : INTEGER RANGE 0 TO 5 := 0; SIGNAL SHUJU: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PRO1:PROCESS(CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN CNT6 WEI = 000; SHUJU WEI = 001; SHUJU WEI = 010; SHUJU WEI = 011; SHUJU WEI = 100; SHUJU WEI = 101; SHUJU = S6;CNT6 NULL; END CASE; END IF; END PROCESS; PRO2: PROCESS(SHUJU) BEGIN CASE SHUJU IS WHEN 0000 = LED LED LED LED LED LED LED LED LED LED LED= 0000000 ; END CASE; END PROCESS; END behave; 图10 LED显示模块仿真波形图5. 课程设计总结 首先,通过本课程设计的学习,不但巩固了课堂上所学的VHDL的基本语法规则和注意事项,以及VHDL程序的基本结构,多种语句的使用等,而且纠正了我在理论学习上的盲点和漏洞。其次,了解了数字秒表的设计原理,以及设计思路。体会到自顶向下的模块化设计方法的优

温馨提示

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

评论

0/150

提交评论