110序列检测器的设计及仿真实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:设计110序列检测器,当输入信号时输
出,否则
一、设计思路
我们采用Moore机完成这个功能。对于触发器的选择,为了简便我们选用D触发器以及基本的门电路完成基本设计。
二、时钟同步状态机
1根据题目要求我们得到下面的状态图
状态表示的意义Q X=0 X=1 输出Z 等待1的出现 A A B 0
出现1 B A C 0
出现11 C D C 0
出现110 D A B 1
*
Q
2 转移输出表
01
Q Q输入X
输出Z
X=0 X=1
00 00 01 0
01 00 11 0
11 10 11 0
10
00
01 1
01Q 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
四、仿真结果及电路图得到功能仿真结果为:
时序仿真结果为:
利用程序生成的电路图为
从电路图和仿真结果来看这次的仿真能够完全达到题目的要求。