为何不能综合?

[复制链接]
2361|10
 楼主| entepino 发表于 2013-7-4 14:39 | 显示全部楼层 |阅读模式
综合错误怎么修改?
在程序中,我先判断了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


 楼主| entepino 发表于 2013-7-4 14:40 | 显示全部楼层
为何不能综合,不能理解。
 楼主| entepino 发表于 2013-7-4 20:11 | 显示全部楼层
再顶一下。
GoldSunMonkey 发表于 2013-7-4 21:31 | 显示全部楼层
分成两个process
GoldSunMonkey 发表于 2013-7-4 21:31 | 显示全部楼层
这样写有问题
 楼主| entepino 发表于 2013-7-5 08:25 | 显示全部楼层
谢谢猴哥,能说一下为何有问题吗?因为在电路实现上应该可以实现啊。
huangxz 发表于 2013-7-6 09:19 | 显示全部楼层
因为电路上不可实现,所以才无法综合
GoldSunMonkey 发表于 2013-7-6 21:41 | 显示全部楼层
entepino 发表于 2013-7-5 08:25
谢谢猴哥,能说一下为何有问题吗?因为在电路实现上应该可以实现啊。


因为电路上不可实现,所以才无法综合

评分

参与人数 1威望 +5 收起 理由
星星之火红 + 5

查看全部评分

GoldSunMonkey 发表于 2013-7-6 21:41 | 显示全部楼层
huangxz 发表于 2013-7-6 09:19
因为电路上不可实现,所以才无法综合

说的太好了

评分

参与人数 1威望 +5 收起 理由
星星之火红 + 5

查看全部评分

星星之火红 发表于 2013-7-7 21:34 | 显示全部楼层
不错不错啊
andous 发表于 2013-7-10 17:40 | 显示全部楼层
         if LocaTrigStop = '1' then
                        if (SynPulseINCLK2'EVENT AND SynPulseINCLK2 = '0') then
写反了                     
您需要登录后才可以回帖 登录 | 注册

本版积分规则

214

主题

653

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部