EDA课程设计报告_第1页
EDA课程设计报告_第2页
EDA课程设计报告_第3页
EDA课程设计报告_第4页
EDA课程设计报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、课程实践报告 题目名称 硬件描述语言与EDA技术实践学院名称 物理与电气工程学院 专业班级 2011级自动化一班 学 号 学生姓名 刘杰华 指导教师 李 斌 一、课程设计的内容1、课程设计要求设计一个以“秒”为基准信号的简单数字钟,显示时、分、秒,同时可实现整点报时和清零。2、设计方案方案一:设计采用底层文件与顶层文件都用VHDL语言进行设计,同时采用手动校时功能。方案二:设计的底层文件采用VHDL语言设计,顶层文件用原理图进行设计,同时采用脉冲校时功能。最终方案为方案二。顶层文件采用原理图设计可以更加直观的了解电路原理,以及进行电路的调试和检验。而脉冲校时相对手动按键校时更为方便。二、设计思

2、路1、设计系统组成:系统由秒计数器、分计数器、小时计数器、数码管扫描模块、译码模块、整点报时模块、分频模块和按键防抖模块构成。2、工作原理:系统输入2.5kHZ的信号,经过分频后,得到1HZ、50HZ和2.5HZ的信号;将1Hz的信号送入时钟计数器模块中作为计数基准脉冲,50Hz的信号作为按键防抖模块的时钟脉冲信号,2.5Hz的信号作为校时脉冲信号,而2.5kHz的信号作为数码管扫描脉冲信号。时分秒的计数信号经过数码管扫描模块,由译码模块输出经数码管显示。3、设计系统的功能1)时钟计数:由输入1HZ的时钟信号完成时、分、秒的正确计时并且显示所计的数字;对秒、分实现60进制计数,即从0到59循环

3、计数;对时实现24进制技术,即从0到23循环计数;并且在实验设备的数码管上显示。2)清零功能:CLR_SM和CLR_H分别为秒分与小时的复位键,高电平时实现清零的功能,低电平时为正常计数。方便调时的实现。3)调时功能:通过校时键HOUR_SET和MIN_SET的设置可以进行时和分的设置。高电平时为正常计数,低电平时为时分的设置。4)数码管显示:由6个7段数码管同时显示时、分、秒。5)整点报时功能:当时钟计数到达59分59秒时,报时模块会产生一个1s的高电平使蜂鸣器报时。三、系统模块功能分析1、秒计数器秒计数模块有秒时钟信号输入端、RESET清零输入端,分时钟信号输出端CTMIN、秒各位输出端S

4、EC0和秒十位输出端SEC1。秒计数器VHDL源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity SECOND is port (CLK, RESET: in STD_LOGIC; CTMIN: out STD_LOGIC; SEC1, SEC0: out STD_LOGIC_VECTOR(3 DOWNTO 0);end entity SECOND; architecture ART of SECOND issignal Tsec1, Tsec0: STD_LOGIC_VECTO

5、R(3 DOWNTO 0);begin process (CLK, RESET) is begin if (RESET = 1) then Tsec1 = 0000; Tsec0 = 0000; elsif (CLKEVENT and CLK = 1) then if (Tsec1 = 0101 and Tsec0 = 1001) then Tsec1 = 0000; Tsec0 = 0000; CTMIN = 1; elsif (Tsec0 = 1001) then Tsec0 = 0000; Tsec1 = Tsec1 + 0001; CTMIN = 0; else Tsec0 = Tse

6、c0 + 0001; CTMIN = 0; end if; end if; SEC1 = Tsec1; SEC0 = Tsec0; end process;end architecture ART;仿真波形:2、分计数器分计数模块有分时钟信号输入端、RESET清零输入端,小时时钟信号输出端CTHOUR、分各位输出端MIN0和分十位输出端MIN1。分计数器VHDL源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity MINUTE is port (CLK, RESET: in STD

7、_LOGIC; CKHOUR: out STD_LOGIC; MIN1, MIN0: out STD_LOGIC_VECTOR(3 DOWNTO 0);end entity MINUTE; architecture ART of MINUTE issignal Tmin1, Tmin0: STD_LOGIC_VECTOR(3 DOWNTO 0);begin process (CLK, RESET) is begin if (RESET = 1) then Tmin1 = 0000; Tmin0 = 0000; elsif (CLKEVENT and CLK = 1 and CLKLAST_VA

8、LUE = 0) then if (Tmin1 = 0101 and Tmin0 = 1001) then Tmin1 = 0000; Tmin0 = 0000; CKHOUR = 1; elsif (Tmin0 = 1001) then Tmin0 = 0000; Tmin1 = Tmin1 + 0001; CKHOUR = 0; else Tmin0 = Tmin0 + 0001; CKHOUR = 0; end if; end if; MIN1 = Tmin1; MIN0 = Tmin0; end process;end architecture ART;仿真波形:3、时计数器时计数模块

9、有时时钟信号输入端、RESET清零输入端,时各位输出端HOUR0和时十位输出端HOUR1。时计数器VHDL源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity HOUR is port (CLK, RESET: in STD_LOGIC; HOUR1, HOUR0: out STD_LOGIC_VECTOR(3 DOWNTO 0);end entity HOUR; architecture ART of HOUR issignal Thour1, Thour0: STD_LOGIC

10、_VECTOR(3 DOWNTO 0);begin process (CLK, RESET) is begin if (RESET = 1) then Thour1 = 0000; Thour0 = 0000; elsif (CLKEVENT and CLK = 1 and CLKLAST_VALUE = 0) then if (Thour1 = 0010 and Thour0 = 0011) then Thour1 = 0000; Thour0 = 0000; elsif (Thour0 = 1001) then Thour0 = 0000; Thour1 = Thour1 + 0001;

11、else Thour0 = Thour0 + 0001; end if; end if; HOUR1 = Thour1; HOUR0 = Thour0; end process;end architecture ART;仿真波形:4、数码管扫描模块每当扫描信号CKDSP有一上升沿脉冲时,数码管扫描模块就会由NUM端口向译码模块输送显示数据;每一个上升沿脉冲改变一次输出数据的来源,在时个位、时十位,分各位、分十位,秒各位、秒十位间循环选择。数码管扫描模块VHDL源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSI

12、GNED.ALL;entity SEL_CLOCK is port (CKDSP: in STD_LOGIC; SEC0,SEC1,MIN0,MIN1,HOUR0,HOUR1: in STD_LOGIC_VECTOR(3 DOWNTO 0); NUM: out STD_LOGIC_VECTOR(3 DOWNTO 0); wx: out std_logic_vector(7 DOWNTO 0);end entity;architecture ART of SEL_CLOCK issignal STATE: STD_LOGIC_VECTOR(2 DOWNTO 0);begin process (C

13、KDSP) begin if (CKDSPEVENT and CKDSP = 1) thenif (state=101) thenstate=000;else STATE NUM = HOUR1;wx NUM = HOUR0;wx NUM = MIN1;wx NUM = MIN0;wx NUM = SEC1;wx NUM = SEC0;wx NUM = ZZZZ; end case; end process;end architecture ART;仿真波形:5、译码模块译码模块把需要数码管显示的4位数据转换为7段数码管的显示码。译码模块VHDL源程序:library IEEE;use IEE

14、E.STD_LOGIC_1164.ALL;entity ENCODER7 is port (DATA_NUM: in STD_LOGIC_VECTOR(3 DOWNTO 0); DRIVEOUT: out STD_LOGIC_VECTOR(6 DOWNTO 0);end entity ENCODER7;architecture COMMON_ANODE of ENCODER7 issignal NUM: STD_LOGIC_VECTOR(3 DOWNTO 0);signal DRIVEOUT_TEMP: STD_LOGIC_VECTOR(6 DOWNTO 0);begin- NUM = NUM

15、3 & NUM2 & NUM1 & NUM0; NUM DRIVEOUT_TEMP DRIVEOUT_TEMP DRIVEOUT_TEMP DRIVEOUT_TEMP DRIVEOUT_TEMP DRIVEOUT_TEMP DRIVEOUT_TEMP DRIVEOUT_TEMP DRIVEOUT_TEMP DRIVEOUT_TEMP DRIVEOUT_TEMP = ZZZZZZZ; end case; end process; DRIVEOUT = DRIVEOUT_TEMP;end architecture COMMON_ANODE;仿真波形:6、整点报时模块当时钟计数到达59分59秒时,整

16、点报时模块会输出一个1秒钟的的高电平,使蜂鸣器报时。整点报时模块VHDL源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity ALARM is port (SEC1,SEC0,MIN1,MIN0: in STD_LOGIC_VECTOR(3 DOWNTO 0); RING: out STD_LOGIC);end entity ALARM; architecture ART of ALARM isSIGNAL SEC,MIN:STD_LOGIC_VECTOR(7 DOWNTO 0);

17、begin SEC=SEC1&SEC0;MIN=MIN1&MIN0;PROCESS(SEC,MIN)BEGINIF(SEC=AND MIN=)THENRING=1;ELSE RING=2500) thenoutclk1=1;k1:=0;else k1:=k1+1;outclk1=100) thenk2:=0;outclk2=1;else k2:=k2+1;outclk2=50) thenk3:=0;outclk3=1;else k3:=k3+1;outclk3=100 THEN CP=0; DIN_TEMP=DIN;ELSE CP=CP+1;DIN_TEMP=DIN_TEMP;END IF;

18、END IF;DOUT=DIN_TEMP;END process;END ART;9、时钟顶层电路图四、管脚配置情况在CPLD/FPGA实验系统上下载,进行管脚配置:五、设计总结1、设计所遇问题与解决方法在CPLD/FPGA实验系统上下载后,出现数码管显示不正常,数码管显示都出现中间横条常亮的情况。初次认为是译码模块出现问题,多次修改译码模块仍然无法解决;最终发现分显示正常,而时分显示则有该现象出现,故而确认为数码管扫描模块出现问题。修改数码管扫描模块后得以解决。2、设计收获与体会在这次课程设计中,我受益匪浅,学会了很多在书本上学不到的东西。比如,出现问题时要先确认问题出现的真实情况和根本现象,而不是盲目的修改。通过这次对数字钟的设计与配置下载,让我了解了设计电路的程序,也让我了解了关于数字钟的原理与设计理念。在做程序设计时要先形成一个整体的框架思路,如何来设计这个程序,需要些什么,需要完成什么功能,要怎么做。这都要经过深思熟虑,然后进行实际设计验证。这样做有利于形成一个整体目标,在设计中就不会多走弯路。程序设计时顶层文件采用原理图将其他

温馨提示

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

评论

0/150

提交评论