版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一 秒表计数器的设计1、 实验目的: 本实验通过设计四种频率可选的数字时钟系统,以达到熟悉VHDL语言编程语法、设计思路和熟练掌握Quartus II 开发软件的目的。二、实验内容: 该数字时钟的显示格式如下所示:HH:MM:SS,其中HH表示时计数的两位,MM表示分计数的两位,SS表示秒计数的两位。本系统输入信号分别为复位信号rst(高有效)、sel(两位信号,分别可以选择2分频、4分频8分频和16分频)、clk_in(时钟信号)、8位时输出、8位分输出、8位秒输出(其中高4为表示对应的高半字节、低4位表示的低半字节,譬如当时间为08:59:30时,时输出为”0000_1000”,分输出
2、为”0101_1001”,秒输出为”0011_0000”)。该时钟系统可以通过Sel信号时钟运行的快慢。三、实验流程: 通过对实验内容的分析:可以考虑时钟系统的可由三部分组成:1、分频器: 分频器为时序电路并且通过数字电路理论课程的学习可知由计数器来实现,同学可以回想一下实验1中是如何实现计数器电路的设计),该模块主要产生2、4、8、16分频的时钟信号;2、多路选择器: 在VHDL中多路选择器为组合逻辑,可以有多种实现方法,在这里主要选用了case语句来实现。该模块的作用是从分频器中根据Sel信号选择适当的时钟信号;3、时钟控制器: 该模块比较复杂,主要实现功能是实现一个24小时的计时。当时间
3、为00:00:59的时候下一个时钟到来时状态的跳变为00:01:00,计时中多数计数为加1操作,有几个特殊状态需要重点考虑:当时间产生分进数时,譬如上例。当时间产生时进数时,譬如00:01:59时刻的下一个状态为00:02:00;当时间产生时进数时,譬如00:59:59是个的下一个状态为01:00:00。当时间产生天进数时,譬如23:59:59的下一个状态为00:00:00。四、仿真要求: 本次试验的结果全部采用功能仿真分析:1、 在结果图中能够看到让复位信号rst为有效的情况下,所有的输出为00:00:00;2、当频率选择输出分别为”00”、”01”、”10”、”11”时秒为的进数分别包含2
4、、4、8、16倍clk_in的时钟周期;3、可以看到完整的计时周期00:00:00-23:59:59-00:00:00。五、实验代码:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity fpga isport( clk_in : in std_logic; rst : in std_logic; sel : in std_logic_vector(1 downto 0); hour_high_out : out std_logic
5、_vector(3 downto 0); hour_low_out : out std_logic_vector(3 downto 0); minute_high_out : out std_logic_vector(3 downto 0); minute_low_out : out std_logic_vector(3 downto 0); second_high_out : out std_logic_vector(3 downto 0); second_low_out : out std_logic_vector(3 downto 0);end fpga;architecture beh
6、a of fpga issignal clk : std_logic;signal clk_cnt : std_logic_vector(3 downto 0);signal hour_high : std_logic_vector(3 downto 0);signal hour_low : std_logic_vector(3 downto 0);signal minute_high : std_logic_vector(3 downto 0);signal minute_low : std_logic_vector(3 downto 0);signal second_high : std_
7、logic_vector(3 downto 0);signal second_low : std_logic_vector(3 downto 0);begin process(rst,clk_in) beginif(rst=1)thenclk_cnt=0000;elsif(rising_edge(clk_in)thenclk_cntclkclkclkclkclk=0;end case; end process;process(clk, rst) begin if (rst =1)thenhour_high=0000;hour_low=0000;minute_high=0000;minute_l
8、ow=0000; second_high=0000;second_low=0000; elsif(rising_edge(clk)thenif(second_low/=1001)then second_low=second_low+1;else if(second_high/=0101)then second_high=second_high+1; else second_high=0000; if(minute_low/=1001)thenminute_low=minute_low+1;elseif(minute_high/=0101)thenminute_high=minute_high+
9、1;elseminute_high=0000;if(hour_low/=0011) and (hour_high /=0010) or (hour_low/=1001)thenhour_low=hour_low+1;elsehour_low=0000;if(hour_high =0010 and hour_low =0011 )thenhour_high=0000;elsehour_high=hour_high+1;end if;end if;end if;minute_low=0000;end if; end if; second_low=0000; end if;end if;end pr
10、ocess; process(clk) begin hour_high_out=hour_high; hour_low_out=hour_low; minute_high_out=minute_high; minute_low_out=minute_low; second_high_out=second_high; second_low_out23:59:59-00:00:00。七、实验心得 通过上一节课的学习,了解实验软件Quartus II基本的操作方法后,这次的实验就娴熟了很多,实验的设计想法不是很复杂,因为这次要求是实现偶数分频以及计数功能。这次实验老师给定了代码的模板,给我们的编写和
11、设计提供了很大的帮助,认真思考原理过后,对以后的更难一些的实验一定会有很大帮助。实验二 奇数分频的模十状态机的设计一、实验目的: 通过设计频率可选的模十状态机以达到进一步掌握VHDL硬件描述语言的目的。二、实验流程: 本设计有分频器、多路选择器、状态机。1. 时钟输入作为分频器的输入,输出时钟分别为3分频和5分频;2. 分频器输出由2选1的多路选择器选择其中之一作为状态机的时钟输入;3. 使用选中的时钟频率作为输入时钟驱动状态机按照以下的次序输出:0-A-5-6-1-F-4-8-E-3-0的顺序输出。三、实验代码:library IEEE;use IEEE.STD_LOGIC_1164.ALL
12、;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity counter is port (clk: in std_logic; rst: in std_logic; clk_div: out std_logic; sel:in std_logic_vector(0 downto 0); out1:out std_logic_vector(3 downto 0);end counter;architecture Behavioral of counter issignal shangsheng:std_logic_
13、vector(2 downto 0);signal count1:std_logic_vector(2 downto 0);signal count2:std_logic_vector(2 downto 0);signal level_div3:std_logic;signal now_state : std_logic_vector(3 downto 0);signal next_state : std_logic_vector(3 downto 0);beginprocess(sel) begin case sel iswhen 0 = shangsheng shangsheng= 100
14、;end case;end process;p1:process(clk) begin if(clkevent and clk=1)then if(count2=shangsheng)then count2=000; else count2=count2+1; end if; end if; end process p1;p2:process(clk) begin if(clkevent and clk=0)then if(count1=shangsheng)then count1=000; else count1=count1+1; end if; end if; end process p2; level_div3=count1(1) or count2(1); clk_div=level_div3;Process(rst,clk)beginif( rst = 1) thennow_state=0000; elsif( level_div3event and level_div3 =1)thennow_statenext_statenext_statenext_statenext_statenext_statenext_statenext_statenext_statenext_statenext_state next_state=0000; end case;end
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年杭州市丁桥医院公开招聘高层次人才备考题库有答案详解
- 2025年温州设计控股集团有限公司“3·12特招生备考题库”招聘8人的备考题库完整答案详解
- 未来五年根雕工艺品行业市场营销创新战略制定与实施分析研究报告
- 2025年宁德市部分市直医院公开招聘编外人员备考题库参考答案详解
- 未来五年网上银行市场需求变化趋势与商业创新机遇分析研究报告
- 2025年红古区人民医院招聘工作人员的备考题库及完整答案详解一套
- 2025年都兰县妇幼保健和备考题库生育服务中心招聘(编制外)公共卫生专业技术人员的备考题库含答案详解
- 2025年福州润楼运营管理有限公司公开招聘备考题库有完整答案详解
- 2025年人民日报社公开招聘工作人员64人备考题库有答案详解
- 2026年春学期语言中心课程助教招聘备考题库及完整答案详解1套
- 中储粮招聘笔试试题及答案
- 2025年山东城市服务职业学院单招职业适应性测试题库附答案
- 静脉输液不良反应临床识别与应急处理标准化流程指南
- 擦窗课件教学课件
- 红曲科普课件
- 2025-2026学年2026年九年级数学中考大题专题:二次函数的实际应用【附答案】
- 2026年苏州工业职业技术学院单招职业技能测试必刷测试卷附答案
- 商务专员面试题及答案
- 司法制度的演变与发展
- 2025年及未来5年中国视频节目播控设备行业市场运营现状及投资规划研究报告
- 医院安防预警系统构建项目分析方案
评论
0/150
提交评论