欢迎访问文稿网!

FSM状态图编辑器录入方法

范文之家 分享 时间: 加入收藏 我要投稿 点赞

FSM状态图编辑器录入方法

     10.1.3 FSM(状态图编辑器)录入方法

     FSM即有限状态机,状态图编辑器(State Diagram Editor)就是采用状态图方式进行FSM设计的工具。

     下面以控制器的FSM设计为例来具体介绍Active-HDL的FSM录入方法。控制器有三个输入端口start、reset、clk和两个输出端口en、end_reset。控制器的状态图如图10.24所示。

     img417

    

     图10.24 控制器状态机

     在创建好的设计工程中,通过选择“File→New→State Diagram”,即可启动FSM录入方法进行状态机设计,如图10.25所示。

     img418

    

     图10.25 启动FSM编辑器

     接着出现如图10.26所示的新源文件创建向导对话框。

     img419

    

     图10.26 新源文件创建向导对话框

     点击“下一步”进入如图10.27所示的语言选择窗口。本例中选择VHDL,这将决定对应设计在编译后自动生成VHDL源代码。

     img420

    

     图10.27 自动生成代码的语言类别选择

     点击“下一步”进入如图10.28所示的命名窗口。在图中依次录入控制器FSM的文件名、实体名和构造体名。

     img421

    

     图10.28 命名窗口

     接下来进行端口定义,如图10.29所示。本设计共定义输入三个端口clk、reset、start和两个输出端口end_reset、en。

     img422

    

     图10.29 端口定义

     点击“完成”进入如图10.30所示的状态机时钟选择提示对话框。

     img423

    

     图10.30 状态机时钟选择

     本例中选择“是(Y)”,随即进入如图10.31所示的FSM状态图编辑窗口。

     img424

    

     图10.31 FSM状态图编辑主窗口

     在进行状态图编辑前还需要完成端口的属性设置。本例中需要将状态机的输出端口end_reset和en设置为寄存器类型(Registered),如图10.32所示。

     img425

    

     图10.32 输出端口属性设置

     端口属性设置完成后的效果如图10.33所示。

     img426

    

     图10.33 端口属性设置完成

     本例控制器FSM状态图的编辑,首先需要画出三个状态。通过选择“FSM→State”即可进入状态绘制命令。如图10.34所示画出三个状态,并双击状态名将其修改成需要的命名。

     img427

    

     图10.34 画出状态并完成状态命名

     通过选择“FSM→Transition”进入状态转换关系绘制命令,如图10.35所示,绘出三个状态的转换关系。

     img428

    

     图10.35 给出状态转换关系

     通过选择“FSM→RESET”进入复位设置绘制命令,如图10.36所示,给出复位关系。

     img429

    

     图10.36 给出复位关系

     在状态图编辑窗口点击鼠标右键,选择“Properties”进入如图10.37所示的复位属性设置窗口,本例中设置reset类型为“Asynchronous”,reset有效电平为“Low”。

     img430

    

     图10.37 状态机属性设置窗口

     通过选择“FSM→Condition”进入状态转换条件设置命令,如图10.38所示,给出每一个状态转换的条件。

     img431

    

     图10.38 状态转换条件设置

     最后需要进行状态动作的定义。通过选择“FSM→Action→State”进入状态动作设置命令,如图10.39所示,给出每一个状态动作的源代码。

     img432

    

     图10.39 状态动作的定义

     到此为止,FSM状态图编辑全部完成。保存并编译,Active-HDL会自动生成VHDL格式的控制器FSM源程序代码。如图10.40所示给出了FSM源程序部分代码的截图。

     img433

    

     图10.40 工具自动生成的控制器FSM的VHDL源代码截图

221381
领取福利

微信扫码领取福利

微信扫码分享