1、使用D触发器设计一个11001序列检测器使用D触发器设计一个11001序列检测器讨论使用D触发器设计一个11001序列检测器,讨论序列可交迭(Overlap)检测和不可交迭检测在设计上的区别,讨论分别采用Mealy机设计和采用Moore机设计的区别,讨论未用状态的处理问题。【要求】给出电路原理图或HDL代码,要求进行仿真,并给出仿真结果。1.原件介绍D触发器(74LS74)、“与”门(74LS08)、“或”门(74LS32)、“非”门(74LS04), 集成电路引脚2.设计思路根据要求,设计的序列检测器有一个外部输入x和一个外部输出Z。输入和输出的逻辑关系为:当外部输入x第一个为1,外部输出Z
2、为0;当外部输入x第二个为1,外部输出Z为0;当外部输入第三个x为0,外部输出Z为0,当外部输入第四个x为“0”,外部输出Z为0,当外部输入第五个x为“1”,外部输出Z为“1”。假定有一个外部输入x序列以及外部输出Z为:输入X011100101输出Y000000100 要判别序列检测器是否连续接收了11001,电路必须用不同的状态记载外部输入x的值。假设电路的初始状态为A,x输入第一个1,检测器状态由A装换到B,用状态B记载检测器接受了11001序列的第一个1,这时外部输出Z=0;x输入第二个1,检测器状态由B装换到C,用状态C记载检测器接了“11001”序列的第二个1,外部输出Z=0;x输入
3、第三个0,检测器状态由C装换到D,外部输出Z=0;x输入第四个为“0”,检测器状态由D装换到E,外部输出Z=0;x输入第五个为“1”,检测器状态由E装换到F,外部输出Z=1。然后再根据外部输入及其他情况时的状态转移,写出相应的输出。以上分析了序列检测器工作,由此可画出原始状态图。根据原始状态图可列出原始状态表。 0000001100101000001010状态转换表现态X01AA0B0BA0C0CD0B0DE0A0EA0F1ZAQ2Q1Q0000001010011100000000100001 Q2*AQ2Q1Q0000001011010110000010endif;whens4=ifdin=
4、1thennst=s5;elsenstifdin=1thennst=s2;elsenstnst=s0;endcase;endprocess;reg:process(clk,rst)begin-shixujinchengifrst=1thenst=s0;elsifclkeventandclk=1thenst=nst;endif;endprocessreg;sout=1whenst=s5else0;endbehave;仿真结果小的体现了交迭mealy有交迭的程序设计library ieee;use ieee.std_logic_1164.all;entity schk2 is port(din,c
5、lk,rst:in std_logic; sout:out std_logic);end schk2;architecture behave of schk2 is type states is(s0,s1,s2,s3,s4,s5); signal st:states :=s0;begin process(clk,rst,st,din) begin if rst=1 then st if din=1 then st =s1; else st if din=1 then st =s2; else st if din=0 then st =s3; else st if din=0 then st
6、=s4; else st if din=1 then st =s5; else st if din=1 then st =s2; else st st =s0;end case; if(st=s5) then sout=1; else sout = 0;end if ; end if;end process;end behave;实现检测11001的图体现交迭的图 Mealy机无交叠的libraryieee;useieee.std_logic_1164.all;entityschk2isport(din,clk,rst:instd_logic;sout:outstd_logic);endsch
7、k2;architecturebehaveofschk2istypestatesis(s0,s1,s2,s3,s4,s5);signalst:states:=s0;beginprocess(clk,rst,st,din)beginifrst=1thenstifdin=1thenst=s1;elsestifdin=1thenst=s2;elsestifdin=0thenst=s3;elsestifdin=0thenst=s4;elsestifdin=1thenst=s5;elsestifdin=1thenst=s0;elsestst=s0;endcase;if(st=s5)thensout=1;
8、elsesoutifdin=1thennst=s1;elsenstifdin=1thennst=s2;elsenstifdin=0thennst=s3;elsenstifdin=0thennst=s4;elsenstifdin=1thennst=s5;elsenstifdin=1thennst=s0;elsenstnst=s0;endcase;endprocess;reg:process(clk,rst)begin-shixujinchengifrst=1thenst=s0;elsifclkeventandclk=1thenst=nst;endif;endprocessreg;sout=1whenst=s5else0;endbehave;5.关于二者设计上的不同Mealy状态机与Moore有限状态机不同,Mealy有限状态机的输出不但与当前状态有关,而且与输入信号的当前值有关,所以在st的赋值上二者会有不同,Moore赋给nst(下一状态的),mealy给st。而且相比于Moore机mealy有一个时钟的延时,不过这样可以起到滤波的作用。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2