集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4904|回复: 10

状态机的速度

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

在各个FPGA厂商的主流器件上,一个只有四个状态的状态机依次转换(不进行任何条件判断),能跑到多少频率啊?
interig 发表于 2010-6-26 03:01:25 | 显示全部楼层
你综合一下看看,综合工具会告诉你一个大概的
UFO 发表于 2010-6-26 03:49:09 | 显示全部楼层
仅仅是综合是不够的还要映射到具体器件上面<br>
因为我自己的器件上好像有问题所以请大家帮我试试
AAT 发表于 2010-6-26 04:18:55 | 显示全部楼层
附上程序:<br>
`timescale 1ns/1ps<br>
module fsm(sys_CLK, sys_RESET, iState);<br>
&nbsp;&nbsp;<br>
&nbsp; &nbsp;&nbsp; &nbsp; input&nbsp;&nbsp;sys_CLK, sys_RESET;<br>
&nbsp; &nbsp;&nbsp; &nbsp; output[1:0] iState;<br>
&nbsp; &nbsp;&nbsp; &nbsp; reg[1:0] iState;&nbsp;&nbsp;<br>
&nbsp; &nbsp;&nbsp; &nbsp; parameter&nbsp;&nbsp;state1&nbsp; &nbsp;&nbsp; &nbsp;= 2'b00,<br>
&nbsp; &nbsp;&nbsp; &nbsp; state2&nbsp; &nbsp;&nbsp; &nbsp;= 2'b01, <br>
&nbsp; &nbsp;&nbsp; &nbsp; state3&nbsp; &nbsp;&nbsp; &nbsp;= 2'b11,<br>
&nbsp; &nbsp;&nbsp; &nbsp; state4&nbsp; &nbsp;&nbsp; &nbsp;= 2'b10;<br>
always @(posedge sys_CLK)<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;begin <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;if (sys_RESET)&nbsp; &nbsp;&nbsp; &nbsp; iState &lt;= state1;<br>
&nbsp; &nbsp;else<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;case (iState)<br>
&nbsp;&nbsp;state1: <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;iState &lt;= state2;<br>
&nbsp;&nbsp;state2:<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;iState &lt;= state3;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;state3:<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;iState &lt;= state4;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;state4:<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; iState &lt;= state1;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;default:<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;iState &lt;= state1;<br>
&nbsp; &nbsp;&nbsp; &nbsp; endcase<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;end<br>
endmodule<br>
<br>
`timescale 1ns/1ps<br>
module test();<br>
&nbsp; &nbsp;&nbsp; &nbsp; reg&nbsp; &nbsp;sys_CLK, sys_RESET;<br>
&nbsp; &nbsp;&nbsp; &nbsp; wire[1:0]&nbsp;&nbsp;iState;<br>
&nbsp; &nbsp;&nbsp; &nbsp; initial<br>
&nbsp; &nbsp;begin<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; sys_CLK&nbsp; &nbsp;&nbsp; &nbsp; = 0;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sys_RESET&nbsp; &nbsp;&nbsp;&nbsp;= 1; <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;# 160 sys_RESET = 0;<br>
&nbsp; &nbsp;end<br>
&nbsp;&nbsp;always # 4 sys_CLK = ~sys_CLK;<br>
&nbsp;&nbsp;fsm&nbsp;&nbsp;M<br>
&nbsp; &nbsp;&nbsp; &nbsp; (.sys_CLK (sys_CLK),<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;.sys_RESET (sys_RESET), <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;.iState (iState)<br>
&nbsp; &nbsp;&nbsp; &nbsp; );<br>
endmodule<br>
大家帮帮忙吧!
ngtim 发表于 2010-6-26 05:04:21 | 显示全部楼层
我再顶啊,没人理我
HDL 发表于 2010-6-26 05:33:50 | 显示全部楼层
这种状态机的写法好像不太好吧<br>
组合逻辑和时序逻辑应该配合使用来实现状态机的变化<br>
我最高综合后可达90多Mhz<br>
实际上板还要看具体环境
ups 发表于 2010-6-26 07:11:58 | 显示全部楼层
ricewater : 为什么这样状态机的写法不太好. 能够说的仔细一些吗?
encounter 发表于 2010-6-26 08:58:11 | 显示全部楼层
这里有一篇讲状态机的<br>
慢慢捉摸吧
longtim 发表于 2010-6-26 09:47:31 | 显示全部楼层
Simple State machine don't need to use complicate style, I think his code is good enough for this simple one.
CHANG 发表于 2010-6-26 11:29:57 | 显示全部楼层
为什么不好呢?
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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