AR# 67988

Vivado 2016.2 - crash during Phase 3.7 Small Shape Detail Placement

Description

When using Vivado 2016.2, a crash can occur during the detail placement phase of place_design:

Phase 3.5 Timing Path Optimizer
Phase 3.5 Timing Path Optimizer | Checksum: 1ba804ca8
Time (s): cpu = 02:02:24 ; elapsed = 00:52:13 . Memory (MB): peak = 12284.242 ; gain = 2399.031 ; free physical = 23725 ; free virtual = 128007
Phase 3.6 Fast Optimization
Phase 3.6 Fast Optimization | Checksum: 1ba804ca8
Time (s): cpu = 02:02:25 ; elapsed = 00:52:14 . Memory (MB): peak = 12284.242 ; gain = 2399.031 ; free physical = 23725 ; free virtual = 128007
Phase 3.7 Small Shape Detail Placement
 

The following information is also found in the crash log (hs_err_pid<PID#>.log):

 
/proj/gsd/vivado/Vivado/2016.2/tps/lnx64/jre/lib/amd64/server/libjvm.so [0x2aaad528db39]
/proj/gsd/vivado/Vivado/2016.2/tps/lnx64/jre/lib/amd64/server/libjvm.so(JVM_handle_linux_signal+0xb6) [0x2aaad5293f26]
/proj/gsd/vivado/Vivado/2016.2/tps/lnx64/jre/lib/amd64/server/libjvm.so [0x2aaad528a753]
/lib64/libc.so.6 [0x3dd0c302d0]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_place.so(HAPLFClusterSwap<HAPLSliceClusterV7>::doSwap()+0x1d2b) [0x2aaac34d48bb]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_place.so(HAPLFSmallShapeDetailPlacer::doSwapWithSuperLongs()+0xc0) [0x2aaac3f1ec40]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_place.so(HAPLFSmallShapeDetailPlacer::swap(HAPLClusterBase::ClusterType, bool, bool, bool, double)+0x240) [0x2aaac3f1f910]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_place.so(HAPLFSmallShapeDetailPlacer::runImpl(HAPLClusterBase::ClusterType, bool, bool)+0x35d) [0x2aaac3f20b1d]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_place.so(HAPLFSmallShapeDetailPlacer::run(bool, bool)+0x3ca) [0x2aaac3f2128a]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_implflow.so(HAPLFFastPlace3::doDPsmallShapes(bool, bool)+0x171) [0x2aaad3e1a271]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_implflow.so(HAPLFFastPlace3::placeDetail()+0x2e4) [0x2aaad3e1b614]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_implflow.so(HAPLFFastPlace3::doDetailPlacementBody(bool)+0x4f8) [0x2aaad3e1c058]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_implflow.so(HAPLFFastPlace3::doDetailPlacement(bool)+0xac) [0x2aaad3e1c3ec]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_implflow.so(HAPLFFastPlace3::doPlacement(bool, bool, unsigned int)+0x2f2) [0x2aaad3e217c2]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_implflow.so(HAPLFFastPlace3::place(HAPLPlaceApi&, HFLFloorplan&, HAPLFFastFlowParam const&, HDPLTask&, HAPLFMigPblockInfo const*)+0x7c6) [0x2aaad3e223a6]
/proj/gsd/vivado/Vivado/2016.2/lib/lnx64.o/librdi_implflow.so(HAPLFFastFlow3::place(HAPLFFastFlowParam const&, HAPLFMigPblockInfo const*)+0x731) [0x2aaad3df86f1]

How can I avoid this?

Solution

This issue has been fixed for the Vivado 2016.4 release.

To work around this crash in a previous release, the "SSI_SpreadLogic_high place_design" directive can be used.

AR# 67988
Date 03/08/2017
Status Active
Type General Article
Tools