当前位置:文档之家› 数字秒表设计EDA课设报告

数字秒表设计EDA课设报告

北华航天工业学院《EDA技术综合设计》课程设计报告报告题目:数字秒表设计作者所在系部:电子工程系作者所在专业:自动化作者所在班级: B08221作者姓名:赵天娇指导教师姓名:崔瑞雪完成时间: 2010年12月1日内容摘要EDA技术是电子设计技术和电子制造技术的核心,目前,电子系统的EDA 技术正从主要着眼于数字逻辑向模拟电路和数模混合电路的方向发展。

本设计主要内容是数字逻辑电路——数字秒表,数字秒表在日常生活中有广泛的用途,秒表的逻辑结构较简单,它主要由显示译码器、十进制计数器、六进制计数器和报警器组成。

四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数;两个6进制计数器:用来分别对十秒和十分进行计数;显示译码器:完成对显示的控制。

根据电路持点,用层次设计概念将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起来联试。

通过MAX+plusⅡ软件,对上述模块设计,仿真无误后,设计顶层文件,仿真无误后,下载到主芯片EPF10K10LC84-4中,按适配划分后的管脚定位,同相关功能块硬件电路接口连线,进行硬件实验。

EPF10K10LC84-4是Altera公司生产的FLEX10K系列可编程逻辑器件。

主要采用了嵌入式阵列,容量高达百万门,为可重复配置的CMOS SRAM工艺,系统工作过程中可随时改变配置,有利于现场编程,完成秒表设计的修改于完善。

关键词EDA、可编程逻辑器件、计数器、显示器目录(字体?)一、概述 (1)二、实验目的 (1)三、单元模块设计 (1)1十进制计数器 (1)2.六进制计数器 (2)3.时间数据分时扫描模块 (3)4.显示译码模块 (4)5.报警电路模块 (6)四、顶层文件原理图 (7)五、硬件要求 (8)六、实验连线 (8)七、实验总结 (8)八、心得体会 (9)九、参考文献 (10)课程设计任务书一、概述秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。

秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。

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

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

二、实验目的(看课设报告模板)1.掌握多位计数器相连的设计方法2.掌握十进制、六进制计数器的设计方法3.巩固多位共阴极扫描显示数码管的驱动及编码4.掌握扬声器的驱动5. 掌握EDA技术的层次化设计方法三、单元模块设计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;architecture behave of count10 isbeginprocess(clr,start,clk)beginif clr='1' then daout<="0000";cout<='0';elsif ( clk'event and clk='1') thenif start='1' thenif 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进制计数器:用来分别对十秒和十分进行计数,其程序如下: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,clk)beginif clr='1' then daout<="0000";cout<='0';elsif ( clk'event and clk='1') thenif start='1' thenif 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.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 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)beginif( clk'event and clk='1') thenif clr='1' thencount<="000";elsif count="101" then count<="000";else count<=count+1;end if;end if;case count iswhen"000"=>daout<=dain1;when"001"=>daout<=dain2;when"010"=>daout<=dain3;when"011"=>daout<=dain4;when"100"=>daout<=dain5;when"101"=>daout<=dain6;when others=>null;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 downto 0);led: out std_logic_vector(6 downto 0));end deled;architecture behave of deled isbeginprocess(num)--abcdefgbegincase num iswhen"0000"=>led<="1111110"; when"0001"=>led<="0110000"; when"0010"=>led<="1101101"; when"0011"=>led<="1111001"; when"0100"=>led<="0110011"; when"0101"=>led<="1011011"; when"0110"=>led<="1011111"; when"0111"=>led<="1110000"; when"1000"=>led<="1111111"; when"1001"=>led<="1111011";when others=>null;end case;end process;end behave;对程序进行编译仿真后,仿真结果如下图:5.报警电路模块 (alarm.vhd)其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity alarm isport(clk,i:in std_logic;q:out std_logic);end alarm;architecture behave of alarm issignal count:integer range 0 to 20;signal q0:std_logic;beginprocess(clk,i)beginif ( clk'event and clk='1') thenif i='0' then count<=0;q0<='0';elsif i='1' thenif count<=19 thencount<=count+1;q0<=not q0;end if;end if;end if;end process;q <=q0;end behave;对程序进行编译仿真后,仿真结果如下图:四、顶层文件原理图1. 总原理图(second_top.gdf)2.编译过程3.仿真结果五、硬件要求:1.主芯片EPF10K10LC84-4。

相关主题