DC综合check-design(LINT检查)问题总结_第1页
DC综合check-design(LINT检查)问题总结_第2页
DC综合check-design(LINT检查)问题总结_第3页
DC综合check-design(LINT检查)问题总结_第4页
DC综合check-design(LINT检查)问题总结_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DC综合check_design问题总结如下图所示,当我们DC综合之后查看check_design报告,出现的一些warning以及解决方法进行总结如下。LINT-2:drivebypinxxxhasnoloads常用在检查输出端口。当综合之后出现这种类型的warning时,说明你的代码中在实例化某个模块的时候输出端口未连接负载,或者你只把该信号的某几bit连接到了该模块的端口上,这种警告的出现是比较常见的,比如上图所示:这表明在代码中send_check_bus_addr是一个11bit的输入信号,它的第6~10bit没有连接到该模块的端口上,即:这样的警告虽然对DC综合的结果没有太大的影响,但是必须按照代码规范的要求,把未连接负载的部分信号重新以NC(NotConnect)为后缀来命名。LINT-28:xxxisnotconnectedtoanynets常用在检查输入端口。DC综合如果出现这样的warning,就说明你的这个信号的某些bit的悬空的,对于总线的输入数据信号bus_data_i是一个32bit的信号,但是当前模块中只用到了低20bit,而高12bit是没有连接到任何信号上面去的,那么DC就会给出这样的警告。这种警告的消除方法就是:在你的该模块中你用到了某个信号的多少bit,那么你在顶层调用该模块的时候只把你用到的该信号对应的那些bit连进来,这样就不会出现这样的警告。另外需要说明的是,有些时候我们为了代码的简洁性,必须要把某个信号完全连到该模块,那么这个时候造成这种warning我们是可以接受的。还有一种可能就是有些时候你的设计需要发生变化,比如某个信号要去掉却忘记把该信号的端口连接给删掉,这样就会导致这个信号的所有bit都是没有连接到任何信号,这样的情况就是必须进行修改的,否则会对DC的综合造成不必要的影响。LINT-29:inputportxxxisconnecteddirectlytooutputport用在检查输入端口。当DC综合后出现这类警告的时候,说明你的相关模块中出现了把输入信号或者输入信号的某些位直接赋值到了输出端口信号,这类警告的出现是正常的,只需检查你的设计是否确实是这样即可。LINT-31:outputportxxxisconneteddirectlytooutputportxxx用在检查输出端口。这类警告的意思是输出端口某信号的一些比特直接和另外一些比特相连。这类警告的出现可能是正常的,只需检查你的设计是否确实是这样即可。本例的设计代码如下所示:输出信号PushSize的位宽为9比特,而实际取值为有限几个数值:0、128、416、496。恰好所有二进制数值的最低四位为0。所以信号PushSize的这四位比特连接的都是零。LINT-32:xxxisconnetedtologic0or1用在检查输入端口。当DC综合出现这种类型的警告的时候,就说明你的代码中在模块调用的时候,直接把常值0连接到该模块的某个信号中了,这种警告的出现是正常的,因为我们的设计有些时候就是要把某些信号接0或者接1,例如:那么对于信号DC综合的时候就会报出这样的警告。所以真的这样的警告我们只需要检查代码,看出现警告的地方我们的设计是不是这样设计的,这样会防止粗心大意给某个端口错误的赋了一个常值1或者0。LINT-33:isconnectedtomorethanonepin当DC综合后出现上图的warning时,表明在模块实例化的时候,你将一个相同的信号同时连到了调用模块中不同的两个或者几个端口信号中,例如上述警告在代码中的体现就是:即:把Reset信号同时连到了Clear和Reset这两个端口信号上了。这样warning是否正常的,必须检查自己的设计意图。该例子中,设计师把模块的Clear和Reset信号分开使用,所以以上端口连接错误,需要修改。LINT-52:outputportxxxisconnecteddirectlytologic0or1用在检查输出端口。DC综合结果出现上述警告时,说明输出端口的某些信号的某些位直接被赋值常数0(也可以是1,跟具体设计有关),如图所示,表明输出信号PushSize[8:0]的第0bit~3bit被直接赋值0。这种warning的出现也可能是正常的,需检查是否与当前设计相符合。在该例子中,PushSize的取值为有限几个数值:0、128、416、496。恰好所有二进制数值的最低四位为0。LINT-63:netxxxhasasingletri-statedirver这种警告一般出现在设计中调用存储器的模块中,例如延迟线,FIFO等模块,并且warning的位置都是存储器的DOUT端口。此warning是说明DOUT端口用三态电路的驱动方式。这样的warning也是正常的,检查是否与当前设计相符合即可。(这里面警告的对象都为ram的输出DOUT,对于其他信号如果出现此类warning就需要检查是否设计就是这样设置的)signedtounsigned当出现这种signedtounsignedwarning出现的时候一般是代码中出现了一下两种不规范的写法:第一种:例如:wiredata_Aassigndata_A=(判断条件)?1:0;即:定义一个wire类型的信号data_A,然后通过一个判断条件的真假来个data_A进行赋1或者0,那么这样的写法就会造成上面例句的warning,这是因为在verilog中直接写1或者0,那么verilog就会把1或者0默认为整型变量,而整型变量默认的是有符号数,而我们定义的data_A是一个无符号信号,那么正确的写法应该为wiredata_Aassigndata_A=(判断条件)?1’b1:1’b0,这样写才是规范的写法。即把常数赋值给给无符号数时,一定要加上位宽描述,不能写成整形常数。第二种:这种情况warning主要出现在一些用到了有符号数运算的电路中,比如我们要计算两个8bit有符号数的加法、减法、乘法等,而其中一个有符号数要通过别的寄存器进行赋值,比如总线寄存器(即:要进行运算的数通过总线赋值),那么我们可能会这样写:wiresigned[7:0]A;assignA=bus_data_reg[7:0],这样写verilog就会把bus_data_reg[7:0]默认为一个无符号数,可是我们的A要求是一个有符号数,故就会出现上面列举的warn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论