实验5 采用状态机实现序列检测器

  • 格式:doc
  • 大小:30.00 KB
  • 文档页数:2

实验5 采用状态机实现序列检测器
一、实验目的
1.掌握利用有限状态机实现一般时序逻辑分析的方法;
2.掌握利用Verilog编写可综合的有限状态机的标准模板。

二、仪器设备
计算机、Quartus II 9.0 开发软件。

三、实验内容与步骤:
1.实验内容
建立一个序列检测器设计文件,当检测到3个及3个以上1时输出为1。

2.实验步骤
1)新建工程文件夹;
2)启动Quartus II
3)选择File->New Project Wizard,建立新工程;
4)File->New->Verilog HDL File建立设计文件;
5)选择Processing->Start->Start Analysis&Synthesis进行电路综合;
6)选择Tools->Netlist Viewers->RTL Viewer,查看综合后得到的电路;
7)选择Tools->Netlist Viewers->State Machine Viewer,查看综合后得到的有限状态机;8)选择Processing->Start->Start Fitter进行电路适配;
9)选择Tools->Netlist Viewers->Technology Map Viewer,查看适配后得到的电路。

四、实验数据
写出程序代码,及状态转换图。

五、讨论
写出三段式有限状态机的建模方式。

六、其它
实验原理要求说明:
1.什么是有限状态机;
2.什么是Moore有限状态机与Mealy有限状态机;
3.说明用Verilog HDL设计有限状态机的一般步骤。

附:程序部分代码
module seq_111(clk,clr,x,z);
input clk,clr,x;
output reg z;
reg[1:0] state,next_state;
parameter S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11;
/*状态编码*/
always @(posedge clk or posedge clr) /*该过程定义当前状态*/ begin if(clr) state<=S0; //异步复位,s0为起始状态else state<=next_state;
end
always @(state or x) /*该过程定义次态*/
begin
case (________ )
S0:begin case (x)
1:next_state=S1;
0:next_state=S0;
endcase
end
S1:begin if(x) next_state=S2;
else next_state=S0; end
S2:begin
if(x) next_state=S3;
else next_state=S0; end
S3:begin if(x) next_state=S3;
else next_state=S0; end
default:
next_state=S0; /*default语句*/
endcase
end
always @(________) /*该过程产生输出逻辑*/
begin case(state)
S3: z=1'b1;
default:z=1'b0;
endcase
end
endmodule。