- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字逻辑实验 7_计器的设计与仿真
实验七 计数器的仿真
1.实验内容
实验过程
由于在报告1中已经详尽描述了如何使用Quartus 2建立逻辑原理图和使用VHDL语言实现元件功能,所以本次的实验报告中便不再赘述上述内容,报告将主要就VHDL语言描述实现元件的功能的过程进行阐述。
4位二进制计数器
逻辑原理图
点击File→New,选择Block Diagram/Schematic File并放置元件如图。
保存文件并编译,选择菜单File→New,选择Vector Waveform File新建波形图,添加节点,参数设置为:End Time=2us, Grip size=50ns。所完成的波形图如下图:
保存波形文件,并在settings中选择functional功能仿真,绘制网格,仿真可得出如图波形:
参照4位二进制计数器功能,依次检查,易得4位二进制计数器原理图设计成功。
VHDL语言——4位二进制计数器
选择File→New,弹出新建文本对话框,在该对话框中 选择VHDL File并单击OK按钮,进入文本编辑窗口,输入VHDL代码。
library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cout4 is
port(
clk,clr,LD,ENT,ENP:in std_logic;
p:in std_logic_vector(3 downto 0);
q:out std_logic_vector(3 downto 0);
cout:out std_logic
);
end cout4;
architecture arc of cout4 is
signal qi:std_logic_vector(3 downto 0);
begin
process(LD,ENT,ENP,clr,p,clk)
begin
if clr=0 then
qi=0000;
elsif(LD=0) then
qi=p;
elsif(ENT=0 or ENP=0) then
qi=qi;
elsif clkevent and clk =1 then
if(clr=1and LD=1 and ENT=1 and ENP=1) then
if( qi15 ) then
qi=qi+1;
else
qi=0000;
end if;
end if;
end if;
if qi=15 then
cout=1;
else
cout=0;
end if;
end process;
q=qi;
end arc;
保存文件并编译,选择菜单File→New,选择Vector Waveform File新建波形图,添加节点,参数设置为:End Time=3us, Grip size=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位二进制计数器所有功能,设计成功。
模10计数器
选择File→New,弹出新建文本对话框,在该对话框中 选择VHDL File并单击OK按钮,进入文本编辑窗口,输入VHDL代码。
library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cout10 is
port(
clk,clr,LD,ENT,ENP:in std_log
文档评论(0)