UFO 发表于 2010-6-26 12:36:50

one hot状态机不是那样子写的,市面上的书基本上全讲错了,可以看下cliff的一些文档。www.sunburst-design.com。<br>
PS:这个人经常给mentor、altera这种公司的人讲课的。

UFO 发表于 2010-6-26 12:58:14

这就去看看

inter 发表于 2010-6-26 14:22:31

除了状态机的写法的问题外,就这段代码来看,好像没有看到各个状态之间转换的条件啊。<br>
从你的代码画出的状态图肯定和你初衷的状态图应该是不一样的

FFT 发表于 2010-6-26 16:02:17

你是用verilog语言写的状态机吗?verilog语言我不是太懂,不过根据我以往用VHDL语言编程的经验:<br>
我们硬件编程的目的不就是通过给定输入一系列特定值(条件、状态),再用程序实现要求的输出吗?而&ldquo;状态机&rdquo;不就是在不同的取值下实现不同的状态吗,为何不把状态机的输入与系统(模块)的输入相关联,输出与系统(模块)的输出相关联。<br>
不过,设计&ldquo;状态机&rdquo;,一般使用&ldquo;one hot&rdquo;(即一热态位编码,也就是说,只有一位有效);还有,把所有的条件考虑进去,一般用case-when语句实现(可能还会用到if-case-when/case-if-when语句),在case-when中,最后一定得用WHEN OTHERS结束!

ATA 发表于 2010-6-26 17:44:41

to dahuilang<br>
st0:begin<br>
&nbsp; &nbsp; temp&lt;={temp,a};<br>
&nbsp; &nbsp; state&lt;=st1;<br>
&nbsp; &nbsp; end<br>
这里面在转换,同意santa的看法,冗长的代码不是太好

interi 发表于 2010-6-26 19:02:52

最好把敏感信号都列上:always @(negedge clk or negative rst),不然后仿的时候经常不过。

CHANG 发表于 2010-6-26 20:36:45

原帖由 kaixin0007 于 2005-9-14 09:06 AM 发表<br>
最好把敏感信号都列上:always @(negedge clk or negative rst),不然后仿的时候经常不过。 不赞同

HANG 发表于 2010-6-26 22:35:10

看来楼主的状态机风格后(没有非常仔细的看内容),个人感觉楼主的状态机完全可以正确工作,实际上状态机有两种:莫尔型和米力型,状态转移的控制方式不同,本质的区别是一个输出是组合逻辑,一个输出是时序逻辑。<br>
楼主的状态机虽然不是标准的米力型状态机,但实际的综合结果与之没有任何区别。

CTT 发表于 2010-6-27 00:06:29

原帖由 fwang 于 2005-9-14 11:51 PM 发表<br>
看来楼主的状态机风格后(没有非常仔细的看内容),个人感觉楼主的状态机完全可以正确工作,实际上状态机有两种:莫尔型和米力型,状态转移的控制方式不同,本质的区别是一个输出是组合逻辑,一个输出是时序逻辑。 ... fwang很热心啊,呵呵,我发现了,这是夏宇文书中的状态机写法

CHAN 发表于 2010-6-27 02:04:45

新人才学 非常感谢楼主以及其他朋友的指教!!
页: 1 [2] 3
查看完整版本: 状态机有问题吗