集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 3478|回复: 6

关于状态机的问题

[复制链接]
UFO 发表于 2010-6-26 01:21:03 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-11-19 09:43 编辑

我想请问一下,不同的项目要求不同的状态,也就是说状态数目是编写代码的人根据定的,那么这个数目有没有与别的例如时序之类的因素有关呢?<br>
或者这么说,会不会出现同一种情况不同数目不同状态的状态机最后殊途同归?
ATA 发表于 2010-6-26 01:58:01 | 显示全部楼层
你说的什么意思嘛,搞不懂得,我觉得一般状态机就是根据输入和上一个状态,决定状态机的下一个状态,而输出是根据当前状态(有时和输入一起)决定的。时序电路一般都是同步时钟来控制的,如果状态机处理上一个状态和时间花费的时间超过了一个时钟周期,我们可以分频更小,就可以了啊。
CHANG 发表于 2010-6-26 02:32:12 | 显示全部楼层
我得意思是<br>
比如会不会出现同一个过程<br>
我们可以把它分为A-B-C-D-E五个状态<br>
也可以分成A-B-C-D-E-F6各状态<br>
用不同的状态机都可以达到相同的目的?<br>
如果可以得话,前者需要5个时钟沿,后者需要6个,在时钟方面是不是无所谓?
ngtim 发表于 2010-6-26 03:34:57 | 显示全部楼层
显然可以<br>
产生一个单周期脉冲<br>
可以用两个状态,第一个置1,接着第二个置0<br>
Case state<br>
when ready_1=&gt;<br>
r&lt;=&lsquo;1&rsquo;;<br>
state&lt;=ready_2;<br>
when ready_2=&gt;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;r&lt;=&lsquo;0&rsquo;;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;state&lt;=state_others;<br>
&hellip;&hellip;<br>
<br>
也可以用一个状态实现<br>
Case state<br>
when ready=&gt;<br>
if r=&lsquo;0&rsquo; then<br>
r&lt;=&lsquo;1&rsquo;;<br>
else<br>
r&lt;=&lsquo;0&rsquo;;<br>
state&lt;=state_others;<br>
end if;<br>
&hellip;&hellip;<br>
HDL 发表于 2010-6-26 04:54:20 | 显示全部楼层
那如果我拿到一个过程,初步分析之后比如觉得可以分解成5个状态,仿真时出现问题,那么我是应该着重检查逻辑关系还是状态的分配?<br>
有没有把一般过程分解状态的指导性原则或者经验?
usb 发表于 2010-6-26 05:45:55 | 显示全部楼层
呵呵,没考虑过。<br>
同时作的事分在同一个状态把<br>
不同时作的事按顺序分状态把<br>
如果不怕多花几个时钟周期或者输出没有相应的时间要求,多分几个状态应该没有什么问题。
Sunlife 发表于 2015-6-17 10:50:38 | 显示全部楼层
我得意思是<br>
比如会不会出现同一个过程<br>
我们可以把它分为A-B-C-D-E五个状态<br>
也可以分成A-B-C-D-E-F6各状态<br>
用不同的状态机都可以达到相同的目的?<br>
如果可以得话,前者需要5个时钟沿,后者需要6个,在时钟方面是不是无所谓?
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2025-6-21 10:38 , Processed in 0.984692 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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