数字逻辑实验6触发器的仿真.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字逻辑实验6触发器的仿真

实验六 触发器的仿真 实验要求 1.用VHDL语言设计D锁存器,并进行仿真与分析; 2.参看Maxplus中器件7474(边沿D触发器)的逻辑功能,用VHDL语言设计边沿触发式D触发器,并进行仿真与分析。 3.参看Maxplus中器件7476(边沿JK触发器)的逻辑功能,用VHDL语言设计边沿触发式JK触发器,并进行仿真与分析。 实验内容 通过quartus2 参照芯片的电路结构,只使用VHDL语言实现D锁存器、边沿D触发器(参照7474)和边沿JK触发器(参考7476)。并通过仿真波形验证设计的功能是否正确。 实验过程 由于在报告1中已经详尽描述了如何使用Quartus 2建立逻辑原理图和使用VHDL语言实现元件功能,所以本次的实验报告中便不再赘述上述内容,报告将主要就VHDL语言描述实现元件的功能的过程进行阐述。 D锁存器 选择File→New,弹出新建文本对话框,在该对话框中 选择VHDL File并单击OK按钮,进入文本编辑窗口,输入VHDL代码。 library IEEE; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity d_lock is port( en,d:in std_logic; q,notq:out std_logic); end d_lock; architecture d_lock_arc of d_lock is signal q1,notq1 :std_logic; begin process(en,d) begin if(en/=0) then if(d=0) then q1=0; notq1=not q1; else q1=1; notq1=not q1; end if; else q1= q1; notq1= notq1; end if; end process; q= q1; notq= notq1; end d_lock_arc; 保存文件并编译,选择菜单File→New,选择Vector Waveform File新建波形图,添加节点,参数设置为:End Time=2us, Grip size=100ns。所完成的波形图如下图: 保存波形文件,并在settings中选择functional功能仿真,绘制网格,仿真可得出如图波形: 在仿真中,只摘取了部分重要部分进行仿真验证,测试了使能端G的功能从仿真波形的信息可以得出: endqnotq100111100×保持q保持notq据仿真波形信息,当使能端en为1时,d端数据输入为0时,q端输出0,notq输出1; 当使能端en为1时,d端数据输入为1时,q端输出1,notq输出0; 当使能端en为0时,无???d端数据输入什么,q端保持输出原输出,notq保持原输出; 根据输入输出的对应关系,可以得出它的真值表和D锁存器相同,设计成功。 边沿D触发器 选择File→New,弹出新建文本对话框,在该对话框中 选择VHDL File并单击OK按钮,进入文本编辑窗口,输入VHDL代码。 library IEEE; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity d_chufa is port( pr,clr,clk,d:in std_logic; q,notq:out std_logic); end d_chufa; architecture arc of d_chufa is signal q1,nq1: std_logic; begin process(pr,clk,d,clr) begin if(pr=0 and clr=1) then q1=1; nq1= not q1; elsif(pr=0 and clr=0) then q1=1; nq1=1; elsif(pr=1 and clr=0) then q1=0; nq1= not q1; elsif(clkevent and clk=1) then q1=d; nq1=not d; else q1=q1; nq1=nq1; end if; end process; q=q1; notq=nq

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档