实验5 状态机序列检测器设计

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

实验五序列检测器设计

一、实验目的

1 掌握时序电路状态机设计一般方法;

2 学会用状态机方法实现序列检测器的设计。

二、实验原理:

序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。序列检测可由状态机完成,也可进行串行滑窗检测器。

线性反馈移位寄存器,用来产生伪随机序列,用做测试数据输入。

三、实验内容

1、完成“1101”检测器的设计,输入信号a和时钟clk,输出为out。

2、设计一个五位线性反馈移位寄存器,其输出数据以串行移位方式进入序列

检测器,其有置数端set,输入时钟clk,左移输出out;

3、连接五位线性反馈移位寄存器和序列检测器构成完整实验系统。

四、设计步骤

1、建立新工程,

2、完成五位线性反馈移位寄存器设计,序列检测器设计,顶层文件设计,并把各

个模块连接起来。

3、对顶层文件进行编译。

4、对顶层文件时序仿真。

五、实验报告:根据以上的实验内容写出实验报告,包括设计原理、程序设计、仿真分析等详细实验过程。

六、扩展部分:

1、采用文本输入方式构成顶层文件,重新构造本系统。

2、设计采用移动滑窗法进行序列检测。

参考程序:状态机序列检测器(1101)module fsm (clock, reset, datain,

out);

input clock,reset, datain; output out;

reg out;

reg [1:0] state; parameter

Idle = 2'b00,

Start = 2'b01,

Step=2'b10,

Stop = 2'b11;

always @(posedge clock)// if (!reset) //

begin

state <= Idle;

out<=0;

end

else case (state) Idle:

if (datain==1)

begin

state <= Start;

out<=0;

end

else

begin

state<=Idle;

out<=0;

end

Start:

if (datain==1)

begin

state <= Step;

out<=0;

end

else state <=Idle; Step:

if (datain==0)

begin

state <= Stop;

out<=0;

end

else state<=Step; Stop:

if (datain==1)

begin

state <= Idle;

out<=1;

end

else

begin

state <=Idle;

out<=0;

end

endcase

endmodule

线性反馈移位寄存器:

module gedata(clk,out,set);

input clk,set;

output out;

wire out;

reg[4:0] sr;

assign out=sr[0];

always@(posedge clk)

begin

if(set)

sr<=5'b10101;

else

begin

sr<=sr>>1;

sr[4]<=sr[2]^sr[0];

end

end

endmodule

相关文档
最新文档