为何不能综合?

2020-02-28 18:33发布

综合错误怎么修改?
在程序中,我先判断了200上升沿后并计数,让一些GPIO输出高低电平,需要在第二百个脉冲的下降沿去处理一些信号,即再这些GPIO输出高低电平,必须在第第201个脉冲上升沿到来之前处理。于是我程序就这样写的:

   if (SynPulseINCLK2'EVENT AND SynPulseINCLK2 = '1') then        
                locaCntPulse <= locaCntPulse + "0000000000000001";
       处理 GPIO 电平;
       If  LocaCntPulse =200        then
        LocaTrigStop = '1';
      End if;
   end if;
   
  然后判断第200个脉冲的下降沿,程序:
           if LocaTrigStop = '1' then
                        if (SynPulseINCLK2'EVENT AND SynPulseINCLK2 = '0') then
                           
                                                                处理GPIO电平;
            end if;
     end if;         
                                        -------------
以上都是在同一个process中。



可是综合以后,出现下面的提示错误:应该怎么修改?
Line 758: statement is not synthesizable since it does not hold its value under NOT(clock-edge) condition
Netlist cnt0117(arch_cnt0117) remains a blackbox, due to errors in its contents


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
GoldSunMonkey
1楼-- · 2020-02-29 04:53
entepino 发表于 2013-7-5 08:25
谢谢猴哥,能说一下为何有问题吗?因为在电路实现上应该可以实现啊。


因为电路上不可实现,所以才无法综合
GoldSunMonkey
2楼-- · 2020-02-29 05:46
 精彩回答 2  元偷偷看……
星星之火红
3楼-- · 2020-02-29 07:26
不错不错啊
andous
4楼-- · 2020-02-29 12:25
         if LocaTrigStop = '1' then
                        if (SynPulseINCLK2'EVENT AND SynPulseINCLK2 = '0') then
写反了                     

一周热门 更多>