秒表计数器的设计_第1页
秒表计数器的设计_第2页
秒表计数器的设计_第3页
秒表计数器的设计_第4页
秒表计数器的设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、数字系统设计实验报告 秒表计数器的设计班 级: 学 号: 姓 名: 实验一 秒表计数器的设计一、实验目的:通过设计实现四种频率可选的二位显示秒表,以熟悉VHDL语言编程。二、实验流程:系统整体由分频器、多路选择器和计数器三个原件组成。1.输入信号有4个,分别为复位信号(低有效)、时钟(提供整个系统的时钟信号)、选择器输入Sel1、Sel0(选择不同的频率输入)。2.添加置位信号,以及添加置位信号后输入信号应为多少个。3.输出引脚有8根,分别为个位count5(3 downto 0)和10位count10(3 downto 0)的计数(仿真结果使用16进制显示该两个输出信号的值)。三、实验原理1

2、.分频器模块设计:可选用计数器模块实现,如下所示:if( rst = 0 ) then count =”0000”elsif( clkevent and clk = 1) thencount = count+1;end if;clk2 = count(0);clk4 = count(1);clk8 = count(2);clk16 clk clk clk clk null; end case;3.计数器模块的实现:在本设计中总共要设计两个计数器分别用于实现个位(9-0),十位(5-0)的计数。个位计数器:process(clk1,rst,load)beginif(rst=0)thencount

3、10=0000;elsif(load=1)thencount10=counts10;elsif( clk1event and clk1 =1) thenif( count10 1001 ) then count10=count10+1;elsecount10=0000;end if;end if;end process;十位计数器:process(count10(3),rst,load)beginif(rst=0)thencount5=0000;elsif(load=1)thencount5=counts5;elsif( count10(3)event and count10(3)=0) th

4、enif( count50101 ) then count5=count5+1;elsecount5=0000;end if;end if;end process;四、仿真结果及分析:1.资源使用情况结果分析:由图可以看出所用资源较少。2.仿真结果其中,clk为系统时钟,rst为复位(清零)信号(低有效),load为置位信号(高有效),sel为频率选择信号,counts5和counts10、counto5和counto10、分别对应为:置位信号、秒钟输出。五、实验心得:这次实验比较基础,通过第一次的实验,我们了解了QuartusII软件的工作环境,学习并掌握了QuartusII软件的使用,学会

5、了用软件进行编程及功能仿真、时序仿真的方法。本次实验,让我们再一次熟悉了VHDL的编程,通过对分频器、多路选择器和计数器的模块编程,实现四种频率可选的二位显示秒表的功能。附:源代码library IEEE;use IEEE.std_logic_1164.all;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity exp2 isport(clk,rst:in std_logic; sel:in std_logic_vector(1 downto 0); count5,count10:out std_logic_v

6、ector(3 downto 0);end exp2;architecture beha of exp2 issignal clk1,clk2,clk4,clk8,clk16:std_logic;signal count,ct1,ct2:std_logic_vector(3 downto 0);begin process(clk,rst) begin if(rst=0)then count=0000; elsif(clkevent and clk=1)then count=count+1; end if; clk2=count(0); clk4=count(1); clk8=count(2); clk16clk1clk1clk1clk1null; end case; end process; process(clk1,rst) begin if(rst=0)then ct1=0000; ct2=0000; elsif(clk1event and clk1=1)then if(ct1=1001)then ct1=0000; if(ct2=0101)then ct2=0000

温馨提示

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

评论

0/150

提交评论