使用D触发器设计一个11001序列检测器讲述.doc

使用D触发器设计一个11001序列检测器讲述.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
讨论使用D触发器设计一个11001序列检测器,讨论序列可交迭(Overlap)检测和不可交迭检测在设计上的区别,讨论分别采用Mealy机设计和采用Moore机设计的区别,讨论未用状态的处理问题。 【要求】给出电路原理图或HDL代码,要求进行仿真,并给出仿真结果。 1.原件介绍 D触发器(74LS74)、“与”门(74LS08)、“或”门(74LS32)、“非”门(74LS04), 根据要求,设计的序列检测器有一个外部输入x和一个外部输出Z。输入和输出的逻辑关系为:当外部输入x第一个为1,外部输出Z为0;当外部输入x第二个为1,外部输出Z为0;当外部输入x为,外部输出Z为,当外部输入第四个x为“0”,外部输出Z为0,当外部输入第五个x为“1”,外部输出Z为“1”。假定有一个外部输入x序列以及外部输出Z为: 0 1 1 1 0 0 1 0 1 输出Y 0 0 0 0 0 0 1 0 0 要判别序列检测器是否连续接收了11,电路必须用不同的状态记载外部输入x的值。假设电路的初始状态为A,x?输入第一个1,检测器状态由A装换到B,用状态B记载检测器接受了11序列的第一个1,这时外部输出Z=0;x输入第二个1,检测器状态由B装换到C,用状态C记载检测器接了序列的第二个1,外部输出Z=0;x输入第三个,检测器状态由C装换到D,外部输出Z=x输入第四个为“0”,检测器状态由D装换到E,外部输出Z=0;x输入第五个为“1”,检测器状态由E装换到F,外部输出Z=1。然后再根据外部输入及其他情况时的状态转移,写出相应的输出。以上分析了序列检测器工作,由此可画出原始状态图。根据原始状态图可列出原始状态表。 状态转换表 现态 X 0 1 A A\0 B\0 B A\0 C\0 C D\0 B\0 D E\0 A\0 E A\0 F\1 Z A Q2Q1Q0 000 001 010 011 100 0 0 0 0 0 0 1 0 0 0 0 1 Q2* A Q2Q1Q0 000 001 011 010 110 0 0 0 0 1 0 1 0 0 0 0 0 Q1* A Q2Q1Q0 000 001 011 010 110 0 0 0 1 0 0 1 0 1 1 0 0 Q0* A Q2Q1Q0 000 001 011 010 110 0 0 0 1 0 0 1 1 0 0 1 0 得到状态方程和输出方程 Z=A Q2*= Q1*= Q0*= D2=Q2* D1=Q1* D0=Q0* 3.未用状态 关于未用状态涉及到了D触发器自启动的检验: 前一状态为 111时,Q3*=A’; Q2*=0; Q1*=A,下一状态为有效状态。 前一状态为110时,Q3*=A; Q2*=1; Q1*=1,对A值分类讨论: A=0,下一状态为有效状态; A=1,下一状态为111,再下一个状态为有效状态。 4.实际代码设计与仿真 MOORE机有交迭的程序设计 library?ieee; use?ieee.std_logic_1164.all; entity?schk?is??? port(din,clk,rst:in?std_logic; ??????sout:out?std_logic); end?schk; architecture?behave?of?schk?is ???type?states?is(s0,s1,s2,s3,s4,s5); ???signal?st,nst:states?:=s0; begin ?com:?process(st,din)?begin?? case?st?is?? ???when?s0=?if?din=1?then?nst?=s1;else?nst?=?s0; end?if; ???when?s1=?if?din=1?then?nst?=s2;else?nst?=?s0; end?if; ???when?s2=?if?din=0?then?nst?=s3;else?nst?=?s0; end?if; ???when?s3=?if?din=0?then?nst?=s4;else?nst?=?s0; end?if; ???when?s4=?if?din=1?then?nst?=s5;else?nst?=?s0; end?if; ???when?s5=?if?din=1?then?nst?=s2;else?nst?=?s0; end?if; ???when?others?=?nst?=s0; end?case; end?process; reg:process?(clk,rst)??begin--shixujincheng ??if?rst=1?then?

文档评论(0)

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

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

1亿VIP精品文档

相关文档