《EDA设计实验-序列检测器(共2页).docx》由会员分享,可在线阅读,更多相关《EDA设计实验-序列检测器(共2页).docx(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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;当在
2、状态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;output2:0state;reg2:0state;reg z;parameter s0=d0,s1=d1,s2=d2,s3=d3,s4=d4;always(posedge clk)beginif(r
3、eset)begin state=s0;z=0;endelse casex(state)s0: begin if(x=0) begin state=s0;z=0;end else begin state=s1;z=0;end ends1: beginif(x=0) begin state=s2;z=0;endelse begin state=s1;z=0;endends2:beginif(x=0) begin state=s3;z=0;endelse begin state=s1;z=0;endends3:beginif(x=0) begin state=s0;z=0;endelse begin state=s4;z=1;endends4:beginif(x=0) begin state=s2;z=0;endelse begin state=s1;z=0;endenddefault: state=s0;endcaseendendmodule实验仿真波形:分析:每当到达状态四即s4,此时检测序列为“1001”,输出即为1.专心-专注-专业