EDA设计实验序列检测器PDF打印版.pdfVIP

  • 7
  • 0
  • 约1.64千字
  • 约 2页
  • 2020-07-23 发布于广东
  • 举报
学 海 无 涯 华中农业大学理学院计算机系 实验题目: 设计串行数据检测器 实验说明: 设计一个“1001”串行数据检测器。使得但输出序列中出现“1001”时,结果中就输 出1。输入/输出如下所示: 输入x:000 101 010 010 011 101 001 110 101 输出z:000 000 000 010 010 000 001 000 000 实验分析: 初始状态设为s0,此时检测数据序列为“0000”,当再检测到一个0 时,仍为s0,当 检测到1 时,进入下一个状态s1,此时序列为“0001”;当在状态s1 检测到0 时,进入到 状态s2,此时序列为“0010”,当检测到1 时,仍为s1;当在状态s2 检测到0 时,进入到 状态s3,此时序列为“0100”,当检测到1 时,进入s1;当在状态s3 检测到0 时,进入s0, 当检测到1 时,进入状态s4,此时序列为“1001”,结果输出为1;当在s4 检测到0 时,进 入状态s2,当检测到1 时,进入状态s1。状态图如下: 实验代码: module sjjcq10_3(x,z,clk,reset,state); input x,clk,reset; output z; output[2:0]state; reg[2:0]state; reg z; parameter s0=d0,s1=d1,s2=d2,s3=d3,s4=d4; always@(posedge clk) begin 1 学 海 无 涯 if(reset)begin state=s0;z=0;end else casex(state) s0: begin if(x==0) begin state=s0;z=0;end else begin state=s1;z=0;end end s1: begin if(x==0) begin state=s2;z=0;end else begin state=s1;z=0;end end s2:begin if(x==0) begin state=s3;z=0;end else begin state=s1;z=0;end end s3:begin if(x==0) begin state=s0;z=0;end else begin state=s4;z=1;end end s4:begin if(x==0) begin state=s2;z=0;end else begin state=s1;z=0;end end default: state=s0; endcase end endmodule 实验仿真波形: 分析:每当到达状态四即s4,此时检测序列为“1001”,输出即为1. 2

文档评论(0)

1亿VIP精品文档

相关文档