mirror of https://github.com/KLayout/klayout.git
LEF/DEF component maskshift: some implementation tuning and test updates.
This commit is contained in:
parent
af2bfce051
commit
56dead9662
|
|
@ -295,8 +295,10 @@ unsigned int
|
|||
GeometryBasedLayoutGenerator::mask_for (const std::string &ln, unsigned int m, unsigned int mshift, const LEFDEFNumberOfMasks *nm) const
|
||||
{
|
||||
// for FIXEDMASK we don't do any mask shifting
|
||||
if (m_fixedmask || m == 0 || mshift == 0 || !nm) {
|
||||
if (m_fixedmask || mshift == 0) {
|
||||
return m;
|
||||
} else if (m == 0) {
|
||||
return mshift;
|
||||
} else {
|
||||
return (m + mshift - 2) % nm->number_of_masks (ln) + 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -274,17 +274,17 @@ TEST(14)
|
|||
|
||||
TEST(15)
|
||||
{
|
||||
run_test (_this, "def6", "lef:cells.lef+lef:tech.lef+def:in.def.gz", "au.oas.gz", default_options ());
|
||||
run_test (_this, "def6", "lef:cells.lef+lef:tech.lef+def:in.def.gz", "au-new.oas.gz", default_options ());
|
||||
}
|
||||
|
||||
TEST(16)
|
||||
{
|
||||
db::LEFDEFReaderOptions options = default_options ();
|
||||
options.set_placement_blockage_layer ("PLACEMENT_BLK (11/0)");
|
||||
run_test (_this, "def7", "lef:cells.lef+lef:tech.lef+def:in.def.gz", "au.oas.gz", options);
|
||||
run_test (_this, "def7", "lef:cells.lef+lef:tech.lef+def:in.def.gz", "au-new.oas.gz", options);
|
||||
|
||||
options.set_placement_blockage_layer ("PLACEMENT_BLK (60/0)");
|
||||
run_test (_this, "def7", "map:in.map+lef:cells.lef+lef:tech.lef+def:in.def.gz", "au_with_map_file.oas.gz", options);
|
||||
run_test (_this, "def7", "map:in.map+lef:cells.lef+lef:tech.lef+def:in.def.gz", "au_with_map_file-new.oas.gz", options);
|
||||
}
|
||||
|
||||
TEST(17)
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
VERSION 5.8 ;
|
||||
DIVIDERCHAR "/" ;
|
||||
BUSBITCHARS "[]" ;
|
||||
DESIGN mapfile ;
|
||||
UNITS DISTANCE MICRONS 1000 ;
|
||||
|
||||
DIEAREA ( 0 0 ) ( 3000 3000 ) ;
|
||||
|
||||
COMPONENTMASKSHIFT M2 M1 M0PO ;
|
||||
|
||||
COMPONENTS 3 ;
|
||||
|
||||
- comp1 mask_macro
|
||||
+ PLACED ( 0 0 ) N ;
|
||||
- comp1 mask_macro
|
||||
+ MASKSHIFT 2
|
||||
+ PLACED ( 1000 0 ) N ;
|
||||
- comp1 mask_macro
|
||||
+ MASKSHIFT 221
|
||||
+ PLACED ( 2000 0 ) N ;
|
||||
|
||||
- comp1 nomask_macro
|
||||
+ PLACED ( 0 1000 ) N ;
|
||||
- comp1 nomask_macro
|
||||
+ MASKSHIFT 2
|
||||
+ PLACED ( 1000 1000 ) N ;
|
||||
- comp1 nomask_macro
|
||||
+ MASKSHIFT 221
|
||||
+ PLACED ( 2000 1000 ) N ;
|
||||
|
||||
- comp1 fixedmask_macro
|
||||
+ PLACED ( 0 2000 ) N ;
|
||||
- comp1 fixedmask_macro
|
||||
+ MASKSHIFT 2
|
||||
+ PLACED ( 1000 2000 ) N ;
|
||||
- comp1 fixedmask_macro
|
||||
+ MASKSHIFT 221
|
||||
+ PLACED ( 2000 2000 ) N ;
|
||||
|
||||
END COMPONENTS ;
|
||||
|
||||
END DESIGN
|
||||
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
|
||||
MACRO nomask_macro
|
||||
CLASS CORE ;
|
||||
ORIGIN 0.3 0.3 ;
|
||||
SIZE 0.6 BY 0.6 ;
|
||||
PIN Z
|
||||
PORT
|
||||
LAYER M0PO ;
|
||||
RECT -0.07 -0.03 0.07 0.03 ;
|
||||
LAYER M1 ;
|
||||
RECT 0.07 -0.03 0.13 0.03 ;
|
||||
LAYER M2 ;
|
||||
RECT -0.13 -0.03 -0.07 0.03 ;
|
||||
VIA 0.0 0.2 square_nomask ;
|
||||
VIA 0.0 -0.2 square_nomask ;
|
||||
END
|
||||
END Z
|
||||
END nomask_macro
|
||||
|
||||
MACRO mask_macro
|
||||
CLASS CORE ;
|
||||
ORIGIN 0.3 0.3 ;
|
||||
SIZE 0.6 BY 0.6 ;
|
||||
PIN Z
|
||||
PORT
|
||||
LAYER M0PO ;
|
||||
RECT MASK 2 -0.07 -0.03 0.07 0.03 ;
|
||||
LAYER M1 ;
|
||||
RECT MASK 2 0.07 -0.03 0.13 0.03 ;
|
||||
LAYER M2 ;
|
||||
RECT MASK 1 -0.13 -0.03 -0.07 0.03 ;
|
||||
VIA MASK 200 0.0 0.2 square ;
|
||||
VIA 0.0 -0.2 square ;
|
||||
END
|
||||
END Z
|
||||
END mask_macro
|
||||
|
||||
MACRO fixedmask_macro
|
||||
CLASS CORE ;
|
||||
FIXEDMASK ;
|
||||
ORIGIN 0.3 0.3 ;
|
||||
SIZE 0.6 BY 0.6 ;
|
||||
PIN Z
|
||||
PORT
|
||||
LAYER M0PO ;
|
||||
RECT MASK 2 -0.07 -0.03 0.07 0.03 ;
|
||||
LAYER M1 ;
|
||||
RECT MASK 2 0.07 -0.03 0.13 0.03 ;
|
||||
LAYER M2 ;
|
||||
RECT MASK 1 -0.13 -0.03 -0.07 0.03 ;
|
||||
VIA MASK 200 0.0 0.2 square ;
|
||||
VIA 0.0 -0.2 square ;
|
||||
END
|
||||
END Z
|
||||
END fixedmask_macro
|
||||
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
DIEAREA ALL 4 0
|
||||
NAME M0PO 1 1
|
||||
M0PO LEFPIN,PIN 1 2
|
||||
M0PO VIA 1 3
|
||||
M0PO NET:MASK:1 1 100
|
||||
M0PO NET:MASK:2 1 200
|
||||
M0PO SPNET:MASK:1 1 101
|
||||
M0PO SPNET:MASK:2 1 201
|
||||
M0PO VIA:MASK:1 1 102
|
||||
M0PO VIA:MASK:2 1 202
|
||||
M0PO LEFPIN,PIN:MASK:1 1 110
|
||||
M0PO LEFPIN,PIN:MASK:2 1 210
|
||||
NAME VIA0 2 1
|
||||
VIA0 LEFPIN,PIN 2 2
|
||||
VIA0 VIA 2 3
|
||||
VIA0 NET:MASK:1 2 100
|
||||
VIA0 NET:MASK:2 2 200
|
||||
VIA0 SPNET:MASK:1 2 101
|
||||
VIA0 SPNET:MASK:2 2 201
|
||||
VIA0 VIA:MASK:1 2 102
|
||||
VIA0 VIA:MASK:2 2 202
|
||||
VIA0 LEFPIN,PIN:MASK:1 2 110
|
||||
VIA0 LEFPIN,PIN:MASK:2 2 210
|
||||
NAME M1 3 1
|
||||
M1 PIN,LEFPIN 3 2
|
||||
M1 VIA 3 3
|
||||
M1 NET:MASK:1 3 100
|
||||
M1 NET:MASK:2 3 200
|
||||
M1 SPNET:MASK:1 3 101
|
||||
M1 SPNET:MASK:2 3 201
|
||||
M1 VIA:MASK:1 3 102
|
||||
M1 VIA:MASK:2 3 202
|
||||
M1 PIN,LEFPIN:MASK:1 3 110
|
||||
M1 PIN,LEFPIN:MASK:2 3 210
|
||||
NAME VIA1 4 1
|
||||
VIA1 PIN,LEFPIN 4 2
|
||||
VIA1 VIA 4 3
|
||||
VIA1 NET:MASK:1 4 100
|
||||
VIA1 NET:MASK:2 4 200
|
||||
VIA1 SPNET:MASK:1 4 101
|
||||
VIA1 SPNET:MASK:2 4 201
|
||||
VIA1 VIA:MASK:1 4 102
|
||||
VIA1 VIA:MASK:2 4 202
|
||||
VIA1 PIN,LEFPIN:MASK:1 4 110
|
||||
VIA1 PIN,LEFPIN:MASK:2 4 210
|
||||
NAME M2 5 1
|
||||
M2 PIN,LEFPIN 5 2
|
||||
M2 VIA 5 3
|
||||
M2 NET:MASK:1 5 100
|
||||
M2 NET:MASK:2 5 200
|
||||
M2 SPNET:MASK:1 5 101
|
||||
M2 SPNET:MASK:2 5 201
|
||||
M2 VIA:MASK:1 5 102
|
||||
M2 VIA:MASK:2 5 202
|
||||
M2 PIN,LEFPIN:MASK:1 5 110
|
||||
M2 PIN,LEFPIN:MASK:2 5 210
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
LAYER M0PO
|
||||
TYPE MASTERSLICE ;
|
||||
WIDTH 0.02 ;
|
||||
MASK 2 ;
|
||||
END M0PO
|
||||
LAYER VIA0
|
||||
TYPE CUT ;
|
||||
MASK 2 ;
|
||||
END VIA0
|
||||
LAYER M1
|
||||
TYPE MASTERSLICE ;
|
||||
WIDTH 0.024 ;
|
||||
MASK 2 ;
|
||||
END M1
|
||||
LAYER VIA1
|
||||
TYPE CUT ;
|
||||
MASK 2 ;
|
||||
END VIA1
|
||||
LAYER M2
|
||||
TYPE MASTERSLICE ;
|
||||
WIDTH 0.03 ;
|
||||
MASK 2 ;
|
||||
END M2
|
||||
|
||||
VIA square
|
||||
LAYER M0PO ;
|
||||
RECT MASK 2 -0.06 -0.06 0.06 0.06 ;
|
||||
LAYER VIA0 ;
|
||||
RECT -0.06 -0.06 0.06 0.06 ;
|
||||
LAYER M1 ;
|
||||
RECT MASK 1 -0.06 -0.06 0.06 0.06 ;
|
||||
END square
|
||||
|
||||
VIA square_nomask
|
||||
LAYER M0PO ;
|
||||
RECT -0.06 -0.06 0.06 0.06 ;
|
||||
LAYER VIA0 ;
|
||||
RECT -0.06 -0.06 0.06 0.06 ;
|
||||
LAYER M1 ;
|
||||
RECT -0.06 -0.06 0.06 0.06 ;
|
||||
END square_nomask
|
||||
Loading…
Reference in New Issue