Merge branch 'master' into complex_drc_ops

This commit is contained in:
Matthias Koefferlein
2020-12-20 23:50:54 +01:00
92 changed files with 4391 additions and 1538 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
+28
View File
@@ -0,0 +1,28 @@
LAYER M1
TYPE ROUTING ;
END M1
LAYER VIA1
TYPE CUT ;
END VIA1
MACRO dense
CLASS CORE ;
ORIGIN 0.0 0.0 ;
FOREIGN dense ;
SIZE 0.7 BY 0.9 ;
OBS
LAYER M1 DESIGNRULEWIDTH 0.05 ;
RECT 0.04 0.095 0.66 0.685 ;
LAYER VIA1 ;
RECT 0.285 0.31 0.415 0.36 ;
RECT 0.285 0.18 0.415 0.23 ;
END
DENSITY
LAYER M1 ;
RECT 0.04 0.09 0.66 0.685 100.0 ;
LAYER VIA1 ;
RECT 0 0 100 100 45.5 ; #rect from (0,0) to (100,100), density of 45.5%
RECT 100 0 200 100 42.2 ; #rect from (100,0) to (200, 100), density of 42.2%
END
END dense
END LIBRARY
+30
View File
@@ -0,0 +1,30 @@
# some variations of map file entries
DIEAREA ALL 1 0
COMP ALL 2 0
M1 PIN 3,4 0
M1 LEFPIN,LEFOBS,PIN,NET,SPNET,VIA 1 5
DOES NOT MEAN ANYTHING
M1 NET,SPNET,PIN,VIA:MASK:1 6 0
M1 NET:MASK:1 7 0
M1 TEXT 8 0
M1 FILLOPC 9 0
M1 FILLOPC:MASK:1 10 0
M1 FILLOPC:MASK:2 11 0
M1 BLOCKAGEFILL 12 0
M1 BLOCKAGE 13 0
M1 FILL 14 0
M1 VIAFILL,FILL 15 0
M1 NET,SPNET,CUSTOM 16 0
M1 VIAFILL:FLOATING,FILL:FLOATING 17 0
M1 NET:VOLTAGE:0.8 18 0
M1 VIAFILL 19 0
M1 VIA:SIZE:0.05x0.05 20 0
M1 VIA:SIZE:3x3 21 0
M1 ALL 22 2
NAME DIEAREA 23 0
NAME ALL 24 0
NAME COMP 25 0
NAME M1/PIN 26 0
NAME M1/NET 27 0
NAME M1/SPNET 28 1
NAME M1_TEXT 29 0
Binary file not shown.
+28
View File
@@ -0,0 +1,28 @@
VERSION 5.8 ;
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
DESIGN chip_top ;
UNITS DISTANCE MICRONS 1000 ;
DIEAREA ( 30000 3000 ) ( 10000000 4000 ) ;
VIAS 1 ;
- VIA1_dummy
+ RECT M1 ( -200 -140 ) ( 200 140 )
+ RECT VIA1 ( -100 -100 ) ( 100 100 )
+ RECT M2 ( -300 -120 ) ( 300 120 ) ;
END VIAS
SPECIALNETS 1 ;
- dummy
+ ROUTED M1 150 + SHAPE IOWIRE ( 40000 3600 ) VIA1_dummy DO 16000 BY 1 STEP 700 0
;
END SPECIALNETS
SCANCHAINS 77 ;
- chain1_clock1
+ PARTITION clock1
+ START block1/bsr_reg_0 Q
+ FLOATING
block1/pgm_cgm_en_reg_reg ( IN SD ) ( OUT QZ )
block1/start_reset_dd_reg ( IN SD ) ( OUT QZ )
+ STOP block1/start_reset_d_reg SD ;
END SCANCHAINS
END DESIGN
+54 -1
View File
@@ -30,7 +30,11 @@ class DBLayout_TestClass < TestBase
lmap = RBA::LayerMap::new
lmap.map( "1/0", 0 )
assert_equal(lmap.is_mapped(RBA::LayerInfo::new(1, 0)), true)
assert_equal(lmap.is_mapped(RBA::LayerInfo::new(1, 1)), false)
assert_equal(lmap.is_mapped(RBA::LayerInfo::new(2, 2)), false)
lmap.map( "2/2", 0 )
assert_equal(lmap.is_mapped(RBA::LayerInfo::new(2, 2)), true)
lmap.map( "10/2", 0 )
assert_equal( lmap.mapping_str(0), "1/0;2/2;10/2" )
@@ -39,7 +43,7 @@ class DBLayout_TestClass < TestBase
lmap.map( "4/2", 1 )
lmap.map( "1/2", 1 )
lmap.map( "0/0", 1 )
assert_equal( lmap.mapping_str(1), "0/0;1/2;2-4/2" ) # could be "0/0;1-4/2" as well ...
assert_equal( lmap.mapping_str(1), "0/0;1-4/2" ) # could be "0/0;1-4/2" as well ...
lmap.map( RBA::LayerInfo::new(2, 2), RBA::LayerInfo::new(4, 4), 2 )
lmap.map( RBA::LayerInfo::new(0, 1), 2 )
@@ -85,6 +89,55 @@ class DBLayout_TestClass < TestBase
assert_equal( lmap.mapping_str(0), "2/2 : 4/4" )
assert_equal( lmap.mapping(0).to_s, "4/4" )
assert_equal( lmap.mapping(2).to_s, "5/5" )
lmap = RBA::LayerMap::new
lmap.map("*/*", 0)
lmap.unmap(RBA::LayerInfo::new(5, 10))
assert_equal(lmap.mapping_str(0), "0-4/*;5/0-9,11-*;6-*/*")
lmap.clear
lmap.map("*/*", 0)
lmap.unmap(RBA::LayerInfo::new(5, 10), RBA::LayerInfo::new(16, 21))
assert_equal(lmap.mapping_str(0), "0-4/*;5-16/0-9,22-*;17-*/*")
lmap.clear
lmap.map("*/*", 0)
lmap.unmap("5-16/10-21")
assert_equal(lmap.mapping_str(0), "0-4/*;5-16/0-9,22-*;17-*/*")
lmap.clear
lmap.map("*/*", 0)
lmap.mmap(RBA::LayerInfo::new(5, 10), 1)
assert_equal(lmap.mapping_str(0), "+*/*")
assert_equal(lmap.mapping_str(1), "+5/10")
lmap.clear
lmap.map("*/*", 0)
lmap.mmap(RBA::LayerInfo::new(5, 10), 1, RBA::LayerInfo::new(100, 0))
assert_equal(lmap.mapping_str(0), "+*/*")
assert_equal(lmap.mapping_str(1), "+5/10 : 100/0")
lmap.clear
lmap.map("*/*", 0)
lmap.mmap(RBA::LayerInfo::new(5, 10), RBA::LayerInfo::new(16, 21), 1)
assert_equal(lmap.mapping_str(0), "+*/*")
assert_equal(lmap.mapping_str(1), "+5-16/10-21")
lmap.clear
lmap.map("*/*", 0)
lmap.mmap(RBA::LayerInfo::new(5, 10), RBA::LayerInfo::new(16, 21), 1, RBA::LayerInfo::new(100, 0))
assert_equal(lmap.mapping_str(0), "+*/*")
assert_equal(lmap.mapping_str(1), "+5-16/10-21 : 100/0")
lmap.clear
lmap.map("*/*", 0)
lmap.mmap("5-16/10-21", 1)
assert_equal(lmap.mapping_str(0), "+*/*")
assert_equal(lmap.mapping_str(1), "+5-16/10-21")
assert_equal(lmap.logicals(RBA::LayerInfo::new(5, 10)), [ 0, 1 ])
assert_equal(lmap.logicals(RBA::LayerInfo::new(0, 10)), [ 0 ])
end