Fixed interpretation of TYPE OVERLAP, added test

This commit is contained in:
Matthias Koefferlein 2023-10-17 20:49:37 +02:00
parent c62480c49b
commit ac4b02c53a
7 changed files with 67 additions and 1 deletions

View File

@ -522,7 +522,7 @@ GeometryBasedLayoutGenerator::subtract_overlap_from_outline (const std::set<std:
pn += 2; pn += 2;
} }
db::BooleanOp op (db::BooleanOp::ANotB); db::BooleanOp op (db::BooleanOp::And);
db::ShapeGenerator sg (s->second, true /*clear shapes*/); db::ShapeGenerator sg (s->second, true /*clear shapes*/);
db::PolygonGenerator out (sg, true, true); db::PolygonGenerator out (sg, true, true);
proc.process (out, op); proc.process (out, op);

View File

@ -1011,3 +1011,10 @@ TEST(209_invalid_split_paths)
run_test (_this, "issue-1472", "map:tech.map+lef:tech.lef.gz+def:test.def.gz", "au.oas", default_options (), false); run_test (_this, "issue-1472", "map:tech.map+lef:tech.lef.gz+def:test.def.gz", "au.oas", default_options (), false);
} }
// issue-1499
TEST(210_overlaps)
{
run_test (_this, "issue-1499", "map:tech.map+lef:tech.lef+lef:blocks.lef+def:top.def", "au.oas", default_options (), false);
}

BIN
testdata/lefdef/issue-1499/au.oas vendored Normal file

Binary file not shown.

31
testdata/lefdef/issue-1499/blocks.lef vendored Normal file
View File

@ -0,0 +1,31 @@
VERSION 5.8 ;
MACRO a
ORIGIN 0 0 ;
SIZE 600 BY 600 ;
OBS
LAYER M1 ;
RECT 10 10 590 590 ;
END
END a
MACRO b
ORIGIN -600 0 ;
SIZE 400 BY 500 ;
OBS
LAYER M1 ;
RECT 610 10 990 490 ;
END
END b
MACRO c
ORIGIN -500 -500 ;
SIZE 500 BY 500 ;
OBS
LAYER M1 ;
POLYGON 510 610 610 610 610 510 990 510 990 990 510 990 ;
LAYER overlap ;
RECT 500 700 1000 1000 ;
POLYGON 500 600 600 600 600 500 1000 500 1000 700 500 700 ;
END
END c

12
testdata/lefdef/issue-1499/tech.lef vendored Normal file
View File

@ -0,0 +1,12 @@
VERSION 5.8 ;
LAYER M1
TYPE ROUTING ;
DIRECTION HORIZONTAL ;
WIDTH 0.1 ;
PITCH 0.1 ;
END M1
LAYER overlap
TYPE OVERLAP ;
END overlap

6
testdata/lefdef/issue-1499/tech.map vendored Normal file
View File

@ -0,0 +1,6 @@
DIEAREA ALL 1 0
#BOUNDARY DIEAREA 1 0
BOUNDARY MACRO 1 0
#M1 LEFOBS 2 0
M1 LEFOBS 3 0
M1 BLOCKAGE 3 0

10
testdata/lefdef/issue-1499/top.def vendored Normal file
View File

@ -0,0 +1,10 @@
VERSION 5.8 ;
DESIGN top ;
UNITS DISTANCE MICRONS 1000 ;
DIEAREA ( 0 0 ) ( 1000000 1000000 ) ;
COMPONENTS 3 ;
- a a + PLACED ( 0 0 ) N ;
- b b + PLACED ( 600000 0 ) N ;
- c c + PLACED ( 500000 500000 ) N ;
END COMPONENTS
END DESIGN