还剩3页未读,继续阅读
文本内容:
综合问题总结DC check_design如下图所示,当我们综合之后查看报告,出现的一些以及解决DC check_design warning方法进行总结如下check_design summary:Version:0-
2018.06-SP1Mon Jul1Date:14:00:152019****************************************Nam TotaleInputs/Outputs5323Unconnected portsLINT-28269Feedthrough LINT-29Shorted5043outputs LINT-31Constant4outputs LINT-527Cells12Cells do not driveLINT-18Connected topower orground LINT-323Nets connected to multiplepins onsame cellLINT-331Nets18Unlo18adednetsLINT-
21.LINT-2:drive by pin xxxhas noloads;Warning:In designRxCFEC_Inner netRxCFEC_DspFramer_inst/Pul.l_Ready_NC1driven by pin RxCFECDspFramer_inst/cip_data_reformat/Pull_Ready1has noloads.LINT-2429Warning:In designhhsoc,net send__check_bus__addr
[6]1driven bypin wb_con_ip_top/send_check_bus_addr
[6]has noloadsLINT-2430Wa rning:In designhhsoc,net send__check_bus_addr
[7]d rivenbypin wb_con_ip_top/send_check_bus_addr
[7]has noloadsLINT-2431Warning:;In designhhsoc,net send__check_bus_addr
[8]driven bypin wb_con_ip_top/send_check_bus_addr
[8]has noloadsLINT-2432Warning:In designhhsoc,net send__check_bus_addr
[9]1d rivenbypinwb_con_ip_top/send_check_bus_addr
[9]has noloadsLINT-2433Warning:In designhhsoc,net send_check_bus_addr
[10]driven bypinwb_con_ip_top/send_check_bus_addr
[10]has noloads.常用在检查输出端口当综合之后出现这种类型的时,说明你的代码中在实例化warning某个模块的时候输出端口未连接负载,或者你只把该信号的某几连接到了该模块的端口上,bit这种警告的出现是比较常见的,比如上图所示这表明在代码中是一个send_check_bus_addr libit的输入信号,它的第没有连接到该模块的端口上,即:6〜lObit3send_check send_check_ip//input.bus_data_isend_check_bus_data_wr.bus_addr_isend_check_bus_addr[5:0]z这样的警告虽然对DC综合的结果没有太大的影响,但是必须按照代码规范的要求,把未连接负载的部分信号重新以NC NotConnect为后缀来命名
2.LINT-28:xxx is not connected to anynetsWarning:In designRxCFEC_InfoExtra_InpNIen512_InpNbits5_SELBITS9_0utNlen496_0utNbits51,port Resetisnotconnectedto anynets.LINT-28Warning:In designRxCFEC_InfoExtra_InpNlen512_InpNbits5_SELBITS9_0utNlen496_0utNbits51,port1InpData
[263]
[4],is notconnected to anynets.LINT-28常用在检查输入端口综合如果出现这样的就说明你的这个信号的某些bit的悬空的,对于总DC warning,线的输入数据信号是一个的信号,但是当前模块中只用到了低而高是没有连接到任bus_data_i32bit20bit,12bit何信号上面去的,那么就会给出这样的警告DC这种警告的消除方法就是在你的该模块中你用到了某个信号的多少那么你在顶层调用该模块的时候只把你用到的该信号对应的那bit,些bit连进来,这样就不会出现这样的警告另外需要说明的是,有些时候我们为了代码的简洁性,必须要把某个信号完全连到该模块,那么这个时候造成这种warning我们是可以接受的还有一种可能就是有些时候你的设计需要发生变化,比如某个信号要去掉却忘记把该信号的端口连接给删掉,这样就会导致这个信号的所有都是没有连接到任何信号,这样的情况就是必须进行修改的,否则会对的bit DC综合造成不必要的影响
3.LINT-29:input portxxx is connected directly to output portWarning:In designed permutel,input portpOl in
[319]is connecteddi rectlytooutput portpOl out
[297],.LINT-29Warning:In designed permutel,input port•p01-in
[318]is connecteddi rectlytooutput portp01-out
[305],.LINT-29Warning:In designed permutel,input portp01-in
[317]is connecteddi rectlytooutput portp01-out
[284],.LINT-29Warning:In designed_permute_l,input portp01-in
[316]is connecteddi rectlytooutput port•p012out
[285],.LINT-29Warning:In designed_permute_l,input portp01Zin
[315]is connecteddi rectlytooutput portp01Zout
[258],.LINT-29Warning:In designed_permute_l,,input portp0On
[314]is connecteddi rectlytooutput portp01Zout
[289],.LINT-29Warning:In designed permute1,input portp01-in
[313],is connected directly tooutput port•p01-out
[279],.LINT-29用在检查输入端口当综合后出现这类警告的时候,说明你的相关模块中出现了把输入信号或者输入信DC号的某些位直接赋值到了输出端口信号,这类警告的出现是正常的,只需检查你的设计是否确实是这样即可
4.LINT-31:output portxxx isconneted directly to output port xxxWarning:In designRxCFECInfoExtra,output portPushSize
[3],is connecteddirectly tooutput portPushSize[O].LINT-31Warning:In designRxCFEC_InfoExtra,output portPushSize
[3],is connecteddirectly tooutput portPushSize[l].LINT-31Warning:In designRxCFEC_InfoExtra,output portPushSize
[3],is connecteddirectly tooutput portPushSize
[2].LINT-31用在检查输出端口这类警告的意思是输出端口某信号的一些比特直接和另外一些比特相连这类警告的出现可能是正常的,只需检查你的设计是否确实是这样即可本例的设计代码如下所示assign PushSize=0utValidrow_cnt==6dOsub_dsp_cnt==6dO9dO:OutValidrow_cnt==6dl sub_dsp_cnt==6d09dl28:OutValidrowcnt==6d0sub~dspcnt!=6d09d416:OutValid一一9*d496:9,dO;输出信号的位宽为比特,而实际取值为有限几个数值、、、PushSize90128416496恰好所有二进制数值的最低四位为所以信号的这四位比特连接的都是零0o PushSize
5.LINT-32:xxx isconneted to logic0or1Warning:In design1TxCFEC_SccFramer1,a pin on submodulereformat_476_to_vb_top_inst is connected to logic1or logic
0.LINT-32Pin Pull_Flush is connected tologic
0.Pin PushFirst is connectedtologic
0.Pin Pull_Partial isconnectedtologic
0.Pin PushFirst isconnectedtologic
0.Pin Pull_Partial1isconnectedtologic
0.用在检查输入端口当综合出现这种类型的警告的时候,就说明你的代码中在模块调用的时候,直接把DC常值连接到该模块的某个信号中了,这种警告的出现是正常的,因为我们的设计有些时候就是要把某些信号接0或者接1,例如Threshold7d63,//I[NCOMPARE*A WIDTH+1-1:0]Push_Data Push_Data_I,//I[F_WIDTH-1:O]sizePush_Size PushSize I,//I[SELBITS-l:0]//donotuse pushPush_Avail InpValidT,//IPush_Accept一,//0Push_Fi rstIbO,//I GEARBOX=0Push_Xfer,//0Pull_Ddta Pull_Data_I,//0[F_WIDTH-1:O]Pull_Flush(「bO一一,//IPullReady PuU_Ready_I,//0Pull_Request PullRequest I,//IPullFirst一-,//0PullRealign,//0Pull[Xfer PullXfer I,//0Fill-Flags一,//0[NCOMPARE-1:0]Fill二Level,//0[A_WIDTH:0]Dft Pm Sts DftPmStsRfmtl.I//~0[DPSTS SIZE-1:O]那么对于信号综合的时候就会报出这样的警告所以真的这样的警告我们只需要检查代码,看出现警告DC的地方我们的设计是不是这样设计的,这样会防止粗心大意给某个端口错误的赋了一个常值1或者0o
6.LINT-33:isconnectedto morethan onepinWarning:In designTxCFEJOuter,the samenetis connectedto morethan onepinonsubmodule1TxCFEC_SccFramer_inst
1.LINT-33Net Resetisconnected topins Reset,Clear.当综合后出现上图的时一,表明在模块实例化的时候,你将一个相同的信号同时连到了调用模DC warning块中不同的两个或者几个端口信号中,例如上述警告在代码中的体现就是TxCFEC SccFramerinst.Clock Clock,//IReset Reset,//I.Clear Reset,//I即把信号同时连到了和这两个端口信号上了这样warning是否正常的,必须检查自Reset Clear Reset己的设计意图该例子中,设计师把模块的和信号分开使用,所以以上端口连接错误,需要修改ClearReset
7.LINT-52:output portxxx isconnecteddirectly tologic0or1Warning:In designRxCFEC InfoExtra,output portPushSize
[3]isconnecteddirectlyto logicO.LINT-52Warning:In designRxCFECZlnfoExtra,outputportPushSize
[2]a isconnected directlytologicO.LINT-52Warning:In designRxCFEC-InfoExtra,outputportPushSize[l]isconnecteddirectlytologicO.LINT-52Wa rning:In designRxCFEC-InfoExtra,,outputportPushSizetO]isconnecteddirectlytologicO.LINT-52用在检查输出端口综合结果出现上述警告时,说明输出端口的某些信号的某些位直接被赋值常数(也DC0可以是跟具体设计有关),如图所示,表明输出信号的第被直接赋值这种warning1,PushSize[8:0]Obit〜3bit Oo的出现也可能是正常的,需检查是否与当前设计相符合在该例子中,的取值为有限儿个数值、、PushSize
0128、恰好所有二进制数值的最低四位为
41649608.LINT-63:net xxxhas asingle tri-state dirverWarning:Net datapath_ip/U5/delayline_two_value_2/sd raml/memory_dout
[0]has asingle tri-state driver.LINT-63Warning:Net datapath_ip/U5/delayline_two_value_2/sd raml/memory_dout
[1]has asingle tri-state driver.LINT-63Warning:Net datapath_ip/U5/delayline_two_value_2/sd raml/memory_dout
[2]has asingle tri-state driver.LINT-63Warning:Net datapath_ip/U5/delayline_two_value_2/sdraml/memory_dout
[3]has asingle tri-state driver.LINT-63Warning:Net datapath_ip/U5/delayline_two_value_2/sd raml/memory_dout
[4]has asingle tri-state driver.LINT-63Warning:Net datapath_ip/U5/delayline_two_value_2/sd raml/memory_dout
[5]has asingle tri-state driver.LINT-63Warning:Net datapath_ip/U5/delayline_two_value_2/sdraml/memory_dout
[6]has asingle tri-state driver.LINT-63Warninq:Net datapathip/U5/delayline twovalue2/sdraml/memory dout
[7]has asinqle tri-state driver.LINT-63这种警告一般出现在设计中调用存储器的模块中,例如延迟线,FIFO等模块,并且warning的位置都是存储器的DOUT端口此是说明端口用三态电路的驱动方式这样的warning也是正常的,检查是warning DOUT否与当前设计相符合即可(这里面警告的对象都为的输出对于其他信号如果出现此类就ram DOUT,warning需要检查是否设计就是这样设置的)
9.signed tounsignedWarning:/home/lx/zdx_all_soc/all_code/data_path.v:110:signed tounsigned conversionoccurs.VER-318Warning:/home/lx/zdx_aH_soc/afl_code/data_path.v:116:signed tounsigned assignmentoccurs.VER-318当出现这种出现的时候一般是代码中出现了一下两种不规范signed tounsigned warning的写法第一种例如wire data_A assigndata_A=(判断条件)10;即:定义一个wire类型的信号data_A,然后通过一个判断条件的真假来个进行赋或者那么这样的写法就会造成上面例句的这是因为data_A10,warning,在中直接写或者那么verilog就会把1或者0默认为整型变量,而整型变量默认的是有符号数,而verilog10,我们定义的是一个无符号信号,那么正确的写法应该为(判断条件)?l^bl data_A wiredata_A assigndata_A=「bo,这样写才是规范的写法即把常数赋值给给无符号数时,一定要加上位宽描述,不能写成整形常数第二种这种情况主要出现在一些用到了有符号数运算的电路中,比如我们要计算两个有符号warning8bit数的加法、减法、乘法等,而其中一个有符号数要通过别的寄存器进行赋值,比如总线寄存器(即要进行运算的数通过总线赋值),那么我们可能会这样写这样写verilogwire signed[7:0]A;assign A=bus_data_reg[7:0],就会把bus_data_reg[7:0]默认为一个无符号数,可是我们的要求是一个有符号数,故就会出现上面列举的A正确的写法应该是()总的来说就是,我们要给warning,wire signed[7:0]A;assign A=$signed bus_data_reg[7:0];,一个有符号数的信号赋值,那么我们就应该保证等号两边都是有符号数,verilog中可以用$或8110(1将一个数定义成有符号数。