《数字秒表设计EDA课设报告》由会员分享,可在线阅读,更多相关《数字秒表设计EDA课设报告(15页珍藏版)》请在金锄头文库上搜索。
1、北 华 航 天 工 业 学 院EDA技术综合设计课程设计报告报 告 题 目 : 数字秒表设计 作者所在系部: 电子工程系 作者所在专业: 自动化 作者所在班级: B08221 作 者 姓 名 : 赵天娇 指导教师姓名: 崔瑞雪 完 成 时 间 : 2010年12月1日 内 容 摘 要EDA技术是电子设计技术和电子制造技术的核心,目前,电子系统的EDA技术正从主要着眼于数字逻辑向模拟电路和数模混合电路的方向发展。本设计主要内容是数字逻辑电路数字秒表,数字秒表在日常生活中有广泛的用途,秒表的逻辑结构较简单,它主要由显示译码器、十进制计数器、六进制计数器和 报警器组成。四个10进制计数器:用来分别对
2、百分之一秒、十分之一秒、秒和分进行计数;两个6进制计数器:用来分别对十秒和十分进行计数;显示译码器:完成对显示的控制。根据电路持点,用层次设计概念将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起来联试。通过MAX+plus软件,对上述模块设计,仿真无误后,设计顶层文件,仿真无误后,下载到主芯片EPF10K10LC84-4中,按适配划分后的管脚定位,同相关功能块硬件电路接口连线,进行硬件实验。EPF10K10LC84-4是Altera公司生产的FLEX10K系列可编程逻辑器件。主要采用了嵌入式阵列,容量高达百万门,为可重复配置的CMOS SRAM工艺,系统工作过
3、程中可随时改变配置,有利于现场编程,完成秒表设计的修改于完善。关键词EDA、可编程逻辑器件、计数器、显示器目 录(字体?)一、 概 述 1二、实 验 目 的 1 三、单元模块设计 11十进制计数器 12六进制计数器 2 3时间数据分时扫描模块34显示译码模块 45报警电路模块 6四、顶层文件原理图 7 五、硬 件 要 求 8六、实 验 连 线 8七、实 验 总 结 8八、心 得 体 会 9九、参 考 文 献 10课程设计任务书课题名称数字秒表设计完成时间 2010年12月1日指导教师崔瑞雪职称副教授学生姓名赵天娇班 级B08221总体设计要求和技术要点秒表共有6个输出显示,分别为百分之一秒、十
4、分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。当计时达60分钟后,蜂鸣器鸣响10声。除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。秒表的逻辑结构较简单,它主要由显示译码器、十进制计数器、六进制计数器和报警器组成。用层次设计概念将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起来联试。 工作内容及时间进度安排第13周:立题、论证方案设计,编程,调试程序第14周:硬件仿真实验 验收答辩课程设计成果1与设计内容对应的软件程序2课程设计报告书3成果使用说明书4设
5、计工作量要求一、概述 秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和 报警器组成。秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。当计时达60分钟后,蜂鸣器鸣响10声。除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。二、实验目的(看课设报告模板)1掌握多位计数器相连的设计方法2掌握十进制、六进制计数器的设计方法3巩固多位共阴极扫描显示数码管的驱动及编码4掌握扬声器的驱动5. 掌握EDA技术的层次化设计方法 三、单元模
6、块设计 1.十进制计数器(count10.vhd)四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数,其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity count10 isport( clr,start,clk:in std_logic; cout:out std_logic; daout:buffer std_logic_vector(3 downto 0);end count10;archite
7、cture behave of count10 isbeginprocess(clr,start,clk)beginif clr=1 then daout=0000;cout=0; elsif ( clkevent and clk=1) then if start=1 then if daout=1001 then daout=0000;cout=1; else daout=daout+1;cout=0; end if; end if;end if;end process;end behave;对程序进行编译仿真后,仿真结果如下图: 2六进制计数器(count6.vhd)两个6进制计数器:用来
8、分别对十秒和十分进行计数,其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity count6 isport( clr,start,clk:in std_logic; cout:out std_logic; daout:buffer std_logic_vector(3 downto 0);end count6;architecture behave of count6 isbeginprocess(clr,start,c
9、lk)beginif clr=1 then daout=0000;cout=0; elsif ( clkevent and clk=1) then if start=1 then if daout=0101 then daout=0000;cout=1; else daout=daout+1;cout=0; end if; end if;end if;end process;end behave;对程序进行编译仿真后,仿真结果如下图: 3时间数据分时扫描模块(seltime.vhd)其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.
10、std_logic_unsigned.all;use ieee.std_logic_arith.all;entity seltime isport( clr,clk:in std_logic; dain1:in std_logic_vector(3 downto 0); dain2:in std_logic_vector(3 downto 0); dain3:in std_logic_vector(3 downto 0); dain4:in std_logic_vector(3 downto 0); dain5:in std_logic_vector(3 downto 0); dain6:in
11、 std_logic_vector(3 downto 0); sel:out std_logic_vector(2 downto 0); daout:out std_logic_vector(3 downto 0);end seltime;architecture behave of seltime issignal count: std_logic_vector(2 downto 0);beginsel=count;process(clr,clk)begin if( clkevent and clk=1) then if clr=1 then count=000; elsif count=1
12、01 then count=000; else countdaoutdaoutdaoutdaoutdaoutdaoutnull;end case;end process;end behave;对程序进行编译仿真后,仿真结果如下图:4显示译码模块(deled.vhd)显示译码器:完成对显示的控制。其程序如下: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity deled isport( num: in std_logic_vector(3 downt