EDA数字秒表课程设计

合集下载

EDA数字秒表课程设计报告

EDA数字秒表课程设计报告

课程设计任务书学生姓名:专业班级:电子科学与技术电子00901班指导教师:工作单位:武汉理工大学信息工程学院题目: 数字秒表一、设计目的①根据设计要求,完成对数字秒表的设计。

②进一步加强对QuartusⅡ的应用和对VHDL语言的使用。

二、设计内容和要求①计时精度应大于1/100S,计时器能显示1/100S的时间,提供给计时器内部定时的时钟频率应大于100Hz,这里选用1KHz。

②计时器的最大计时时间为1小时,为此需要6位的显示器,显示的最长时间为59分59.99秒。

③设置有复位和起/停开关,复位开关用来使计数器清零,做好计时准备。

起停开关的使用方法与传统的机械式计数器相同,即按一下,启动计时器开始计时,再按一下计时终止。

三、初始条件CPLD,按键,时钟信号等。

四、时间安排:EDA课程设计布置工作 6.11设计 6.12~6.15硬件调试 6.17~6.19撰写设计报告 6.20~6.21检查硬件、答辩、提交设计报告 6.22指导教师签名:年月日系主任(或责任教师)签名年月日目录摘要 (I)Abstract (II)绪论............................................................................................................................ I II 一系统设计方案. (1)二底层模块设计 (2)2.1 计时电路 (2)2.1.1 时基分频器 (2)2.1.2 100进制计数器 (2)2.1.3 60进制计数器 (3)2.2 计时控制电路 (3)2.3 显示电路 (4)2.3.1 七段译码器 (4)2.3.2 扫描模块 (4)三顶层原理图 (5)四系统仿真 (6)4.1计时电路的仿真 (6)4.2计时控制电路的仿真 (7)4.3 显示电路的仿真 (8)五器件编程与硬件下载 (9)六心得体会 (10)七参考文献 (11)附录 (12)摘要随着人们生活水平的日益提高,社会体系的日益完善,人们对于各种应用器件的要求也越来越高。

基于EDA的数字秒表课程设计

基于EDA的数字秒表课程设计

基于EDA的数字秒表课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握数字秒表的基本原理;2. 学生能描述数字秒表的电路结构,了解各个部分的功能和相互关系;3. 学生能掌握数字秒表设计中所涉及的数字逻辑,如计时、清零、启动/停止等功能的实现。

技能目标:1. 学生能够运用所学知识,使用EDA工具进行数字秒表的电路设计和仿真;2. 学生能够分析并解决数字秒表设计过程中遇到的问题,提高实际操作能力;3. 学生能够通过小组合作,完成数字秒表的调试与优化,提高团队协作能力。

情感态度价值观目标:1. 学生通过本课程的学习,培养对电子设计的兴趣和热情,提高探究精神;2. 学生能够认识到科技发展对日常生活的影响,增强社会责任感和创新意识;3. 学生在小组合作中学会尊重他人意见,培养良好的沟通能力和团队精神。

分析课程性质、学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够独立完成数字秒表的电路设计和仿真;2. 学生能够通过小组合作,完成数字秒表的调试与优化,并撰写实验报告;3. 学生能够对课程中所学知识进行总结,以口头或书面的形式进行分享。

二、教学内容本课程教学内容依据课程目标,紧密结合教材,制定以下详细教学大纲:1. 数字电路基础知识回顾- 复习数字逻辑基础,强调触发器、计数器等基本组件的工作原理。

2. EDA工具介绍- 介绍EDA软件的使用方法,如Multisim、Proteus等。

3. 数字秒表的原理与设计- 讲解数字秒表的电路结构,分析各部分功能;- 引导学生理解秒表的计时原理,探讨如何实现启动、停止、清零等功能。

4. 电路设计与仿真- 指导学生使用EDA工具进行数字秒表的电路设计;- 教学过程中,针对设计过程中可能遇到的问题进行讲解和指导。

5. 小组合作调试与优化- 学生分组进行电路调试,优化设计;- 引导学生学会分析问题、解决问题,提高实际操作能力。

EDA课程设计数字秒表设计

EDA课程设计数字秒表设计

目录数字秒表设计性实验任务书 ........................................................ 错误!未定义书签。

一、设计性实验目的 ............................................................... 错误!未定义书签。

二、设计性实验说明 ............................................................... 错误!未定义书签。

三、实验箱给定硬件 ............................................................... 错误!未定义书签。

四、要求 ................................................................................... 错误!未定义书签。

实验报告 .. (3)一、数字秒表顶层设计 (3)二、数字秒表内部设计 (3)1、分频器 (3)2、十进制计数器 (4)3、六进制计数器 (6)4、二十四进制计数器 (7)5、数据选择和数码管选择模块 (8)6、数码管驱动模块: (10)三、数字秒表仿真波形 (11)四、实验总结 (11)数字秒表设计性实验任务书一、设计性实验目的:在MAX-PLUS II软件平台上,熟练运用VHDL硬件描述语言,完成数字时钟的文本输入或原理图输入、编译、综合、仿真,利用EDA实验箱,实现数字秒表的硬件实现。

二、设计性实验说明:1、数字秒表电路主要由:分频器、扫描显示译码器、六十进制计数器(或由十进制计数器与六进制计数器组成),十二进制计数器(或二十四进制计数器)、一百进制计数器电路组成;2、数字秒表显示由小时(十二或二十四进制任选)、分钟(六十进制)、秒(六十进制)、十分之一秒、百分之一秒组成;3、各模块功能:(1)分频器模块:用来产生100Hz计时脉冲;(2)十二或二十四进制计数器模块:对小时进行计数;(3)六十进制计数器模块:对分秒进行计数;(4)六进制计数器模块:分别对分十位和秒十位进行计数;(5)十进制计数器模块:分别对分个位、秒个位、十分之一秒、百分之一秒进行计数;(6)扫描显示译码器模块:完成对7字段数码管/液晶显示的控制;(7)一百进制计数器模块:对十分之一秒和百分之一秒进行计数;三、实验箱给定硬件:1、系统时钟脉冲信号为10MHz;2、CPLD/FPGA芯片型号:EPM7128SLC84-5、EPM1K30TC144-3、EPM1K100QC208-3(根据实验箱上的芯片型号选择);3、8个7字段共阴显示数码管(选用);4、液晶显示器1602(选用);5、拨码开关、按键;四、要求:1、精确显示小时、分钟、秒;2、具有清零、启动、保持功能;3、显示采用数码管显示或液晶显示;实验报告一、数字秒表顶层设计外部输入:启动/停止信号(start);10MHZ的时钟信号(clk);清零信号(clr);外部输出:位选控制信号(sel0、sel1、sel2);7段数码管显示信号(led0、led1、led2、led3、led4、led5、led6、led7);数字秒表顶层原理图二、数字秒表内部设计1、分频器功能:将10MHz的时钟信号转换成100Hz的计时脉冲,使秒表正常工作。

EDA数字秒表设计课程设计

EDA数字秒表设计课程设计

EDA数字秒表设计专业:自动化班级学号:5090431姓名:2011年 6 月15 日数字秒表设计实验任务书一、设计实验目的:在MAX+plusII软件平台上,熟练运用VHDL语言,完成数字时钟设计的软件编程、编译、综合、仿真,使用EDA实验箱,实现数字秒表的硬件功能。

二、设计实验说明及要求:1、数字秒表主要由:分频器、扫描显示译码器、一百进制计数器、六十进制计数器(或十进制计数器与6进制计数器)、十二进制计数器(或二十四进制计数器)电路组成。

在整个秒表中最关键的是如何获得一个精确的100H Z计时脉冲,除此之外,数字秒表需有清零控制端,以及启动控制端、保持保持,以便数字时钟能随意停止及启动。

2、数字秒表显示由时(12或24进制任选)、分(60进制)、秒(60进制)、百分之一秒(一百进制)组成,利用扫描显示译码电路在八个数码管显示。

3、能够完成清零、启动、保持(可以使用键盘或拨码开关置数)功能。

4、时、分、秒、百分之一秒显示准确。

三、数字时钟组成及功能:1、分频率器:用来产生100H Z计时脉冲;2、十二或二十四进制计数器:对时进行计数3、六十进制计数器:对分和秒进行计数;4、六进制计数器:分别对秒十位和分十位进行计数;5、十进制计数器:分别对秒个位和分个位进行计数;6、扫描显示译码器:完成对7字段数码管显示的控制;四、系统硬件要求:1、时钟信号为10MHz;2、FPGA芯片型号EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3(根据实验箱上FPGA芯片具体选择);3、8个7段扫描共阴级数码显示管;4、按键开关(清零、启动、保持);五、设计内容及步骤:1、根据电路持点,用层次设计概念。

将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,同时加深层次化设计概念;2、软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合;3、适配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,有更深一步了解。

EDA课程设计数字秒表

EDA课程设计数字秒表

课程设计目录第一章:系统设计要求 (3)第二章:实验目的 (3)第三章:实验原理 (3)第四章:系统设计方案 (3)第五章:主要VHDL源程序 (4)1) 十进制计数器的VHDL源程序 (4)2) 六进制计数器的VHDL源程序 (5)3)蜂鸣器的VHDL源程序 (5)4)译码器的VHDL源程序 (6)5)控制选择器的VHDL源程序 (7)6)元原件例化的VHDL源程序 (8)第六章:系统仿真 (10)第七章:系统扩展思路 (11)第八章:设计心得总结 (11)数字秒表的设计一、系统设计要求1.秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。

当计时达60分钟后,蜂鸣器鸣响10声。

2.整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。

3.秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。

在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲。

二、实验目的通过本次课设,加深对EDA技术设计的理解,学会用QuartusⅡ工具软件设计基本电路,熟练掌握VHDL语言,为以后工作使用打下坚实的基础。

三、实验原理秒表由于其计时精确,分辨率高(0.01秒),在各种竞技场所得到了广泛的应用。

秒表的工作原理与数字时基本相同,唯一不同的是秒表的计时时钟信号,由于其分辨率为0.01秒,所以整个秒表的工作时钟是在100Hz的时钟信号下完成。

当秒表的计时小于1个小时时,显示的格式是mm-ss-xx(mm表示分钟:0~59;ss表示秒:0~59;xx表示百分之一秒:0~99),当秒表的计时大于或等于一个小时时,显示的和多功能时钟是一样的,就是hh-mm-ss(hh表示小时:0~99),由于秒表的功能和钟表有所不同,所以秒表的hh表示的范围不是0~23,而是0~99,这也是和多功能时钟不一样的地方。

EDA多功能秒表课程设计

EDA多功能秒表课程设计

EDA多功能秒表课程设计一、课程目标知识目标:1. 学生能理解EDA多功能秒表的基本原理和功能。

2. 学生能掌握秒表的计时、计次和闹钟等功能操作。

3. 学生了解秒表在日常生活和运动竞赛中的应用。

技能目标:1. 学生能运用所学知识,独立操作多功能秒表,进行计时和计次。

2. 学生能通过分析秒表数据,提高解决问题的能力。

3. 学生能运用秒表进行简单的运动计时和数据分析。

情感态度价值观目标:1. 学生培养对电子产品的兴趣,激发学习电子技术知识的热情。

2. 学生在团队协作中,培养合作精神和沟通能力。

3. 学生通过运用秒表进行运动计时,培养公平竞争和尊重规则的意识。

课程性质:本课程为实践性较强的电子技术课程,结合多功能秒表的实用功能,使学生掌握基本操作和运用。

学生特点:学生处于好奇心强、动手能力逐渐增强的阶段,对新鲜事物充满兴趣,善于合作与分享。

教学要求:教师需引导学生主动参与,注重实践操作,培养学生动手能力和解决问题的能力。

在教学过程中,关注学生的情感态度,激发学生的学习兴趣,提高学生的综合素质。

通过本课程的学习,使学生将所学知识应用于实际生活,达到学以致用的目的。

二、教学内容本章节教学内容主要包括以下几部分:1. 多功能秒表的原理与结构:介绍秒表的电子元件、工作原理和整体结构,使学生了解秒表的内部构造和功能实现方式。

教材章节:第一章 电子元件与电路基础2. 多功能秒表的操作与使用:详细讲解秒表的计时、计次、闹钟等功能操作,以及如何进行复位、设置等操作。

教材章节:第二章 数字电路与计时器3. 秒表在运动计时中的应用:通过实例分析,使学生了解秒表在运动竞赛中的实际应用,如田径、游泳等项目的计时。

教材章节:第三章 计时器在体育运动中的应用4. 秒表数据的分析与处理:教授学生如何分析秒表数据,进行简单的数据处理,提高学生解决问题的能力。

教材章节:第四章 数据分析与处理5. 实践操作:安排学生进行实际操作,如使用秒表进行计时、计次,分析数据等,巩固所学知识。

EDA课程设计--数字秒表设计

EDA课程设计--数字秒表设计

电子课程设计—数字秒表的设计数字秒表的设计数字秒表的设计一、设计任务与要求1、数字秒表的计时范围是0秒~59分59.99秒,显示的最长时间为59分59秒。

秒。

2 2、数字秒表的计时精度是、数字秒表的计时精度是10ms 10ms。

3 3、、复位开关可以在任何情况下使用,复位开关可以在任何情况下使用,即便在计时过程中,即便在计时过程中,即便在计时过程中,只要按一下复位只要按一下复位开关,计时器就清零,并做好下次计时的准备。

开关,计时器就清零,并做好下次计时的准备。

4 4、、具有启具有启//停开关,停开关,即按一下启即按一下启即按一下启//停开关,停开关,启动计时器开始计时,启动计时器开始计时,启动计时器开始计时,再按一下再按一下启/停开关则停止计时。

停开关则停止计时。

二、总体框图由频率信号输出端输出频率为100HZ 的时钟信号,输入到微妙模块的时钟端clk ,高/低电平电平频率信号输入输入微妙模块微妙模块秒模块秒模块分模块分模块置数/位选位选显示模块显示模块进位进位微妙模块为100进制的计数器,产生的进位信号co 输入到下一级秒模块的时钟端,以此类推,直到分模块计数到59进60时,产生的进位信号不输出,计数清零。

将微妙、秒、分产生的计数通过置数/位选再通过显示模块实时显示。

设计方案:利用一块芯片完成除时钟源,利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功按键和显示器之外的所有数字电路功能。

所有数字逻辑功能都在CPLD 器件上用VHDL 语言实现。

这样设计具有体积小,设计周期短,调试方便,故障率地和修改升级容易等特点,本设计采用自顶向下,混合输入方式(原理图输入——顶层文件链接和VHDL 语言输入——各模块程序设计)实现数字秒表的设计,下载和调试。

三、功能模块1.1. 微秒模块微秒模块采用VHDL 语言输入方式,以时钟clk clk,清零信号,清零信号clr 以及暂停信号STOP 为进程敏感变量,程序如下:为进程敏感变量,程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity MINSECONDb isport(clk,clrm,stop:in std_logic;----时钟时钟//清零信号清零信号secm1,secm0:out std_logic_vector(3 downto 0);----秒高位秒高位//低位co:out std_logic);------- co:out std_logic);-------输出输出输出//进位信号进位信号 end MINSECONDb;architecture SEC of MINSECONDb is signal clk1,DOUT2:std_logic;beginprocess(clk,clrm)variable cnt1,cnt0:std_logic_vector(3 downto 0);---计数计数 VARIABLE COUNT2 :INTEGER RANGE 0 TO 10 beginIF CLK'EVENT AND CLK='1'THENIF COUNT2>=0 AND COUNT2<10 THEN COUNT2:=COUNT2+1; ELSE COUNT2:=0;DOUT2<= NOT DOUT2; END IF; END IF;if clrm='1' then----if clrm='1' then----当当clr 为1时,高低位均为0cnt1:="0000"; cnt0:="0000";elsif clk'event and clk='1' then if stop='1' then cnt0:=cnt0; cnt1:=cnt1; end if;if cnt1="1001" and cnt0="1000" ;then----then----当记数为当记数为9898(实际是经过(实际是经过59个记时脉冲)个记时脉冲) co<='1';----co<='1';----进位进位进位cnt0:="1001";----cnt0:="1001";----低位为低位为9elsif cnt0<"1001" then----elsif cnt0<"1001" then----小于小于9时 cnt0:=cnt0+1;----cnt0:=cnt0+1;----计数计数计数 --elsif cnt0="1001" then --clk1<=not clk1;elsecnt0:="0000";if cnt1<"1001" then----if cnt1<"1001" then----高位小于高位小于9时 cnt1:=cnt1+1; elsecnt1:="0000"; co<='0'; end if; end if; end if;secm1<=cnt1; secm0<=cnt0;end process; end SEC;程序生成器件如图:clk clrm stopsecm1[3..0]secm0[3..0]coMINSECONDbinst3微妙模块生成的器件可以实现带有100进制进位和清零功能,暂停等功能,MINSECONDb 输入为100HZ 脉冲和低电平的清零信号CLR 与暂停信号STOP STOP,输出,输出微妙个位、十位及进位信号CO CO。

eda课程设计资料 实验一 数字式秒表

eda课程设计资料 实验一 数字式秒表

实验一 数字式秒表设计一、设计任务与技术指标试设计并制作一个用七段数码管显示的秒表,并具有如下指标:1. 设计一个用七段数码管显示的秒表,它有“分”、“秒”、“百分之一秒” 十进制显示,如图1所示:图1 秒表表盘示意图2. 开机显示00.00.00,最大显示23.59.99; 3. 能够准确地计时并正确显示时间,计时精度 0.01秒;4. 用户可以随时开始计时,也可随时结束计时。

二、设计原理该系统由时钟信号发生器、分频电路、计时电路、译码显示电路等模块组成。

其总体框图如图2所示:图2 系统总体框图1.时钟信号发生器使用GW48系统主板上的“CL0CK0”时钟频率来实现(信号频率范围:0.5Hz ~50MHz ,建议选用1.5MHz 信号源)。

2.分频电路的设计设输入频率为1.5MHz 的脉冲信号,要求得到100Hz 的脉冲信号,那么分频系数的计算公式如下:分频系数=分频后的频率分频前的频率3.计时电路在数字电路中,计时电路一般是用计数器来实现的,例如时间的“秒”与“分”就是一个60进制的问题。

60进制计数器外部端口图如图3所示:occlky[5…0]图3 计数器外部端口图时钟信号 发 生 器 分频 电路 计时 电路 数码管显示驱动电路计数器其中,oc是计数器进位输出端。

y[5…0]为本位输出端。

三、设计平台及可选器件GW48-CK EDA实验板开发系统、EP1K30、共阴极七段数码管、发光二极管、按键开关、电阻、电容等。

选用平台的模式:No.7四、设计要求1.编制VHDL程序,并在QuartusII环境下编译通过;2.对源程序进行逻辑仿真,仿真结果正确;3.将编译后的程序下载至目标器件,进行硬件测试,硬件测试结果正确;4.各块采用文本编辑的方式生成元件图形,在直接利用元件图形编辑秒表。

五、设计报告要求1.简单叙述设计过程(包括原理、方案);2.画出完整的顶层文件原理图;3.给出完整的程序设计文档;4.说明调试方法与调试过程;。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA课程设计实验报告数字秒表班级:电1104姓名:***学号:********设计数字秒表一、实验要求:1.要求设置启/停开关。

当按下启/停开关,将启动秒表开始计时,当再按一下启/停开关时,将终止计时操作。

2.数字秒表的计时范围是0秒~59分59.99……3.要求计时精度为0.01s。

4.复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就清零,并做好下次计时的准备。

二、实验分模块源程序及仿真结果:(一)时积分频模块的VHDL源程序(CB10.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CB10 ISPORT(CLK:IN STD_LOGIC;CO:OUT STD_LOGIC);END CB10;ARCHITECTURE ART OF CB10 ISSIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF RISING_EDGE(CLK) THENIF COUNT="1001"THENCOUNT<="0000";CO<='1';ELSECOUNT<=COUNT+1;CO<='0';END IF;END IF;END PROCESS;END ART;CB10仿真波形(二)控制模块的VHDL源程序(CTRL.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL ISPORT(CLR,CLK,SP:IN STD_LOGIC;EN:OUT STD_LOGIC);END;ARCHITECTURE BEHA VE OF CTRL ISTYPE STATES IS ARRAY(1 DOWNTO 0) OF STD_LOGIC; CONSTANT S0: STATES:="00";CONSTANT S1: STATES:="01";CONSTANT S2: STATES:="11";CONSTANT S3: STATES:="10";SIGNAL CURRENT_STATE,NEXT_STATE:STATES; BEGINCOM:PROCESS(SP,CURRENT_STATE,NEXT_STATE) BEGINCASE CURRENT_STATE ISWHEN S0=>EN<='0';IF SP='1' THENNEXT_STATE<=S1;ELSENEXT_STATE<=S0;END IF;WHEN S1=>EN<='1';IF SP='1' THENNEXT_STATE<=S1;ELSENEXT_STATE<=S2;END IF;WHEN S2=>EN<='1';IF SP='1' THENNEXT_STATE<=S3;ELSENEXT_STATE<=S2;END IF;WHEN S3=>EN<='0';IF SP='1' THENNEXT_STATE<=S3;ELSENEXT_STATE<=S0;END IF;END CASE;END PROCESS;SYNCH:PROCESS(CLR,CLK,SP)BEGINIF CLR='1' THENCURRENT_STATE<=S0;ELSIF CLK'EVENT AND CLK='1' THENCURRENT_STATE<=NEXT_STATE;END IF;END PROCESS;END;CTRL仿真波形(三)计时模块的VHDL源程序(1)十进制计数器的VHDL 源程序(CDU10.VDH)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CDU10 ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;EN:IN STD_LOGIC;CN:OUT STD_LOGIC;COUNT10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CDU10;ARCHITECTURE ART OF CDU10 ISSIGNAL SCOUNT10:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINCOUNT10<=SCOUNT10;PROCESS(CLK,CLR,EN)BEGINIF(CLR='1') THENSCOUNT10<="0000";CN<='0';ELSIF RISING_EDGE(CLK) THENIF(EN='1') THENIF SCOUNT10="1001" THENCN<='1';SCOUNT10<="0000";ELSECN<='0';SCOUNT10<=SCOUNT10+1;END IF;END IF;END IF;END PROCESS;END ART;CDU10仿真波形(2)六进制计数器的VHDL 源程序(CDU6.VDH)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CDU6 ISPORT(CLK,CLR,EN:IN STD_LOGIC;CN:OUT STD_LOGIC;COUNT6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CDU6;ARCHITECTURE ART OF CDU6 ISSIGNAL SCOUNT6:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINCOUNT6<=SCOUNT6;PROCESS(CLR,EN,CLK)BEGINIF (CLR='1') THENSCOUNT6<="0000";CN<='0';ELSIF RISING_EDGE(CLK) THENIF (EN='1') THENIF SCOUNT6="0101" THENSCOUNT6<="0000";CN<='1';ELSESCOUNT6<=SCOUNT6+1;CN<='0';END IF;END IF;END IF;END PROCESS;END ART;CDU6仿真波形(3)计时器的VHDL源程序(COUNT.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT ISPORT(CLK,CLR,EN:IN STD_LOGIC;S_1MS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_10MS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_100MS:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_1S:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_10S:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);M_1MIN:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);M_10MIN:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);HOUR:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END COUNT;ARCHITECTURE ART OF COUNT ISCOMPONENT CDU10PORT(CLK,CLR,EN:IN STD_LOGIC;CN:OUT STD_LOGIC;COUNT10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END COMPONENT CDU10;COMPONENT CDU6PORT(CLK,CLR,EN:IN STD_LOGIC;CN:OUT STD_LOGIC;COUNT6:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END COMPONENT CDU6;SIGNAL A,B,C,D,E,F,G,H:STD_LOGIC;BEGINUL:CDU10 PORT MAP(CLK,CLR,EN,A,S_1MS);U2:CDU10 PORT MAP(A,CLR,EN,B,S_10MS);U3:CDU10 PORT MAP(B,CLR,EN,C,S_100MS);U4:CDU6 PORT MAP(C,CLR,EN,D,S_1S);U5:CDU10 PORT MAP(D,CLR,EN,E,S_10S);U6:CDU6 PORT MAP(E,CLR,EN,F,M_1MIN);U7:CDU10 PORT MAP(F,CLR,EN,G,M_10MIN);U8:CDU6 PORT MAP(G,CLR,EN,H,HOUR);END ART;COUNT仿真波形(四)显示模块的VHDL源程序数据选择器的VHDL源程序(MULX.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MULX ISPORT(CLK1,CLR,EN:IN STD_LOGIC;S_1MS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_10MS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_100MS:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_1S:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_10S:IN STD_LOGIC_VECTOR(3 DOWNTO 0);M_1MIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);M_10MIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);HOUR:IN STD_LOGIC_VECTOR(3 DOWNTO 0);OUTBCD:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);SEG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END MULX;ARCHITECTURE ART OF MULX ISSIGNAL COUNT: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLR,CLK1)BEGINIF CLR='1' THENCOUNT<="1111";ELSIF RISING_EDGE(CLK1)THENIF EN='1' THENIF COUNT="1001" THENCOUNT<="0000";ELSECOUNT<=COUNT+'1';END IF;END IF;END IF;END PROCESS;PROCESS(CLK1)BEGINIF CLK1'EVENT AND CLK1='1' THENCASE COUNT ISWHEN"0000"=>OUTBCD<=S_1MS; SEG<="00000001";WHEN"0001"=>OUTBCD<=S_10MS; SEG<="00000010";WHEN"0010"=>OUTBCD<=S_100MS; SEG<="00000100";WHEN"0011"=>OUTBCD<=S_1S; SEG<="00001000";WHEN"0100"=>OUTBCD<=S_10S; SEG<="00010000";WHEN"0101"=>OUTBCD<=M_1MIN; SEG<="00100000";WHEN"0110"=>OUTBCD<=M_10MIN; SEG<="01000000";WHEN"0111"=>OUTBCD<=HOUR; SEG<="10000000";WHEN"1000"=>OUTBCD<=S_1MS; SEG<="00000001";WHEN"1001"=>OUTBCD<=S_10MS; SEG<="00000010";WHEN OTHERS=>OUTBCD<="0000"; SEG<="00000000";END CASE;END IF;END PROCESS;END ART;MULX仿真波形(五)BCD七段译码驱动器的VHDL源程序(BCD7.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BCD7 ISPORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END BCD7;ARCHITECTURE ART OF BCD7 ISBEGINLED<="1111110"WHEN BCD="0000" ELSE"0110000"WHEN BCD="0001" ELSE"1101101"WHEN BCD="0010" ELSE"1111001"WHEN BCD="0011" ELSE"0110011"WHEN BCD="0100" ELSE"1011011"WHEN BCD="0101" ELSE"1011111"WHEN BCD="0110" ELSE"1110000"WHEN BCD="0111" ELSE"1111111"WHEN BCD="1000" ELSE"1111011"WHEN BCD="1001" ELSE"0000000";END ART;BCD7仿真波形(六)分频模块的VHDL源程序(fenpin.VHD)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport(clk:in std_logic;second:BUFFER std_logic:='0');end;architecture beha of fenpin issignal s1:integer range 0 to 3000;beginprocess(clk)beginif (clk'event and clk='0') thenif(s1=2500) thensecond<=not second;s1<=0;else s1<=s1+1;end if;end if;end process;end;分频模块的仿真波形(七)顶层设计的原理图三、整体电路图原理说明:在电路图中,CLK是计时脉冲,由于硬件试验箱中没有合适的频率脉冲来准确计时,因此需要通过一个分频器将5000HZ的脉冲分频成毫秒计时,将已分频的脉冲输入进位元件,进位元件中包括十进制与六进制的进位功能,其中1毫秒、10毫秒、100毫秒、1秒、1分钟都为十进制进位,10秒、10分钟为六进制。

相关文档
最新文档