数字逻辑实验7_计数器的设计与仿真

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

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

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

资源描述

实验七计数器的设计与仿真一、实验要求1.调用系统中的74LS163芯片,对其进行波形仿真,验证其功能。2.用VHDL语言设计一个能够实现同样功能的电路(能同步清零、同步置数的4位二进制计数器)。3.修改代码,将这个计数器修改为模10计数器。二、实验内容通过quartus2参照芯片的电路结构,先调用74LS163芯片使用逻辑原理图仿真、验证功能,然后使用VHDL语言实现4位二进制计数器、并修改代码将这个计数器修改为模10计数器。并通过仿真波形验证设计的功能是否正确。三、实验过程由于在报告1中已经详尽描述了如何使用Quartus2建立逻辑原理图和使用VHDL语言实现元件功能,所以本次的实验报告中便不再赘述上述内容,报告将主要就VHDL语言描述实现元件的功能的过程进行阐述。1.4位二进制计数器1)逻辑原理图点击File→New,选择BlockDiagram/SchematicFile并放置元件如图。保存文件并编译,选择菜单File→New,选择VectorWaveformFile新建波形图,添加节点,参数设置为:EndTime=2us,Gripsize=50ns。所完成的波形图如下图:保存波形文件,并在settings中选择functional功能仿真,绘制网格,仿真可得出如图波形:参照4位二进制计数器功能,依次检查,易得4位二进制计数器原理图设计成功。2)VHDL语言——4位二进制计数器选择File→New,弹出新建文本对话框,在该对话框中选择VHDLFile并单击OK按钮,进入文本编辑窗口,输入VHDL代码。libraryIEEE;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycout4isport(clk,clr,LD,ENT,ENP:instd_logic;p:instd_logic_vector(3downto0);q:outstd_logic_vector(3downto0);cout:outstd_logic);endcout4;architecturearcofcout4issignalqi:std_logic_vector(3downto0);beginprocess(LD,ENT,ENP,clr,p,clk)beginifclr='0'thenqi=0000;elsif(LD='0')thenqi=p;elsif(ENT='0'orENP='0')thenqi=qi;elsifclk'eventandclk='1'thenif(clr='1'andLD='1'andENT='1'andENP='1')thenif(qi15)thenqi=qi+1;elseqi=0000;endif;endif;endif;ifqi=15thencout='1';elsecout='0';endif;endprocess;q=qi;endarc;保存文件并编译,选择菜单File→New,选择VectorWaveformFile新建波形图,添加节点,参数设置为:EndTime=3us,Gripsize=50ns。所完成的波形图如下图:波形解释:LD为复位端,低电平有效,输出即为输入;clk为时钟信号输入端口;clr为清零端,低电平有效;ENT、ENP为使能端,低电平有效,为输出的前一状态,具有保持功能;cout表示高电位时,表示进位。保存波形文件,并在settings中选择functional功能仿真,绘制网格,仿真可得出如图波形:根据仿真波形可验证4位二进制计数器功能表中功能,当在时钟上升沿时,LD=‘0’,clr=‘1’时;4位二进制计数器复位,实现置数功能;当clr=‘1’,4位二进制计数器实现清零;当ENTorENP=‘0’时,4位二进制计数器实现保持功能。当LD=‘1’,clr=‘1’及ENT、ENP都为‘1’时,4位二进制计数器根据当前输入值开始计数,当计数器计数到15时,并计下一个数时,cout显示高电平,表示进位。已知4位二进制计数器功能表为:从波形分析与4位二进制计数器功能表相比,可知实现4位二进制计数器所有功能,设计成功。2.模10计数器选择File→New,弹出新建文本对话框,在该对话框中选择VHDLFile并单击OK按钮,进入文本编辑窗口,输入VHDL代码。libraryIEEE;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycout10isport(clk,clr,LD,ENT,ENP:instd_logic;p:instd_logic_vector(3downto0);q:outstd_logic_vector(3downto0);cout:outstd_logic);endcout10;architecturearcofcout10issignalqi:std_logic_vector(3downto0);beginprocess(LD,ENT,ENP,clr,p,clk)beginifclr='0'thenqi=0000;elsif(LD='0')thenqi=p;elsif(ENT='0'orENP='0')thenqi=qi;elsifclk'eventandclk='1'thenif(clr='1'andLD='1'andENT='1'andENP='1')thenif(qi9)thenqi=qi+1;elseqi=0000;endif;endif;endif;ifqi=9thencout='1';elsecout='0';endif;endprocess;q=qi;endarc;保存文件并编译,选择菜单File→New,选择VectorWaveformFile新建波形图,添加节点,参数设置为:EndTime=3us,Gripsize=50ns。所完成的波形图如下图:波形说明:其中,端口设置clk、clr、LD、cout、ENT、ENP功能同D触发器,其中J、K为数据输入端口。保存波形文件,并在settings中选择functional功能仿真,绘制网格,仿真可得出如图波形:仿真波形分析:模10计数器和4位二进制计数器是相似的,只是在计数到9的下一个时进位‘1’,在这里就不再重复了。仿真波形中,在1.5us处输入数字5并置数,可以看到计数器接着读数了,在计数到9的下一位时,cout进位。根据上面的波形分析,与真值功能表对比可知,设计实现了模10计数器的功能,设计成功。四、总结本节实验中,通过对用VHDL语言对模10计数器、4位二进制计数器进行设计,更加熟练了使用VHDL语言对元件的设计。也用逻辑原理图对4位二进制计数器的设计复习了原理图设计元件的步骤。也通过对4位二进制计数器的功能实现和仿真测试使得我对计数器的作用和功能了之于心。在预习报告中询问了关于同步和异步的概念和区别。异步电路:主要是组合逻辑电路,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。也就是说一个时刻允许一个输入发生变化,以避免输入信号之间造成的竞争冒险。电路的稳定需要有可靠的建立时间和持时间;同步电路:是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。2013/12/16

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

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

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

×
保存成功