EDA秒表实验报告.doc
EDA课程设计秒表题 目 数字秒表 学 院 信息学院 专 业 电子信息工程 班 级 11电子A 姓 名 朱彦杰 学 号 指导教师 凌朝东 课题名称秒表完成时间11.28指导教师凌朝东学生姓名朱彦杰班 级11电子A总体设计要求和技术要点设计要求: 5. 秒表,难度系数0.9要求:计时范围为059 分59 秒,精度为百分之一秒;能同时显示分秒信息(LED 数码管)。技术要点:1利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。该秒表计时范围为0秒59分59.99秒,显示的最长时间为59分59秒,计时精度为10毫秒以内,具有复位功能。2.秒表有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出。一、系统组成模块连接图和系统框图分频器十进制计数器时钟频率十进制计数器十进制计数器六进制计数器十进制计数器六进制计数器输出到LED开始清零二、模块器件及其程序1、分频模块及其程序 本模块实现脉冲分频,本实验使用的EP2C5T144C8的频率计进行50MHz分频产生100HZ的脉冲。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpin ISPORT ( CLK: IN STD_LOGIC; OUTCLK: out std_logic );END fenpin;ARCHITECTURE behav OF fenpin ISBEGINPROCESS( CLK )variable cnt:integer range 0 to ;BEGINIF CLK'EVENT AND CLK = '1' THENif cnt= thencnt:=0;outclk<='1'elsecnt:=cnt+1;outclk<='0'end if;END IF;END PROCESS;END behav;2、十进制程序产生99毫秒、秒的低位、分的低位的功能。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport (CLK,CLR,EN :in std_logic;CQ :out std_logic_vector(3 downto 0);COUT:out std_logic );end cnt10;architecture behav of cnt10 isbeginprocess(CLK,CLR,EN)variable cqi :std_logic_vector(3 downto 0);beginif CLR='1' then cqi :=(others =>'0'); elsif CLK'event and CLK='0' thenif EN='1'thenif cqi<9 then cqi :=cqi+1;else cqi := (others =>'0'); end if;end if;end if;if cqi =9 then COUT <='1'else COUT<='0'end if;CQ<=cqi;end process;end behav;3、六进制程序产生秒的高位、分的高位library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6 isport (CLK,CLR,EN :in std_logic;CQ :out std_logic_vector(2 downto 0);COUT :out std_logic );end cnt6;architecture behav of cnt6 isbeginprocess(CLK,CLR,EN)variable cqi :std_logic_vector(2 downto 0);beginif CLR='1' then cqi :=(others =>'0'); elsif CLK'event and CLK='0' thenif EN='1'thenif cqi<5 then cqi :=cqi+1;else cqi := (others =>'0'); end if;end if;end if;if cqi =5 then COUT <='1'else COUT<='0'end if;CQ<=cqi;end process;end behav;三、系统仿真1、六进制仿真图2、十进制仿真图3、分频器仿真图由于采用50Mhz频率仿真时间太长,效果不好,这里采用1Khz频率分频(分频器参数已改为1Khz对应的)得到不错的仿真图。更改的参数为两个“10”,(variable cnt:integer range 0 to 10;BEGINIF CLK'EVENT AND CLK = '1' THENif cnt=10 then)要更改的参数=对应的频率(1000)Hz/100=104、系统仿真图5、硬件实现四、使用说明PIO8口接50Mhz时钟,选择模式0,按键4为开始/暂停按键,按键5为清零按键,该秒表计时范围为0秒59分59.99秒,显示的最长时间为59分59秒,计时精度为10毫秒以内,具有复位功能。五、管脚设置六、心得体会通过本次课程设计,我巩固了关于EDA的许多专业知识。开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译才能得到正确的程序。在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。