vhdl秒表 实验报告
更新时间:2024-01-19 07:36:01 阅读量: 教育文库 文档下载
- vhdl秒表设计原理推荐度:
- 相关推荐
EDA大作业实验报告
——数字秒表的设计实验
一 、实验目的:
1.通过实验了解数字秒表的工作原理,并实现。
2.进一步熟悉VHDL语言的编写驱动七段数码管显示的代码,熟悉quartes2软件的操作。 3.掌握VHDL编写的一些技巧。 二、实验要求:
1. 数字秒表的计数范围是0秒~59分59.99秒,即有分、秒、1%秒显示,显示的最长
时间为59分59秒。
2. 数字秒表的计时精度是10ms。
3. 复位开关可以在任何情况下使用,即便在计时过程,只要按下复位开关,计时器就
清零,并做好下次计时的准备。
4. 具有启/停开关,即按一下此开关,则可以启动计时器开始计时,再按一下此开关便
可以停止计时。 。
三、系统设计方案:
根据系统的设计要求,可以的到如图1的系统组成框图。系统设计采用自顶向下的设计方法,系统的整体组装设计原理图如图2所示,它主要由控制模块,分频模块,计时模块和显示模块四部分组成。
秒表工作原理和多少数字电子钟大致一样,不同的是秒表为0.01秒,整个秒表的时钟信号输入为40MHZ。所以,需要对时钟信号进行分频 假设该秒表应用场合小于1小时,秒表的显示格式为mm-ss-xx(mm表示分钟:0~59;ss表示秒:0~59;xx表示百分之一秒:0~99)。
(1) 控制模块
计时控制模块主要是对计时过程进行控制。计时控制模块可以由两个按钮开关来完成秒表的启动,停止和复位。 (2) 计时模块
计时模块实现的是计时功能,及时的方法是对标准时钟脉冲计数。由于秒表的计时范围是0秒~59分59.99秒,所以计数器可以由四个十进制计数器和两个六进制计数器构成,其中毫秒位,秒位和分位采用十进制计数器来实现,十秒位和十分位采用六进制计数器。 (3) 显示模块
计时显示模块是将计时值在LED七段数码管显示出来。 数字秒表 计时电路 计时控制电 控制状态机 分频电路 计数器 显示电路 七段译码器
一百进制计数器 十进制计数器
图一,系统组成框图
该时钟以六进制加法器和十进制加法器连接而成。 故原理图方案:整个秒表由两个六进制和四个十进制搭接而成(原理图如下)。 其中mh表示分钟的高位,ml表示分钟的地位,sh表示秒的高位,sl表示秒的地位,s100h表示十分之一秒,s100l表示百分之一秒。实验使用了异步使能,异步清零。时钟信号为100HZ。
图二,系统的整体组装设计原理图
四.源程序
1. 40MHZ分频器的设计程序: library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity FP400K is
Port ( RESET : in std_logic; CLK : in std_logic;
CLKOUT : out std_logic); end FP400K;
architecture Behavioral of FP400K is
signal div_val : integer range 0 to 200000; --分频值=256*2 signal div_clk : std_logic;--因为CLKOUT是out类型, --故不能在 <=的右边,
--用div_clk来暂存
begin
process(CLK,RESET) begin
if(RESET='0') then--RESET的优先级最高 div_clk <= '0';
elsif(CLK'event and CLK='1') then --'event是指
--信号的属性,意为此信号不稳定, --再加上CLK='1',故此句判断CLK的上升沿 if(div_val=200000) then div_val <= 0;
div_clk <= not div_clk; else
div_val <= div_val + 1;--在CLK的上升
--沿div_val自加1,加到256时清零并将div_clk取反 end if; end if; end process;
CLKOUT <= div_clk;
end Behavioral;
2.:十进制计数器源程序:
--cnt10
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY cnt10 IS PORT(clr:IN STD_LOGIC; en,clk:IN STD_LOGIC; co : out std_logic; cnt:BUFFER INTEGER RANGE 9 DOWNTO 0); END cnt10; ARCHITECTURE example OF cnt10 IS BEGIN
PROCESS(clr,clk) BEGIN IF clr='1' THEN cnt<=0; ELSIF en<='1' then if clk'EVENT AND clk='1' THEN IF (cnt=9) THEN cnt<=0;co<='1'; elsif en<='0' then cnt<=cnt; ELSE cnt<=cnt+1;co<='0'; END IF; END IF; end if; END PROCESS; END example; 3:六进计数器设计 程序如下: --Cnt6 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY cnt6 IS PORT(clr:IN STD_LOGIC; en,clk:IN STD_LOGIC; co : out std_logic; cnt:BUFFER INTEGER RANGE 9 DOWNTO 0); END cnt6; ARCHITECTURE example OF cnt6 IS BEGIN PROCESS(clr,clk) BEGIN IF clr='1' THEN cnt<=0; ELSIF en<='1' then if clk'EVENT AND clk='1' THEN IF (cnt=5) THEN cnt<=0;co<='1'; elsif en<='0' then cnt<=cnt; ELSE cnt<=cnt+1;co<='0'; END IF; END IF; end if; END PROCESS;
END example; 4.七段译码器: 程序如下:
--DecL7S
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DecL7S IS
PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ; LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END ;
ARCHITECTURE one OF DecL7S IS BEGIN
PROCESS( A ) BEGIN
CASE A(3 DOWNTO 0) IS
WHEN \ LED7S <= \°80?±0 WHEN \ LED7S <= \°79?±1 WHEN \ LED7S <= \°24?±2 WHEN \ LED7S <= \°30?±3 WHEN \ LED7S <= \°19?±4 WHEN \ LED7S <= \°12?±5 WHEN \ LED7S <= \°02?±6 WHEN \ LED7S <= \°78?±7 WHEN \ LED7S <= \°00?±8 WHEN \ LED7S <= \°10?±9 WHEN \ LED7S <= \°08?±10 WHEN \ LED7S <= \°03?±11 WHEN \ LED7S <= \°46?±12 WHEN \ LED7S <= \°21?±13 WHEN \ LED7S <= \°06?±14 WHEN \ LED7S <= \°0E?±15 WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ;
5.顶层设计的VHDL 源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY TIMES IS
PORT(CLR:IN STD_LOGIC; CLK:IN STD_LOGIC; ENA:IN STD_LOGIC;
DOUT:OUT STD_LOGIC_VECTOR(23 DOWNTO 0)); END TIMES;
ARCHITECTURE ART OF TIMES IS COMPONENT CLKGEN
PORT(CLK:IN STD_LOGIC;
NEWCLK:OUT STD_LOGIC); END COMPONENT; COMPONENT CNT10
PORT(CLK,CLR,ENA:IN STD_LOGIC;
CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC); END COMPONENT; COMPONENT CNT6
PORT(CLK,CLR,ENA:IN STD_LOGIC;
CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC); END COMPONENT;
SIGNAL NEWCLK:STD_LOGIC; SIGNAL CARRY1:STD_LOGIC; SIGNAL CARRY2:STD_LOGIC; SIGNAL CARRY3:STD_LOGIC; SIGNAL CARRY4:STD_LOGIC; SIGNAL CARRY5:STD_LOGIC; BEGIN
U0:CLKGEN PORT MAP(CLK=>CLK,NEWCLK=>NEWCLK); U1:CNT10 PORT MAP(CLK=>NEWCLK,CLR=>CLR,ENA=>ENA, CQ=>DOUT(3 DOWNTO 0),CARRY_OUT=>CARRY1); U2:CNT10 PORT MAP(CLK=>CARRY1,CLR=>CLR,ENA=>ENA, CQ=>DOUT(7 DOWNTO 4),CARRY_OUT=>CARRY2); U3:CNT10 PORT MAP(CLK=>CARRY2,CLR=>CLR,ENA=>ENA, CQ=>DOUT(11 DOWNTO 8),CARRY_OUT=>CARRY3); U4:CNT6 PORT MAP(CLK=>CARRY3,CLR=>CLR,ENA=>ENA, CQ=>DOUT(15 DOWNTO 12),CARRY_OUT=>CARRY4); U5:CNT10 PORT MAP(CLK=>CARRY4,CLR=>CLR,ENA=>ENA, CQ=>DOUT(19 DOWNTO 16),CARRY_OUT=>CARRY5); U6:CNT6 PORT MAP(CLK=>CARRY5,CLR=>CLR,ENA=>ENA,
CQ=>DOUT(23 DOWNTO 20)); END ART;
五.实验结果
(Cnt6波形图)
(cnt10波形图)
(秒表波形图)
六.遇到的问题及解决方案
1.在对程序进行编译时出现了很多错误,因此需要耐心进行排错,要充分利用上课时所学的理论知识,找出其中的语法错误
2.在用软件进行时序仿真时,刚开始没考虑信号的延迟也没考虑仿真的延迟,因此波形和理论不一致,因此需要设置合理的初值。 七.建议及意见
1.对于此种课程,我觉得应该在老师引导的前提下多给学生操作,实践的机会,让学生能够及时的进行理论与实践的相结合。 2.对于一些新的软件 ,我希望老师能够首先大体的把操作过程跟我们讲一下,让我们能有一个大体的思路,因此不至于只是跟着老师的步骤知道点那些项而不了解 自己在干什么,要实现的是什么?
3.老师能够及时的了解学生的情况并引导学生解决问题。
学号:02091370
班级:020914 姓名:吴再婕
正在阅读:
vhdl秒表 实验报告01-19
厨房设备招标文件12-14
名人爱国故事400字02-20
东财2011《人际沟通与交往艺术》题库04-26
中国H型钢行业发展研究报告 - 图文06-17
线性代数中的重要概念10-19
校园网网络核心测试方案05-06
《计算机组装与维修》作业11-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 秒表
- 实验
- 报告
- vhdl
- 煤矿各工种安全生产责任制
- GLP-1类似物药物进展
- 企业集团财务管理期末复习指导综合练习题(计算及分析题)2014-09-13-21-59-46
- 2013年郑州专业技术人员继续教育公需课考试题库及答案
- 中南大学《财务管理》课程试题(6)及参考答案
- 南京财经大学考试题目及答案
- PLC在中央空调中的应用
- 灌南县行政事业性收费项目目录
- net单选
- 电力过河拉管方案
- 《微型计算机原理及应用》习题题解
- 通用版 高三语文一轮复习特色训练116常用谦敬辞分类积累训练敬辞-含答案
- 创建人民满意服务窗口工作总结
- 新版IATF16949-2016电动汽车工厂新版质量管理手册 - 图文
- vf程序设计练习题答案6.5
- 从阅兵看中国经济发展
- oracle10grac - install - foraix - 图文
- 外贸跟单实务第三版课后答案项目十
- 可行性研究报告编制目录大纲(2012 年国家发改委标准版)
- 2017年全国导游资格考试 口试考试200问(四川省)第二部分