状态机的速度
本帖最后由 fpgaw 于 2010-11-18 16:19 编辑在各个FPGA厂商的主流器件上,一个只有四个状态的状态机依次转换(不进行任何条件判断),能跑到多少频率啊? 你综合一下看看,综合工具会告诉你一个大概的 仅仅是综合是不够的还要映射到具体器件上面<br>
因为我自己的器件上好像有问题所以请大家帮我试试 附上程序:<br>
`timescale 1ns/1ps<br>
module fsm(sys_CLK, sys_RESET, iState);<br>
<br>
input sys_CLK, sys_RESET;<br>
output iState;<br>
reg iState; <br>
parameter state1 = 2'b00,<br>
state2 = 2'b01, <br>
state3 = 2'b11,<br>
state4 = 2'b10;<br>
always @(posedge sys_CLK)<br>
begin <br>
if (sys_RESET) iState <= state1;<br>
else<br>
case (iState)<br>
state1: <br>
iState <= state2;<br>
state2:<br>
iState <= state3;<br>
state3:<br>
iState <= state4;<br>
state4:<br>
iState <= state1;<br>
default:<br>
iState <= state1;<br>
endcase<br>
end<br>
endmodule<br>
<br>
`timescale 1ns/1ps<br>
module test();<br>
reg sys_CLK, sys_RESET;<br>
wire iState;<br>
initial<br>
begin<br>
sys_CLK = 0;<br>
sys_RESET = 1; <br>
# 160 sys_RESET = 0;<br>
end<br>
always # 4 sys_CLK = ~sys_CLK;<br>
fsm M<br>
(.sys_CLK (sys_CLK),<br>
.sys_RESET (sys_RESET), <br>
.iState (iState)<br>
);<br>
endmodule<br>
大家帮帮忙吧! 我再顶啊,没人理我 这种状态机的写法好像不太好吧<br>
组合逻辑和时序逻辑应该配合使用来实现状态机的变化<br>
我最高综合后可达90多Mhz<br>
实际上板还要看具体环境 ricewater : 为什么这样状态机的写法不太好. 能够说的仔细一些吗? 这里有一篇讲状态机的<br>
慢慢捉摸吧 Simple State machine don't need to use complicate style, I think his code is good enough for this simple one. 为什么不好呢?
页:
[1]
2