VHD语言数字时钟实验设计_第1页
VHD语言数字时钟实验设计_第2页
VHD语言数字时钟实验设计_第3页
VHD语言数字时钟实验设计_第4页
VHD语言数字时钟实验设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、河南农业大学课程设计报告 设计题目: VHD语言实现数字钟实验报告学 院: 理 学 院 专 业: 电子信息科学与技术 学 号: 0708101048 班 级: 07级电科(2)班 姓 名: 贾 秋 峰 电子邮件: 日 期: 2011年01月 成 绩: 指导教师: 河 南 农 业 大 学理 学 院课 程 设 计 任 务 书学生姓名 贾 秋 峰 指导教师 贾 树 恒 林 爱 英 学生学号 0708101048 专业 电子信息科学与技术 题目 VHD语言实现数字钟实验报告 任务与要求一、设计实验说明:1、数字时钟主要由:分频器、扫描显示译码器、六十进制计数器(或十进制计数器与6进制计数器组成)、六十

2、进制计数器(或十进制计数器与6进制计数器组成)、十二进制计数器(或二十四进制计数器)电路组成。在整个时钟中最关键的是如何获得一个精确的1HZ计时脉冲,2、数字时钟显示由时(12或24进制任选)、分(60进制)、秒(60进制)组成,利用扫描显示译码电路在六个数码管显示。二、数字时钟组成及功能:1、分频率器:用来产生1HZ计时脉冲;2、十二或二十四进制计数器:对时进行计数3、六十进制计数器:对分和秒进行计数;4、六进制计数器:分别对秒十位和分十位进行计数;5、十进制计数器:分别对秒个位和分个位进行计数;6、扫描显示译码器:完成对7字段数码管显示的控制;三、系统硬件要求:1、时钟信号为5MHz;2、

3、FPGA芯片型号EPM7128LC8415、EP1K30TC1443或EP1K100QC2083(根据实验箱上FPGA芯片具体选择);3、8个7段扫描共阴级数码显示管;4、按键开关(清零、启动、保持);四、硬件实现 将时序仿真正确的文件下载到实验箱中的EPM7128LC8415、EP1K30TC1443或EP1K100QC2083中,通过合适的管脚分配,将相应的管脚连接起来,验证设计是否完成设计要求;五、要求1、精确显示时、分、秒。2、数字时钟要求:具有对时、分、秒置数功能(利用秒脉冲置数或利用拨码开关、键盘直接置数);3、能够完成整点报时功能。(选作)开始日期 年 月 日 完成日期 年 月

4、日 课程设计所在单位 理 学 院 电 子 科 学 系 VHD语言实现数字钟实验报告一实验目的在MAX+plusII软件平台上,熟练运用VHDL语言。完成数字时钟设计的软件编程、编译、综合、仿真。使用EDA实验箱,实现数字时钟的硬件功能。了解数字时钟的攻击你工作原理。学习掌握数字时钟的设计方法,会设计比较复杂的数值时钟系统。二设计要求1、精确显示时、分、秒;数字时钟要求:具有对时、分、秒置数功能(利用秒脉冲置数或利用拨码开关、键盘直接置数);能够完成整点报时功能。(选作)2、数字时钟主要由:分频器、扫描显示译码器、六十进制计数器(或十进制计数器与6 进制计数器组成)、六十进制计数器(或十进制计数

5、器与6进制计数器组成)、十二进制计数器(或二十四进制计数器)电路组成。在整个时钟中最关键的是如何获得一个精确的1HZ计时脉冲。三、系统硬件要求(1)、时钟信号为5MHz;(2)、FPGA芯片型号EPM7128LC8415、EP1K30TC1443或EP1K100QC2083(根据实验箱上FPGA芯片具体选择);(3)、8个7段扫描共阴级数码显示管;(4)、按键开关(清零、启动、保持);四、实验原理1、本实验运用VHD语言设计时钟计数器,理解其内部原理与模块设计数字时钟组成及功能:(1)、分频率器:用来产生1HZ计时脉冲;(2)、十二或二十四进制计数器:对时进行计数(3)、六十进制计数器:对分和

6、秒进行计数;(4)、六进制计数器:分别对秒十位和分十位进行计数;(5)、十进制计数器:分别对秒个位和分个位进行计数;(6)、扫描显示译码器:完成对7字段数码管显示的控制;实验原理图如下:图9-1 (Clock.gdf)2、CPLD设计过程设计输入 数字钟 对4MHz时钟做4000000分频产生秒时钟,以秒时钟为时基做秒、分、时计数电路,将各计数值经7段译码在5只LED数码管上显示出来。 同步计数器 模4000000 模60(秒)同步计数器LED数码显示管LED7段译码器 晶体振荡器 模60(分)同步计数器 模12(时)同步计数器程序设计的顶层图如下:五、实验步骤1单元电路设计 第一部分 数字钟

7、(1)4MHz分频器gate4 通过编程实现,设晶振产生的信号为4MHz,要求输出1Hz时钟信号,则分频数为4M,需要22位计数器。用VHD语言 设计的文本文件如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity gate4 isport(CLK:in std_logic;sgate:out std_logic;slock:out std_logic);end gate4;architecture arc_gate4 of gate4 issignal count:std_logic

8、_vector(21 downto 0);signal oc:std_logic;beginprocessbeginwait until clk'event and clk='1'if(count<3999999)thencount<=count+1;oc<='0'elsecount<=(others=>'0');oc<='1'end if;end process;slock<=oc;processbeginwait until clk'event and clk='

9、;1'sgate<=oc;end process;end architecture arc_gate4;其仿真波形如下:形成符号如下:(2)分·秒计时m60采用VHD语言十进制设计的文本文件如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity m60 isport( CLK:in std_logic; CR:in std_logic; EN:in std_logic; QL:out std_logic_vector(3 downto 0); QH:out st

10、d_logic_vector(3 downto 0); OC:out std_logic);end m60;architecture behav of m60 is signal couL:std_logic_vector(3 downto 0); signal couH:std_logic_vector(3 downto 0);begin process(CLK,CR,EN) begin if CR='0' then couL<="0000" couH<="0000" elsif clk'event and clk=

11、'1' then if EN='1' then if (couL=9 and couH=5)then couL<="0000" couH<="0000" elsif couL=9 then couL<="0000" couH<=couH+1; else couL<=couL+1; end if; end if; end if; end process;process(couL,couH)begin if(couL=9 and couH=5)then OC<='

12、1' else OC<='0' end if;end process;QL<=couL;QH<=couH;end architecture behav;其仿真波形如下:形成符号如下:(3)时计时counter12同样是采用VHD语言二进制设计的文本文件如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter12 isport(CLK :in std_logic;EN :in std_logic;CR :in std_logic;Q

13、 :out std_logic_vector(3 downto 0);OC :out std_logic);end counter12;architecture arc_counter12 of counter12 issignal count:std_logic_vector(3 downto 0);beginprocess(CR,CLK,EN)beginif CR='0'thencount<=(others=>'0');elsif clk'event and clk='1'thenif EN='1'and

14、count<11 thencount<=count+1;elsif EN='1'and count=11 thencount<="0000"end if;end if;end process;process(count)beginif count=11 thenOC<='1'elseOC<='0'end if;end process;Q<=count;end architecture arc_counter12;其仿真波形如下:形成符号如下(4)7段译码器seg_7用VHD语言文本输入法设计

15、的7段译码器如下:library ieee;use ieee.std_logic_1164.all;entity seg_7 isport(dat :in std_logic_vector(3 downto 0); a,b,c,d,e,f,g:out std_logic );end seg_7;architecture arc of seg_7 is signal tmp:std_logic_vector(6 downto 0);begin process(dat) begin case dat is when "0000"=>tmp<="000000

16、1" when "0001"=>tmp<="1001111" when "0010"=>tmp<="0010010" when "0011"=>tmp<="0000110" when "0100"=>tmp<="1001100" when "0101"=>tmp<="0100100" when "0110"=

17、>tmp<="0100000" when "0111"=>tmp<="0001111" when "1000"=>tmp<="0000000" when "1001"=>tmp<="0000100" when "1010"=>tmp<="0001000" when "1011"=>tmp<="1100000"

18、; when "1100"=>tmp<="0110001" when "1101"=>tmp<="1000010" when "1110"=>tmp<="0110000" when "1111"=>tmp<="0111000" when others =>null; end case; end process; a<=tmp(6); b<=tmp(5); c<=tm

19、p(4); d<=tmp(3); e<=tmp(2); f<=tmp(1); g<=tmp(0);end arc;生成图形如下:2.编译单元电路单个编译,对应的文件为MAX+plus中的4M分频 gate4.vhd分·秒计时 m60.vhd时计时 counter12.vhd7段译码器 seg_7.vhd编译通过。3.仿真形成符号都通过编译的单元电路,仿真生成对应的仿真文件为:4M分频 gate4.scf分·秒计时 m60.scf时计时 counter12.scf7段译码器 seg_7.scf并且建立符号,符号名称即为相应的文件名称建立核心模块:仿真如下:5.选好器件,锁定引脚 新建gdf格式文件,选定之前弄好的器件,搭接好电路图为: 根据下列表格锁定管脚,如上图的红色字体表示已锁定管脚。 表1 管脚 LEDabcdefg秒个位60616364656768秒十位69707374757677分个位7980814568分十位9101112151617小时个位18202122242527 表2 状态指示O1O2O3O4O5O6O7O8管脚5051525455565758 6.下

温馨提示

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

评论

0/150

提交评论