集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 8043|回复: 16

如何在大的状态机里面加入小的状态机?

[复制链接]
HDL 发表于 2010-6-26 01:46:22 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-11-18 16:16 编辑

写一个对硬盘的读写操作,用FPGA来实现,先写一个大的状态机,如依次的读寄存器,写寄存器等一系列状态,但是我还需要在这些大的状态机里写小状态机,应为寄存器的读写又需要一个状态。不知道怎样写。大的状态机用的是case when 语句
encounter 发表于 2010-6-26 03:19:19 | 显示全部楼层
赐教了?????<br>
不懂^_^<br>
不过你说的那个无所谓了<br>
直接写就是了<br>
套几层无所谓的
ICE 发表于 2010-6-26 05:14:09 | 显示全部楼层
状态机里面直接套就是了阿~~
AAT 发表于 2010-6-26 05:54:31 | 显示全部楼层
你的设计思路有问题吧,不是硬件的思路啊
ICE 发表于 2010-6-26 07:31:23 | 显示全部楼层
我觉得,如果你原来有了A,B,C3个状态,又想在A分2个小状态,B分3个小状态,C分4个小状态,<br>
那根本就是A1, A2, B1, B2, B3, C1, C2, C3, C4一共9个状态吗<br>
<br>
所谓的&ldquo;大状态套小状态&rdquo;,你把整个状态转换图画出来,就应该是各个小状态转来转去。原帖由 jep 于 2007-1-24 09:02 发表<br>
你的设计思路有问题吧,不是硬件的思路啊
FFT 发表于 2010-6-26 08:41:58 | 显示全部楼层
状态机适用于有限状态集合而且对并发性要求不高的应用中,不一定是最好的系统行为描述方法
longtim 发表于 2010-6-26 09:31:54 | 显示全部楼层
状态机,可以嵌套的阿<br>
你到某个状态下再生成一个状态机就可以了
ups 发表于 2010-6-26 11:17:04 | 显示全部楼层
太抽象的行为,都不像硬件了&mdash;&mdash;直接像C。<br>
<br>
再负载的状态机,理论上都可以手工求得状态表达式<br>
直接用data flow实现&mdash;&mdash;那就是硬件原帖由 不无道理 于 2007-1-24 11:39 发表<br>
状态机适用于有限状态集合而且对并发性要求不高的应用中,不一定是最好的系统行为描述方法
ICE 发表于 2010-6-26 11:23:06 | 显示全部楼层
直接写就可以了
encounter 发表于 2010-6-26 13:02:30 | 显示全部楼层
恩,这问题不知道是不是简单了点还是你想问的不是这个。<br>
<br>
假设A,B,C三个状态,A状态下分a1,a2,a3状态。<br>
假设A状态下进入a1状态,轮流到a3状态跳出A状态,到B状态。<br>
<br>
大状态机:<br>
case (state_L1)<br>
&nbsp;&nbsp;A: if (state_L2 == a3)<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;next_state_L1 = B;<br>
&nbsp; &nbsp;&nbsp; &nbsp;else next_state_L1 = A;<br>
&nbsp;&nbsp;B: next_state_L1 = C;<br>
&nbsp;&nbsp;C: next_state_L1 = A;<br>
&nbsp;&nbsp;default: ... <br>
endcase<br>
<br>
小状态机:<br>
if (state_L1 == A)<br>
case (state_L2)<br>
&nbsp;&nbsp;a1: next_state = a2;<br>
&nbsp;&nbsp;a2: next_state = a3;<br>
&nbsp;&nbsp;a3: next_state = a1;<br>
endcase<br>
<br>
再想加控制就自己加
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 17:22 , Processed in 0.066605 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表