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