南理工eda2实验报告_第1页
南理工eda2实验报告_第2页
南理工eda2实验报告_第3页
南理工eda2实验报告_第4页
南理工eda2实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、 EDA设计(二)课程设计报告姓 名彭浩洋学 号1110200129学院(系)自动化学院专 业自动化标 题基于VHDL语言的数字秒表的实现 南京理工大学2014年 10 月基于VHDL语言的数字秒表的实现摘要:随着电子技术与计算机技术的发展,熟练掌握和运用EDA技术已成为电子类及相关专业本科人才不可或缺的一项技能。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的原因就是电子设计技术和电子制造技术的发展,其核心就是EDA技术,本文主要介绍用VHDL语言实现数字秒表设计。关键字:EDA技术;VHDL语言;数字秒表1 设计方案1. 1 系统功能要求(1) 具

2、有时钟秒表系统功能要求显示功能, 用6个数码管分别显示时、分、秒; 计时范围为:00: 00: 00 23: 59:59。(2) 计时精度是1s;(3) 具有启/ 停开关, 复位开关, 可以在任何情况下使用。1. 2 总体框图根据系统设计要求, 系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、LED显示模块组成。系统顶层设计图如图所示:图1图一中左边为三个输入信号en,clk,reset,分为启/ 停开关,时钟信号和复位开关。中间是从上倒下时count24,count60,count60,fenpinqi;右边是clock1和输出信号wei3.0, led6.0。2 模

3、块功能设计由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能, 输入信号是256 Hz,通过分频后为1hz,时钟信号是1 Hz 作为秒表的秒输入, 秒为60 进制计数器, 分也为60 进制计数器, 小时采用二十四进制计数器, 各级进位作为高位的使能控制。2. 1 六十进制计数器模块图2该模块部分VHDL 源程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count60 ISPORT( en,Reset,clk: in STD_LOGIC; qa: out ST

4、D_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_VECTOR(3 DOWNTO 0);beginIf Reset ='0'then tma:="0000" tmb:="0000&q

5、uot; elsif clk'event 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&l

6、t;=tmb; end process;END a;2. 2 二十四进制计数器模块图3该模块部分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 IS

7、BEGINprocess(clk)variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0);variable tmb: STD_LOGIC_VECTOR(3 DOWNTO 0);beginIf Reset = '0'then tma:="0000" tmb:="0000" else if clk'event and clk='1' then if en='1' then if tma="1001" then tma:="0000"t

8、mb:=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; qa<=tma;qb<=tmb; end process;END a1;2. 3 分频器模块图4该模块部分VHDL 源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.AL

9、L;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 := 0;BEGIN PROCESS(CLK) BEGIN IF RST = '0' THEN CNT6<=0 ; ELSIF CLK'EVENT AND CLK='1' THEN IF CNT6=2 THEN clk_

10、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显示模块图5该模块部分VHDL 源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clock1 IS PORT(CLK: IN STD_LOGIC;S1, S2, S3, S4, S5, S6: IN STD_LOGIC_VEC

11、TOR(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 ISSIGNAL CNT6 : INTEGER RANGE 0 TO 5 := 0;SIGNAL SHUJU: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PRO1:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THENCNT6 <=

12、CNT6 + 1;CASE CNT6 ISWHEN 0 => WEI <= "000" SHUJU <= S1;WHEN 1 => WEI <= "001" SHUJU <= S2; WHEN 2 => WEI <= "010" SHUJU <= S3;WHEN 3 => WEI <= "011" SHUJU <= S4;WHEN 4 => WEI <= "100" SHUJU <= S5;WHEN 5 =

13、> WEI <= "101" SHUJU <= S6;CNT6<=0;WHEN OTHERS => NULL;END CASE;END IF;END PROCESS;PRO2: PROCESS(SHUJU)BEGINCASE SHUJU ISWHEN "0000" => LED<= "1111110" ;WHEN "0001" => LED<= "0110000" ; WHEN "0010" => LED<=

14、"1101101" ; WHEN "0011" => LED<= "1111001" ; WHEN "0100" => LED<= "0110011" ; WHEN "0101" => LED<= "1011011" ; WHEN "0110" => LED<= "1011111" ; WHEN "0111" => LED<= "

15、;1110000" ; WHEN "1000" => LED<= "1111111" ; WHEN "1001" => LED<= "1111011" ; WHEN others=> LED<= "0000000" ; END CASE;END PROCESS;END ; 3 仿真波形及分析各部分模块完成后, 用Quartus 对程序编译、仿真、得到的仿真波形,各模块仿真波形及顶层仿真波形如下:3.1 六十进制计数器模块仿真图5图6图5、图6均为二十

16、四进制计数器仿真波形图。CLK:时钟信号 RST:复位信号 低电平清零 En:置数端 低电平不让它继续计数qb、qa:分别为输出数的十位个位,qb取值范围为0-5,qa取值范围为0-9rco:进位信号,当qb=5,qa=0, rco=0时,clk上升沿来到后,qb=0, qa=0, rco=1;当qb=5,qa=0, rco=1时,clk上升沿来到后,qb=0, qa=0, rco=03.2 二十四进制计数器模块仿真图7图8图7,图8 均为二十四进制计数器仿真波形图。CLK:时钟信号 RST:复位信号 低电平清零 En:置数端 低电平不让它继续计数qb、qa:输出的四位二进制数,分别对于要输出

17、数的十位个位3.3 分频器模块仿真因时钟脉冲(为256hz)通过分频器256分频后频率(为1hz),仿真波形显示前一小段,不能看出输出规律,所以做仿真是用3分频后的波形,真正在实验箱上验证是再改。图9CLK:输入分频前的时钟信号 RST:复位信号 低电平清零Clkout:输出分频后的时钟信号 3.4 LED显示模块仿真图10Clk:时钟信号s1,s2,s3,s4,s5,s6:输入的的四位二进制数led:输出的七位二进制数,对应数码管脚的输出gfedcbawei:输出的三位而进制数(输出范围为000-101),控制led输出:当wei=000时,led输出s1对应的十进制数的数码管脚gfedcb

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

温馨提示

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

评论

0/150

提交评论