From 014dbe1bccee167204a37d23cb39ab78abf8bc25 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sun, 18 Aug 2019 13:20:50 +0200 Subject: [PATCH] Bug in segment layer reduction causing METAL2 to go in METAL1 (RISC-V). * Bug: In Anabatic::AutoSegment::reduceDoglegLayer(), we did not check that not only source and target depth span was zero, but also both on the same one. This was seen in the RISC-V where a METAL2 small segment was demoted into METAL1 causing a gap in the routing (and a short in the underlying standart cell). --- anabatic/src/AutoSegment.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anabatic/src/AutoSegment.cpp b/anabatic/src/AutoSegment.cpp index 9d9b9962..6eee13c0 100644 --- a/anabatic/src/AutoSegment.cpp +++ b/anabatic/src/AutoSegment.cpp @@ -2030,7 +2030,7 @@ namespace Anabatic { if ( (minSourceDepth == maxSourceDepth) and (minTargetDepth == maxTargetDepth) - and (minTargetDepth == minTargetDepth) ) { + and (minSourceDepth == minTargetDepth) ) { const Layer* layer = Session::getRoutingLayer(minSourceDepth); DbU::Unit side = Session::getWireWidth (minSourceDepth);