数字电路设计实验vhdl语言实验报告new

数字电路设计实验vhdl语言实验报告new

ID:18828951

大小:215.50 KB

页数:15页

时间:2018-09-25

数字电路设计实验vhdl语言实验报告new_第1页
数字电路设计实验vhdl语言实验报告new_第2页
数字电路设计实验vhdl语言实验报告new_第3页
数字电路设计实验vhdl语言实验报告new_第4页
数字电路设计实验vhdl语言实验报告new_第5页
资源描述:

《数字电路设计实验vhdl语言实验报告new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一秒表计数器的设计一、实验目的:本实验通过设计四种频率可选的数字时钟系统,以达到熟悉VHDL语言编程语法、设计思路和熟练掌握QuartusII开发软件的目的。二、实验内容:该数字时钟的显示格式如下所示:HH:MM:SS,其中HH表示时计数的两位,MM表示分计数的两位,SS表示秒计数的两位。本系统输入信号分别为复位信号rst(高有效)、sel(两位信号,分别可以选择2分频、4分频8分频和16分频)、clk_in(时钟信号)、8位时输出、8位分输出、8位秒输出(其中高4为表示对应的高半字节、低4位

2、表示的低半字节,譬如当时间为08:59:30时,时输出为”0000_1000”,分输出为”0101_1001”,秒输出为”0011_0000”)。该时钟系统可以通过Sel信号时钟运行的快慢。三、实验流程:通过对实验内容的分析:可以考虑时钟系统的可由三部分组成:1、分频器:分频器为时序电路并且通过《数字电路》理论课程的学习可知由计数器来实现,同学可以回想一下实验1中是如何实现计数器电路的设计),该模块主要产生2、4、8、16分频的时钟信号;2、多路选择器:15在VHDL中多路选择器为组合逻辑,可以有

3、多种实现方法,在这里主要选用了case语句来实现。该模块的作用是从分频器中根据Sel信号选择适当的时钟信号;3、时钟控制器:该模块比较复杂,主要实现功能是实现一个24小时的计时。当时间为00:00:59的时候下一个时钟到来时状态的跳变为00:01:00,计时中多数计数为加1操作,有几个特殊状态需要重点考虑:当时间产生分进数时,譬如上例。当时间产生时进数时,譬如00:01:59时刻的下一个状态为00:02:00;当时间产生时进数时,譬如00:59:59是个的下一个状态为01:00:00。当时间产生天

4、进数时,譬如23:59:59的下一个状态为00:00:00。四、仿真要求:本次试验的结果全部采用功能仿真分析:1、在结果图中能够看到让复位信号rst为有效的情况下,所有的输出为00:00:00;2、当频率选择输出分别为”00”、”01”、”10”、”11”时秒为的进数分别包含2、4、8、16倍clk_in的时钟周期;3、可以看到完整的计时周期00:00:00->23:59:59->00:00:00。五、实验代码:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useI

5、EEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;15entityfpgaisport(clk_in:instd_logic;rst:instd_logic;sel:instd_logic_vector(1downto0);hour_high_out:outstd_logic_vector(3downto0);hour_low_out:outstd_logic_vector(3downto0);minute_high_out:outstd

6、_logic_vector(3downto0);minute_low_out:outstd_logic_vector(3downto0);second_high_out:outstd_logic_vector(3downto0);second_low_out:outstd_logic_vector(3downto0));endfpga;architecturebehaoffpgaissignalclk:std_logic;signalclk_cnt:std_logic_vector(3downto

7、0);signalhour_high:std_logic_vector(3downto0);signalhour_low:std_logic_vector(3downto0);signalminute_high:std_logic_vector(3downto0);signalminute_low:std_logic_vector(3downto0);signalsecond_high:std_logic_vector(3downto0);signalsecond_low:std_logic_ve

8、ctor(3downto0);15beginprocess(rst,clk_in)beginif(rst='1')thenclk_cnt<="0000";elsif(rising_edge(clk_in))thenclk_cnt<=clk_cnt+1;endif;endprocess;process(sel)begincaseseliswhen"00"=>clk<=clk_cnt(0);when"01"=>clk<=clk_cnt(1);when"10"=>clk<=clk_cnt

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。