CHA 发表于 2010-6-26 00:27:05

状态机的比较经典的VHDL的源代码?

本帖最后由 fpgaw 于 2010-11-18 16:20 编辑

有没有关于状态机编码方面的文章或者是关于状态机的比较经典的VHDL的源代码?

HANG 发表于 2010-6-26 02:25:46

在论坛里搜索一下,应该有一些。:)

longtime 发表于 2010-6-26 03:43:48

verilog才要编码,VHDL是由软件自动优化的,当然你也可以在软件上指定。<br>
状态机经典的代码风格就是三段式

UFO 发表于 2010-6-26 04:55:35

你真要看状态机编码的文章的话可以去看看sunburst-design.com的文章,国内期刊上的少看一些,基本上都有问题。

HDL 发表于 2010-6-26 06:10:59

多谢楼上的各位.<br>
我去了wangdian所说的网站上看了一下,大多都是基于Verilog的一些文章,一些介绍状态机的文章也是基于Verilog的.而我现在用的是VHDL.

AAT 发表于 2010-6-26 07:38:14

想再问各位一个问题,当我对我的程序进行仿真时,如果设置时钟为30ns的话,仿真是正确的;但当我将时钟改为15ns时,却发现状态在转换过程中,出现错误.不知这是由于什么引起的,应该如何修改来避免呢?还请各位给予解答,谢谢!

CHA 发表于 2010-6-26 09:31:08

wangdian所说&ldquo;verilog才要编码,VHDL是由软件自动优化的,当然你也可以在软件上指定。&rdquo;<br>
我觉得不是吧。在状态机编码上,两种语言是一样的。都可以优化,也都要自己编码。

CCIE 发表于 2010-6-26 09:43:45

我只知道在VHDL中,如果你不是自己编码,而用可枚举类型的话,就会被默认为顺序编码的形式,如果你想改进你的状态机,或者是用其它的编码形式,你就必须要自己编码了.<br>
还想请各位大侠回答我上面的问题啊,即是时钟的大小对状态机的影响是致命的吗?该如何解决呢?请各位大侠指教啊,谢谢了!

interige 发表于 2010-6-26 10:06:58

在verilog中,对状态机的编码是这样子的,比如一个5位的one-hot状态机<br>
parameter IDLE = 5'b00001,<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; WRITE_DATA = 2'b00010,<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ...<br>
VHDL中不用这样做的<br>
PS:对one-hot的编码最好还是要做成index的方式,即<br>
parameter IDLE = 0,<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; WRITE_DATA = 1,<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ...

usb 发表于 2010-6-26 11:04:05

下面引用由我无忧在 2005/03/20 05:00pm 发表的内容:<br>
想再问各位一个问题,当我对我的程序进行仿真时,如果设置时钟为30ns的话,仿真是正确的;但当我将时钟改为15ns时,却发现状态在转换过程中,出现错误.不知这是由于什么引起的,应该如何修改来避免呢?还请各位给予 ...应该是时间延迟造成的,你选的片子或者默认的片子对时钟是有要求的,你可以看看时钟的分析结果。
页: [1] 2
查看完整版本: 状态机的比较经典的VHDL的源代码?