我是靠谱客的博主 冷艳背包,最近开发中收集的这篇文章主要介绍序列检测器1,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

华中农业大学理学院计算机系

实验题目:

     设计串行数据检测器

实验说明:

     设计一个“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

         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.

最后

以上就是冷艳背包为你收集整理的序列检测器1的全部内容,希望文章能够帮你解决序列检测器1所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部