VHDL 语法出错,请大帮看一下

2010年11月29日 15:59    发布者:Armoric
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';

网友评论

zpf03 2010年11月29日
没有这样的电路,改成下面的就没事了:
Process (RST)
Begin
if RST = '0' then
      RSTY <= '1';  --2010/11/29
else
       RSTY<= CFRESET;
end if;
end process;
不就是要在rst信号的上升沿让RSTY输出CFRESET吗。你原先的语句根本就没有那样的电路。
Armoric 2010年11月29日
谢谢!
我现在也是这么改的,目前没发现有什么异常。对VHDL不熟,现在是在修改前人做的一个项目,痛苦死我了。看习惯Verilog了。
bashao 2010年11月29日
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;
我这是  上升沿有效或者下降沿有效

看能否行
Armoric 2010年11月30日
回复4楼bashao:

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

可能老的版本ISE是可以的,新的就不行了。我的项目也是以前用的5.X的版本写的,现在我用的9.1i,所以就出来了这个错误和一大堆警告,警告的类型都是提示Process中用到的信号没有包含在敏感信号中。
baiyefengqi 2010年12月25日
看硬件电路,有的可以双边沿触发。