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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档