序列检测器的设计及仿真实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目:设计110序列检测器,当输入信号

时输出

,否则

一、设计思路

我们采用Moore机完成这个功能。对于触发器的选择,为了简便我们选用D触发器以及基本的门电路完成基本设计。

二、时钟同步状态机

1根据题目要求我们得到下面的状态图

等待1的出

现A A B0出现1

B A C0

出现11

C D C0

出现110

D A B1

*

Q

2 转移输出表

01

Q Q输入X

输出Z

X=0X=1

0000010

0100110

1110110

1000011

01

Q Q**

3 状态图如图:

通过卡诺图化简可得 转移方程:

00111

=Q Q Q Q X Q X

**+=

输出方程:01Z Q Q •=

我们选择D 触发器作为记忆电路部分 由D 触发器的特征方程: Q D *= 得激励方程:

00111D =Q Q Q X D X

+=

三、Verilog 程序如下: module shiyan2 (clk,x,z); input clk,x; output z; wire[1:0] state; wire[1:0] excite;

nextlogic u1(x,state,excite); statememory u2(clk,excite,state); outputlogic u3(state,z); endmodule

module statememory (clk,d,q); input clk;

input[1:0] d;

output[1:0] q;

reg[1:0] q;

always @ (posedge clk) begin

q <= d;

end

endmodule

module nextlogic (x,q,d);

input x; input[1:0] q;

output[1:0] d;

assign d[0]=(q[1]&q[0])|(q[1]&x); assign d[1]=x;

endmodule

module outputlogic (q,z);

input[1:0] q;

output z;

assign z=(!q[1])&q[0];

Endmodule

四、仿真结果及电路图

得到功能仿真结果为:

时序仿真结果为:

利用程序生成的电路图为

从电路图和仿真结果来看这次的仿真能够完全达到题目的要求。

相关文档
最新文档