微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 使用synplify综合遇到的两点疑问

使用synplify综合遇到的两点疑问

时间:10-02 整理:3721RD 点击:
请教如下两个问题:
      1. synplify不能综合状态机的“when others”状态:我用的是VHDL,编码风格中要求对case语句的使用要做到取值完全覆盖,即要加一个“when others”的判断(我想Verilog也一样吧,用default?),用case 来判断状态机的状态,然而用synplify综合时出warning:OTHERS clause is not synthesized
          为什么没有综合呢?
     2. synplify不能综合package库文件:  VHDL中可以写一个用户库文件,包含工程中用到的自定义数据类型、函数、元件例化等,这样其他模块只要在开始处加上“use work.*.all;”就可以使用用户库文件里的各种定义,类似于c里的“include”,我用ISE都能够正常综合,然而用synplify综合时却报错:Ignoring use clause - element_pack not found ...
其中element_pack 是我工程中用户库的名字,由于被“Ignoring”了,我在element_pack 中定义的数据类型、函数和例化的元件都无法识别,导致报了一大堆错,我只好将这些定义和例化直接移到相应的设计文件中才通过综合。
        不知道synplify为什么忽略自定义库文件呢?

thanks

回答你第一个问题:是不是你的取值已经完全了,比如case(a),a为一位宽,但是在"1"和"0"的时候都操作了,此时default就不需要了,所以综合不了

我也碰到过这种情况

3# 心海的一滴泪
应该没覆盖完全。我有三个状态,分别给了相应逻辑。如果是onehot码,要三位共八个状态,即使用自然编码,需2位也有4个状态,而我只定义了三个状态,所以没有覆盖完全,需要使用when others 语句,然而竟把这个分支忽略了,搞不懂

关注中 !111

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top