《FPGA时序约束一如何查看具体错误的时序路径.docx》由会员分享,可在线阅读,更多相关《FPGA时序约束一如何查看具体错误的时序路径.docx(3页珍藏版)》请在第一文库网上搜索。
1、FPGA时序约束一如何查看具体错误的时序路径1、时序错误的影响一个设计的时序报告中,designrun时序有红色,裕量(SIaCk)为负数时,表示时序约束出现违例,虽然个别违例不代表你的工程就有致命的问题,但是这是一个风险(时序报告是按照工艺、电压以及温度的上下限给出的结果)。当违例数较多,也就意味着设计在实际环境中出现问题的概率也会越大。时间裕量包括建立时间裕量和保持时间裕量(setupSIaCk和ho1ds1ack)0从字面上理解,所谓“裕量”即富余的、多出的。什么意思呢?即保持最低要求的建立时间或保持时间所多出的时间,那么“裕量”越多,意味着时序约束越宽松。TypeSize: Check
2、Timing(1) .Intra-CIockPaths Inter-CIockPaths OtherPathGroupsUser1goreoPathsTdConso1eMessages1ogReportsDesignRmsTimingPowmMettKN1oiooyIDRCPaCkaaePQW6Q-!SIUI_Jntra-CkckPaths-C1k(MJt0veHUdckdUb人HighFanoutFromC1kfboutc1kfbout.1UPath71-0012I01u_srio_4x/u3_sc1kfbout-2c1kftx)ut_3C1koutOc1koutO_1c1koirt0_2v
3、dkoutO_3rmzUU5201u_sno_4x/u3_sPath73005211u_sno_4x/u2_sPath74005501u_sno_4x/u3_sPath75005501u-so.4xu3-sPath760.05601u_sno_4x/u3_st。卜O1d-OoI2ns(Io)Pu1seWidth3232ris(31)vPat80006501u_srio_4x/u3_s上述错误的时序,双击可以看到详细的时鲤路径和数据路径,右键可以看到具体代码中的原理图。个人比较喜欢先查看原理图可以很直观的看到到底是哪一块的代码错了。在调试的过程中发现,基本上时序错误都是代码的错误,比如没有跨时钟
4、操作(跨时钟需要打两拍,跨时钟一些信号前后初始化不一致);数据路径过长(主要是针对位宽较大的数据,路径又长。解决办法是在该路径上添加盍叠番)。出现时序错误,先从代码逻辑上找问题,代码逻辑排查完了,在考虑时序怎么约束。3、c1ockinteraction时序错误还可以通过下图查看,以前特别爱用里面的指令setfa1sepath和setc1ockgroups0自从意识到大部分的时序错误都是逻辑错误导致以后,基本没用到这两句话。有一次盲目的使用Setfa1sepath指令,没有对setfa1sepath的用法有深刻理解,导致代码逻辑不正常后,就更不会轻易用这些优化指令了。扩展:1) set_fa1s
5、e_path设置伪路径后,不再对特殊路径进行时序分析。特殊路径如测试逻辑、添加同步电路后的跨时钟域路径等。在两个时钟域之间应该相互设置为set_fa1se:(注意:只是不对特殊路径进行时序分析,而不是只要出现错误就能用这句话)set_fa1se_path-fromget_c1ocksc1k_a-toget_c1ocksc1k_bset_fa1se_path-fromget_c1ocksc1k_b-toget_c1ocksc1k_a2) set_c1ock_groups:添加完以后事这样的setc1ock_groups-asynchronous-groupc1k_a-groupc1k_bc1k_a和e1kb是异步时钟设置异步时钟DestinatioaC1ocksBSCANgjnNoPathUserIgnoredPathsTimedTimed(unsafe)Partia1Fa1sePPartia1Fa1sePiDestinationC1ockEdges(WNS)WNS(ns)TNS(S)Fai1ingEndpointsTota1Endpoints(TNS)(TNS)PathReq(WNS)C/C1i黄飞