基于VHDL语言13进制计数器的显示设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

44基于VHDL语言13进制计数器的显示设计一、实验目的(1)、掌握13进制计数器的工作原理及设计方法(2)、掌握用两位数码管显示高低位的方法二、实验要求(1)、掌握13进制计数器的VHDL描述方法(2)、掌握编码器的VHDL描述语言三、实验原理用两个数码管,一个高位(十位),一个低位(个位),显示13进制计数器的技术方式。首先,设计好计数器的程序,然后,设计相应的编码程序对其进行编码。之后两个程序生成元件符号,相互连接起来,形成一个顶层原理图文件,对其进行编译、仿真分析等。这个顶层原理图文件就是我们这次实验所需的设计。四、实验步骤1、13进制计数器的程序设计程序1如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycount13isport(en1,en2,res,clk:instd_logic;ca:outstd_logic;a,b:outstd_logic_vector(3downto0));endcount13;architecturertlofcount13issignalaout,bout:std_logic_vector(3downto0);signalcout,cl:std_logic;begincl=clkwhenen2='0'elseen1;process(en1,en2,cl,res)beginif(res='0')thenaout=0000;bout=0000;cout='0';—复位信号为低电平,复位elsif(cl'eventandcl='1')thenif(bout=1)then45if(aout2)thenaout=0000;bout=0000;cout='1';—计数器计到12时,进位输出高电位,重新开始计数elseaout=aout+1;endif;elseif(aout=9)thenaout=0000;bout=bout+1;—个位计到9时,十位进位elseaout=aout+1;cout='0';endif;endif;endif;endprocess;a=aout;b=bout;ca=cout;endrtl;2、编码器的程序设计程序2如下:libraryieee;useieee.std_logic_1164.all;entitydispisport(d:instd_logic_vector(3downto0);q:outstd_logic_vector(6downto0));enddisp;architecturertlofdispisbeginprocess(d)begincasediswhen0000=q=0111111;when0001=q=0000110;46when0010=q=1011011;when0011=q=1001111;when0100=q=1100110;when0101=q=1101101;when0110=q=1111101;when0111=q=0100111;when1000=q=1111111;whenothers=q=1101111;endcase;endprocess;endrtl;3、将程序1、2分别生成元件符号。如下:图1—元件符号1图2—元件符号2474、建立一个顶层原理图文件。(1)、顶层原理图文件如下:图3—连接好的顶层原理图文件(2)、对顶层文件编译:图4—编译成功后生成的报告48(3)、对顶层文件进行仿真:图5—编辑好的激励波形图6—仿真成功后生成的报告49(4)、仿真分析情况1:res为低电平时,复位图7—情况1的波形分析情况2:—个位计到9时,十位进位图8—情况2的波形分析情况3:计数器计到12时,进位输出高电位,重新开始计数图9—情况3的波形分析

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功