集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2579|回复: 2

关于用Gray码替换Binary码编写状态机的问题

[复制链接]
FFT 发表于 2010-6-26 00:50:15 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-11-19 06:39 编辑

我想使用Gray码来编写状态机:
    ...
TYPE STATE IS (S0,S1,S2,S3,S4,S5,S6,S7);
ATTRIBUTE ENUM_ENCODING OF
STATE: TYPE IS "000 001 011 010 110 111 101 100";
SIGNAL PresentState : STATE;
    ...
这样声明在编译的时候是错误的呀。(我是看书这么指导写的,但是报错说ENUM_ENCODING不是正确声明的)
我想问一下应该怎么样声明才是正确的。请多多指点
interige 发表于 2010-6-26 01:25:34 | 显示全部楼层
用这个试试:<br>
<br>
type STATE_TYPE is (S0,S1,S2,S3,S4,S5,S6,S7);<br>
<br>
attribute ENUM_ENCODING: STRING;<br>
attribute ENUM_ENCODING of STATE_TYPE: type is "000 001 011 010 110 111 101 100";<br>
<br>
signal PresentState: STATE_TYPE;<br>
用过这个以后,问题是否解决,请楼主给个回复。谢谢!
ngtim 发表于 2010-6-26 03:15:00 | 显示全部楼层
谢谢斑竹!<br>
虽然没有报错信息,但是我不知道是否已经达到了替换的效果。<br>
因为仿真的结果和原来没有用gray码时是一样的。<br>
我把clk调到很小5ns<br>
想观察是不是有毛刺,可是发现两个结果是一样的。我想可能要用quartus进行timing analysis 再看看。<br>
ps:为我这么晚回复表示道歉。 <br>
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-15 18:53 , Processed in 0.076247 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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