文档详情

EDA实验08—利用有限状态机进行时序逻辑的设计.docx

发布:2024-03-12约3.22千字共5页下载文档
文本预览下载声明

第PAGE1页共5页

电子信息工程学系实验报告

成绩:

绩:

指导教师(签名):

实验项目名称:利用有限状态机进行时序逻辑的设计 实验时间:2011-12-05

班级:通信091 姓名:Jxairy 学 号:910705131

实验目的:

1、掌握利用有限状态机实现一般时序逻辑分析的方法;

2、掌握用Verilog编写的有限状态机的标准模板。

实验环境:

Windows7、MAX+PlusⅡ10等。实验内容:

1、设计简单的状态机,功能是检测一个5位二进制序列“10010”。考虑到序列重叠的可能,有限状态机共提供了8个状态(包括初始状态IDLE)。

2、设计一个串行数据检测器。要求是:连续4个或4个以上为1时输出为1,其他输入情况下为0。

实验过程:

一、简单的状态机的文本设计及仿真:

新建文本:选择菜单File下的New,出现如图8.1所示的对话框,在框中选中“TextEditorfile”,按“OK”按钮,即选中了文本编辑方式。

图8.1新建文本

另存为Verilog编辑文件,分别命名为“seqdet.v”。如图8.2所示。

在编辑窗口中输入“seqdet.v”的程序,如下所示。

moduleseqdet(x,z,clk,rst,state);

inputx,clk,rst;outputz;output[2:0]state;reg[2:0]state;wirez;

parameterIDLE=`d0,A=d1,B=d2,C=d3,D=d4,E=d5,F=d6,G=d7;

assignz=(state==Ex==0)?1:0;

always@(posedgeclk)if(!rst)

beginstate=IDLE;end

elsecasex(state)IDLE:if(x==1)

beginstate=A;end

A:if(x==0)begin

state=B;endB:if(x==0)beginstate=C;end

elsebeginstate=F;end

C:if(x==1)beginstate=D;end

else

begnstate=G;endD:if(x==0)beginstate=E;end

elsebeginstate=A;

endE:if(x==0)beginstate=C;end

elsebeginstate=A;end

F:if(x==1)

beginstate=A;end

elsebeginstate=B;end

G:if(x==1)beginstate=F;end

default:state=IDLE;endcase

endmodule

图8.2另存为.V编辑文件 图8.3设置当前仿真的文本设计

设置当前文本:在MAX+PLUSII中,在编译一个项目前,必须确定一个设计文件作为当前项目。

按下列步骤确定项目名:在File菜单中选择Project中的Name选项,将出现ProjectName对话框:在Files

框内,选择当前的设计文件。选择“OK”。如图8.3所示。

打开编译器窗口:在MAX—plusⅡ菜单内选择Compiler项,即出现如图8.4的编译器窗口。

图8.4编译器窗口

选择Start即可开始编译,MAX+PLUSII编译器将检查项目是否有错,并对项目进行逻辑综合,然后配置到一个Altera器件中,同时将产生报告文件、编程文件和用于时间仿真用的输出文件。

建立波形编辑文件:选择菜单File下的New选项,在出现的New对话框中选择“WaveformEditorFile”,单击OK后将出现波形编辑器子窗口。

仿真节点插入:选择菜单Node下的EnterNodesfromSNF选项,出现如图8.5所示的选择信号结点对话框。按右上侧的“List”按钮,在左边的列表框选择需要的信号结点,然后按中间的“=”按钮,单击“OK”,选中的信号将出现在波形编辑器中。

图8.5仿真节点插入

输入波形设置,保存波形文件,文本仿真:单击菜单File下的Save选项,在弹出的窗口中将波

形文件存在以上的同一目录中,文件取名为seqdet.scf。单击MAX—plusⅡ菜单内选择Simulator选项,单击Start,接着打开OpenSCF(界面如下图8.6)即完成计数器的波形仿真。

图8.6Simulator仿真二、串行数据检测器的文本

显示全部
相似文档