ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:117.13KB ,
资源ID:4760349      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4760349.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于VHDL语言的数字秒表的实现.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于VHDL语言的数字秒表的实现.docx

1、基于VHDL语言的数字秒表的实现数字秒表 姓名学号:基于VHDL语言的数字秒表的实现 摘要:随着基于EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。本文详细介绍EDA课程设计任务数字秒表的设计的详细设计过程及结果,并总结出心得体会。关键字:EDA技术;VHDL语言;数字秒表EDA技术作为现代电子设计技术的核心,它依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑简化、逻辑分割、逻辑综合,以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。笔者详细介绍在QU

2、ARTUS II软件环境下开发基于VHDL语言数字秒表的设计。1 设计方案1. 1 􀀂 系统功能要求( 1) 具有时钟秒表系统功能要求显示功能, 用6个数码管分别显示时、分、秒; 计时范围为:00: 00: 00 23: 59:59。( 2) 计时精度是1s;( 3) 具有启/ 停开关, 复位开关, 可以在任何情况下使用。1. 2 􀀂 总体框图根据系统设计要求, 系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、LED显示模块组成。系统顶层设计图如图所示:图中左边为三个输入信号en,clk,reset;分为启/ 停开关,时钟信号和复位开

3、关。中间是从上倒下时count24,count60,count60,fenpinqi;右边是clock1和输出信号wei3.0, led6.0。2 􀀂 模块功能设计由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能, 输入信号是256 Hz,通过分频后为1hz,时钟信号是1 Hz 作为秒表的秒输入, 秒为60 进制计数器, 分也为60 进制计数器, 小时采用二十四进制计数器, 各级进位作为高位的使能控制。2. 1 六十进制计数器模块该模块部分VHDL 源程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.

4、std_logic_unsigned.ALL;ENTITY count60 ISPORT( en,Reset,clk: in STD_LOGIC; qa: out STD_LOGIC_VECTOR(3 DOWNTO 0); qb: out STD_LOGIC_VECTOR(3 DOWNTO 0); rco: OUT STD_LOGIC); END count60;ARCHITECTURE a OF count60 ISBEGINprocess(clk)variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0);variable tmb: STD_LOGIC_VECTO

5、R(3 DOWNTO 0);beginIf Reset =0then tma:=0000; tmb:=0000; elsif clkevent and clk=1 thenif en=1 thenrco=tmb(2)and tmb(0)and tma(3)and tma(0); if tma=1001 then tma:=0000; if tmb=0101 then tmb:=0000; else tmb:=tmb+1; end if; else tma:=tma+1; end if; end if; end if; qa=tma;qb=tmb; end process;END a;2. 2

6、二十四进制计数器模块该模块部分VHDL 源程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count24 ISPORT( en,Reset,clk: in STD_LOGIC; qa: out STD_LOGIC_VECTOR(3 DOWNTO 0); qb: out STD_LOGIC_VECTOR(3 DOWNTO 0); END count24;ARCHITECTURE a1 OF count24 ISBEGINprocess(clk)variable tma: ST

7、D_LOGIC_VECTOR(3 DOWNTO 0);variable tmb: STD_LOGIC_VECTOR(3 DOWNTO 0);beginIf Reset = 0then tma:=0000; tmb:=0000; else if clkevent and clk=1 then if en=1 then if tma=1001 then tma:=0000;tmb:=tmb+1; elsif tmb=0010 and tma=0011 then tma:=0000;tmb:=0000; else tma:=tma+1; end if; end if; end if;end if;

8、qa=tma;qb=tmb; end process;END a1;2. 3 分频器模块该模块部分VHDL 源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpinqi IS PORT (CLK,RST:in std_logic; CLK_OUT:out std_logic); END fenpinqi;ARCHITECTURE behav OF fenpinqi ISsignal clk_data:std_logic;SIGNAL CNT6 : INTEGER :=

9、 0;BEGIN PROCESS(CLK) BEGIN IF RST = 0 THEN CNT6=0 ; ELSIF CLKEVENT AND CLK=1 THEN IF CNT6=2 THEN clk_data=NOT clk_data;CNT6=0; ELSE CNT6=CNT6+1; END IF; END IF; CLK_OUT=clk_data; END PROCESS;END behav; 2. 4 LED显示模块该模块部分VHDL 源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.

10、ALL; ENTITY clock1 IS PORT(CLK: IN STD_LOGIC; S1, S2, S3, S4, S5, S6: IN STD_LOGIC_VECTOR(3 DOWNTO 0); WEI: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY;ARCHITECTURE behave OF clock1 IS SIGNAL CNT6 : INTEGER RANGE 0 TO 5 := 0; SIGNAL SHUJU: STD_LOGIC_VECTOR(3 DO

11、WNTO 0);BEGIN PRO1:PROCESS(CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN CNT6 WEI = 000; SHUJU WEI = 001; SHUJU WEI = 010; SHUJU WEI = 011; SHUJU WEI = 100; SHUJU WEI = 101; SHUJU = S6;CNT6 NULL; END CASE; END IF; END PROCESS; PRO2: PROCESS(SHUJU) BEGIN CASE SHUJU IS WHEN 0000 = LED LED LED LED LED LED LE

12、D LED LED LED LED= 0000000 ; END CASE; END PROCESS;END ; 3 仿真波形及分析 各部分模块完成后, 用Quartus 对程序编译、仿真、得到的仿真波形,各模块仿真波形及顶层仿真波形如下:3.1 六十进制计数器模块仿真图1-1图1-2图1-1、图1-2均为二十四进制计数器仿真波形图CLK:时钟信号 RST:复位信号 低电平清零 En:置数端 低电平不让它继续计数qb、qa:分别为输出数的十位个位,qb取值范围为0-5,qa取值范围为0-9rco:进位信号,当qb=5,qa=0, rco=0时,clk上升沿来到后,qb=0, qa=0, rco

13、=1; 当qb=5,qa=0, rco=1时,clk上升沿来到后,qb=0, qa=0, rco=03.2 二十四进制计数器模块仿真图2-1图2-2图2-1,图2-2 均为二十四进制计数器仿真波形图CLK:时钟信号 RST:复位信号 低电平清零 En:置数端 低电平不让它继续计数qb、qa:输出的四位二进制数,分别对于要输出数的十位个位3.3 分频器模块仿真因时钟脉冲(为256hz)通过分频器256分频后频率(为1hz),仿真波形显示前一小段,不能看出输出规律,所以做仿真是用3分频后的波形,真正在实验箱上验证是再改。图3-1CLK:输入分频前的时钟信号 RST:复位信号 低电平清零Clkout

14、:输出分频后的时钟信号 3.4 LED显示模块仿真Clk:时钟信号s1,s2,s3,s4,s5,s6:输入的的四位二进制数led:输出的七位二进制数,对应数码管脚的输出gfedcbawei:输出的三位而进制数(输出范围为000-101),控制led输出,当wei=000时,led输出s1对应的十进制数的数码管脚gfedcba当wei=001时,led输出s2对应的十进制数的数码管脚gfedcba当wei=010时,led输出s3对应的十进制数的数码管脚gfedcba当wei=011时,led输出s4对应的十进制数的数码管脚gfedcba当wei=100时,led输出s5对应的十进制数的数码管脚

15、gfedcba当wei=101时,led输出s6对应的十进制数的数码管脚gfedcba3.5 顶层仿真因时钟脉冲(为256hz)通过分频器256分频后频率(为1hz),仿真波形显示前一小段,不能看出输出规律,所以做仿真是用3分频后的波形,真正在实验箱上验证是再改。CLK:时钟信号 RST:复位信号 低电平清零 En:置数端 低电平不让它继续计数led:输出的七位二进制数,对应数码管脚的输出gfedcbawei:输出的三位而进制数(输出范围为000-101),控制led输出,当wei=000时,led输出对于秒钟的个位当wei=001时,led输出对于秒钟的十位当wei=010时,led输出对于

16、分钟的个位当wei=011时,led输出对于分钟的十位当wei=100时,led输出对于时钟的个位当wei=101时,led输出对应时钟的十位4 总结 这次课程设计,让我体会到EDA应用的方便。用VHDL语言可以对数字集成电路芯片进行方便的描述,经过生成元件后可作为一个标准元件进行调用,同时,借助于VHDL开发设计平台,进行系统功能仿真和时序仿真,让我可以仅用一台电脑就设计出数字秒表,但中途也遇到过很多的问题,比如VHDL语言编写的错误,器件的连接无法编译,时钟的设置等,可是就在这不停地犯错中,让我更清楚地了解了VHDL程序的描述方法,以及Quartur的具体操作方法,所以这次的课程设计,受益匪浅。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1