我是靠谱客的博主 高大小蚂蚁,最近开发中收集的这篇文章主要介绍matlab种状态机,使用ModelSim自动生成状态机FSM的状态转换图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

核心提示:HDL代码设计中重要的内容之一就是设计程序的状态机FSM,状态转换控制着整个程序的流程,为了理解程序,我们经常需要把状态机的状态转换图画出来,这样看起来很直观,但是,有没有办法自动生成状态转换图呢?在...

HDL代码设计中重要的内容之一就是设计程序的状态机FSM,状态转换控制着整个程序的流程,为了理解程序,我们经常需要把状态机的状态转换图画出来,这样看起来很直观,但是,有没有办法自动生成状态转换图呢?

在ISE或者ModelSim中有没有这样的工具呢?

答案是肯定的,ModelSim中即有这样的工具,下面以ISE13.4和ModelSim6.5为例,使用一段最简单的状态机代码说明如何操作来自动生成状态转换图。

代码如下:

module Top_fsm(

input clk,

input rst,

output reg fsm_out

);

parameter IDLE = 3'd0, S1 = 3'd1, S2 = 3'd2, S3 = 3'd3, S4 = 3'd4, S5 = 3'd5;

reg [2:0]status;

always @ (posedge clk)

if(!rst)begin

status <= IDLE;

end

else begin

case(status)

IDLE:begin

fsm_out <= 1'b0;

status <= S1;

end

S1:begin

fsm_out <= 1'b1;

status <= S2;

end

S2:begin

fsm_out <= 1'b0;

status <= S3;

end

S3:begin

fsm_out <= 1'b1;

status <= S4;

end

S4:begin

fsm_out <= 1'b0;

status <= S5;

end

S5:begin

fsm_out <= 1'b1;

status <= IDLE;

end

default:begin

fsm_out <= 1'b0;

end

endcase

end

endmodule

我们在ISE中直接切换到ModelSim仿真模式,如图所示:

84c6da1f33f400418b77fbc6d7484938.png

双击Simulate Behavioral Model,将打开ModelSim。

在ModelSim中执行View---FSM list命令,如下图所示:

d88043df0ffa9ee5bde0ce40b8e035a1.png

然后就会发现ModelSim左边这部分的标签多了一项,如下面两幅图的对比:

未执行命令前是这样子的:

ef47708706b94638d5b631815279e262.png

执行完命令是这样子的:

470084ce3c70377a47972811f4fb8ffc.png

这时候在FSM List标签下,可以看到如下内容,双击之:

426e5f0d854953dc9ad7b8111b0ea018.png

于是出现了下面的状态转换图:

a10d720cea2e4aefe5f86a63eb41fcfb.png

这时观察生成的状态转换图发现,所有的状态都在复位的情况下返回了状态IDLE,这是我们不期望的,仔细观察这时的菜单栏可以发现,有一个FSM View项:

942347e2fd05f620ff637a783c00d6dc.png

将Show Transitions to "Reset"项前面的对勾去掉,就会发现不显示复位情况下返回状态IDLE了,如下图所示:

fe06b2805ab860593054ef132211d2dc.png

细心的人会发现状态到了S5并未返回IDLE,但在前面的状态转换图中的确有Cond2:1这种状态转到状态IDLE,这估计是软件所导致的吧。

简单的应用就这些,深一些的功能自己好好探索吧。

最后说一下这种自动生成的状态转换图的缺点:因为它默认生成的状态转换图一定是一个圆,所以当你的状态比较复杂时,并非是一个简单的切换时,生成的状态转换图也就会很乱很乱,可读性直接下降,不知道是可以可调节或者有什么更好的生成工具?

最后

以上就是高大小蚂蚁为你收集整理的matlab种状态机,使用ModelSim自动生成状态机FSM的状态转换图的全部内容,希望文章能够帮你解决matlab种状态机,使用ModelSim自动生成状态机FSM的状态转换图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部