查看: 5667|回复: 5

[提问] VHDL 语法出错,请大帮看一下

[复制链接]
发表于 2010-11-29 15:59:52 | 显示全部楼层 |阅读模式
关键词: VHDL , 语法
10积分
Process (RST)
Begin
if RST = '0' then RSTY <= '1';  --2010/11/29
ELSIf RST'event and RST='1' then RSTY<= CFRESET;
end if;
end process;

以上这段代码在综合时提示:unsupported Clock statement.
错语定位在 IF RST='0' then RSTY <='1';

最佳答案

查看完整内容

没有这样的电路,改成下面的就没事了: Process (RST) Begin if RST = '0' then RSTY
发表于 2010-11-29 15:59:53 | 显示全部楼层
没有这样的电路,改成下面的就没事了:
Process (RST)
Begin
if RST = '0' then
      RSTY <= '1';  --2010/11/29
else
       RSTY<= CFRESET;
end if;
end process;
不就是要在rst信号的上升沿让RSTY输出CFRESET吗。你原先的语句根本就没有那样的电路。
 楼主| 发表于 2010-11-29 19:22:19 | 显示全部楼层
谢谢!
我现在也是这么改的,目前没发现有什么异常。对VHDL不熟,现在是在修改前人做的一个项目,痛苦死我了。看习惯Verilog了。
发表于 2010-11-29 22:56:09 | 显示全部楼层
Process (RST)
Begin
if( RST'event and  RST = '0') then RSTY <= '1';  --2010/11/29
ELSIf RST'event and RST='1' then RSTY<= CFRESET;
end if;
end process;
我这是  上升沿有效或者下降沿有效

看能否行
 楼主| 发表于 2010-11-30 10:02:58 | 显示全部楼层
回复4楼bashao

试了,你这种方法按严格的综合是不过的提示:line 372: Signal RSTY cannot be synthesized, bad synchronous description.

可能老的版本ISE是可以的,新的就不行了。我的项目也是以前用的5.X的版本写的,现在我用的9.1i,所以就出来了这个错误和一大堆警告,警告的类型都是提示Process中用到的信号没有包含在敏感信号中。
发表于 2010-12-25 14:20:33 | 显示全部楼层
看硬件电路,有的可以双边沿触发。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表