OpenMPL: An Open Source Layout Decomposer
Wei Li1, Yuzhe Ma1, Qi Sun1, Yibo Lin2, Iris Hui-Ru Jiang3, Bei Yu1, David Z. Pan4
1The Chinese University of Hong Kong, 2Peking University, 3National Taiwan University, 4University of Texas at Austin
1 / 21
OpenMPL : An Open Source Layout Decomposer Wei Li 1 , Yuzhe Ma 1 , - - PowerPoint PPT Presentation
OpenMPL : An Open Source Layout Decomposer Wei Li 1 , Yuzhe Ma 1 , Qi Sun 1 , Yibo Lin 2 , Iris Hui-Ru Jiang 3 , Bei Yu 1 , David Z. Pan 4 1 The Chinese University of Hong Kong, 2 Peking University, 3 National Taiwan University, 4 University of
1 / 21
1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000 10,000 100,000 1,000,000 10,000,000 100,000,000 1,000,000,000 Intel Microprocessors
Invention of the Transistor
10 1 0.1 0.01
45nm
<latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT86RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNB5LljCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFp+jEdOUWD5zBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT86RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNB5LljCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFp+jEdOUWD5zBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT86RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNB5LljCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFp+jEdOUWD5zBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT86RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNB5LljCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFp+jEdOUWD5zBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit>nm <latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT86RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNB5LljCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFp+jEdOUWD5zBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT86RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNB5LljCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFp+jEdOUWD5zBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT86RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNB5LljCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFp+jEdOUWD5zBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT86RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNB5LljCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFp+jEdOUWD5zBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit>Year Number of Transistors per Integrated Circuit
Process Technology (µm
<latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg=</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg=</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg=</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg=</latexit>µm <latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg=</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg=</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg=</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg=</latexit>)
4004 8086 286 386 486 Pentium Pentium II Pentium 4 Core 2 Duo Core i7
Doubles every 2.1 yrs 2 / 21
AI / Cu / W wires Planar CMOS LE Patterning Transistors
Interconnect
2 / 21
AI / Cu / W wires Planar CMOS LE 10 nm 7 nm 5 nm 3 nm FinFET LELE W LI Patterning Transistors
Interconnect
2 / 21
AI / Cu / W wires Planar CMOS LE HNW VNW eNVM LELELE SADP SAQP
EUV LELE
10 nm 7 nm 5 nm 3 nm EUV EUV EBL
EUV DSA
Cu Doping 3D IC
Opto Connect Graphene CNT
FinFET LELE W LI Patterning Transistors
Interconnect
2 / 21
AI / Cu / W wires Planar CMOS LE HNW VNW eNVM 10 nm 7 nm 5 nm 3 nm Cu Doping 3D IC
Opto Connect Graphene CNT
FinFET W LI EUV EUV EBL
EUV DSA
LELE LELELE SADP SAQP
EUV LELE
Patterning Transistors
Interconnect
2 / 21
(a) Original layout
3 / 21
(a) Original layout
(b) TPL layout with conflicts
3 / 21
(a) Original layout
(b) Layout graph
3 / 21
(a) Original layout
(b) Layout graph
(c) Coloring on layout graph
3 / 21
(a) Original layout
(b) Layout graph
(c) Coloring on layout graph
(d) Final decomposed layout
3 / 21
f b a c d2 d1 e2 e1
x
4 / 21
4 7 5 10 12 11 12 9 2 1 2 4 6 8 10 12 14 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
5 / 21
6 / 21
6 / 21
6 / 21
7 / 21
Layout Graph Construction
Independent Component Computation
Input Layout Stitch Candidate Generation Decomposition Solver Graph Simplification Simplified Graph Recovery Output Masks
Merge 4-Cliques Hide Small Degree Biconnected Component Decomposition SDP ILP Backtracking Dancing Links
8 / 21
Layout Graph Construction Independent Component Computation Input Layout Stitch Candidate Generation Decomposition Solver Graph Simplification Simplified Graph Recovery Output Masks Merge 4-Cliques Hide Small Degree Biconnected Component Decomposition SDP ILP Backtracking Dancing Links 9 / 21
10 / 21
10 / 21
11 / 21
11 / 21
11 / 21
12 / 21
a e d f c b b c a
b’
d f e 2 1
a b
a d2 b c1 d1 c2
a b c d e P 13 / 21
Selected Options Descriptions
a floating point number indicating number of coloring distance in nanometer
an integer indicating number of masks (colors) < 3|4 >
an integer indicating graph simplification level < 0|1|2|3 >
an integer indicating layer for conflict edges
an integer indicating layer for pre-colored patterns
an integer indicating layer for coloring
algorithm type < ILP|BACKTRACK|LP|SDP >
shape mode < RECTANGLE|POLYGON >
use stitch to avoid conflict
generate stitch candidate
weight of stitch
an integer indicating maximum thread number
toggle controlling screen messages
debug component id
14 / 21
15 / 21
(a) total_c1, TPLD, SDP coloring process. (b) total_c2, TPLD, SDP coloring process.
16 / 21
25 50 75 100 # conflicts Backtracking ILP SDP Dancing Links C 4 3 2 C 4 9 9 C 8 8 C 1 3 5 5 C 1 9 8 C 2 6 7 C 3 5 4 C 5 3 1 5 C 6 2 8 8 C 7 5 5 2 S 1 4 8 8 S 3 8 4 1 7 S 3 5 9 3 2 S 3 8 5 8 4 S 1 5 8 5 50 100 150 200 250 # stitches
17 / 21
C 4 3 2 C 4 9 9 C 8 8 C 1 3 5 5 C 1 9 8 C 2 6 7 C 3 5 4 C 5 3 1 5 C 6 2 8 8 C 7 5 5 2 S 1 4 8 8 S 3 8 4 1 7 S 3 5 9 3 2 S 3 8 5 8 4 S 1 5 8 5 10
3
10
2
10
1
100 101 102 Runtime (s) Backtracking ILP SDP Dancing Links
18 / 21
19 / 21
20 / 21
20 / 21
21 / 21