35
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 Texas at Austin 1 / 21

OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

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

Page 2: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

1940 1950 1960 1970 1980 1990 2000 2010 2020

10,000,000,000

110

1001,000

10,000100,000

1,000,00010,000,000

100,000,0001,000,000,000

Intel Microprocessors

Invention of the Transistor

10 1 0.1 0.0145nm<latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AAAB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT886RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNBB5LljCCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWWEEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFFp+jEdOUWD5zBBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AAAB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT886RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNBB5LljCCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWWEEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFFp+jEdOUWD5zBBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AAAB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT886RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNBB5LljCCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWWEEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFFp+jEdOUWD5zBBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AAAB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT886RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNBB5LljCCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWWEEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFFp+jEdOUWD5zBBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit>

nm<latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AAAB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT886RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNBB5LljCCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWWEEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFFp+jEdOUWD5zBBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AAAB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT886RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNBB5LljCCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWWEEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFFp+jEdOUWD5zBBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AAAB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT886RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNBB5LljCCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWWEEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFFp+jEdOUWD5zBBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit><latexit sha1_base64="DCiRJ1BVzI7mhdLE5r9XfdF1SuA=">AAAB7HicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLUlsLDHxgAQuZG/Zgw37cdndMyEXfoONhcbY+oPs/DcucIWCL5nk5b2ZzMyLU86M9f1vr7S1vbO7V96vHBweHZ9UT886RmWa0JAornQvxoZyJmlomeW0l2qKRcxpN57eLfzuE9WGKfloZymNBB5LljCCrZPCukSiPqzW/Ia/BNokQUFqUKA9rH4NRopkgkpLODamH/ipjXKsLSOcziuDzNAUkyke076jEgtqonx57BxdOWWEEqVdSYuW6u+JHAtjZiJ2nQLbiVn3FuJ/Xj+zyW2UM5lmlkqyWpRkHFmFFp+jEdOUWD5zBBPN3K2ITLDGxLp8Ki6EYP3lTdJpNgK/ETw0a61mEUcZLuASriGAG2jBPbQhBAIMnuEV3jzpvXjv3seqteQVM+fwB97nD6q2jd0=</latexit>

Year

Num

ber o

f Tra

nsis

tors

per I

nteg

rate

d C

ircui

tMoore’s Law

Process Technology (µm<latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AAAB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HHUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg==</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AAAB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HHUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg==</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AAAB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HHUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg==</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AAAB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HHUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg==</latexit>

µm<latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AAAB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HHUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg==</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AAAB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HHUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg==</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AAAB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HHUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg==</latexit><latexit sha1_base64="1XOQUpYJ4Navgj2rMp+JfrNOobQ=">AAAB7nicbVA9TwJBEJ3DL8Qv1NJmI5hYkTsaLElsLDERMIEL2VsW2LC7d9mdMyEXfoSNhcbY+nvs/DcucIWCL5nk5b2ZzMyLEiks+v63V9ja3tndK+6XDg6Pjk/Kp2cdG6eG8TaLZWweI2q5FJq3UaDkj4nhVEWSd6Pp7cLvPnFjRawfcJbwUNGxFiPBKDqpW+2rlKjqoFzxa/4SZJMEOalAjtag/NUfxixVXCOT1Npe4CcYZtSgYJLPS/3U8oSyKR3znqOaKm7DbHnunFw5ZUhGsXGlkSzV3xMZVdbOVOQ6FcWJXfcW4n9eL8XRTZgJnaTINVstGqWSYEwWv5OhMJyhnDlCmRHuVsIm1FCGLqGSCyFYf3mTdOq1wK8F9/VKs5HHUYQLuIRrCKABTbiDFrSBwRSe4RXevMR78d69j1VrwctnzuEPvM8fNUyOxg==</latexit> )

40048086

286386

486 Pentium

Pentium IIPentium 4

Core 2 Duo Core i7

Doubles every 2.1 yrs

2 / 21

Page 3: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

AI / Cu / W wires

Planar CMOSLE

Patterning

TransistorsCo

mpl

exity

Interconnect

2005 2010 2015 2020 2025

[Courtesy ARM]

2 / 21

Page 4: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

AI / Cu / W wires

Planar CMOSLE

10 nm 7 nm 5 nm 3 nm

FinFETLELE

W LI

Patterning

TransistorsCo

mpl

exity

Interconnect

2005 2010 2015 2020 2025

[Courtesy ARM]

2 / 21

Page 5: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

AI / Cu / W wires

Planar CMOSLE

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

FinFETLELE

W LI

Patterning

TransistorsCo

mpl

exity

Interconnect

2005 2010 2015 2020 2025

[Courtesy ARM]

2 / 21

Page 6: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

AI / Cu / W wires

Planar CMOSLE

HNW

VNW

eNVM

10 nm 7 nm 5 nm 3 nm

Cu Doping

3D IC

Opto Connect

Graphene

CNT

FinFETW LI

EUV

EUV EBL

EUV DSA

LELELELELE

SADP

SAQP

EUV LELE

Patterning

TransistorsCo

mpl

exity

Interconnect

2005 2010 2015 2020 2025

[Courtesy ARM]

Multiple Patterning Litho (MPL)

2 / 21

Page 7: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Multiple Patterning Layout Decomposition

a

b

a

b cd

(a) Original layout

a

b

a

b cd

(b) TPL layout with conflicts

a

b

a

d2

b c1d1

c2

(c) Coloring on layout graph

a

bd

c2

c1

(d) Final decomposed layout

3 / 21

Page 8: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Multiple Patterning Layout Decomposition

a

b

a

b cd

(a) Original layout

a

b

a

b cd

(b) TPL layout with conflicts

a

b

a

d2

b c1d1

c2

(c) Coloring on layout graph

a

bd

c2

c1

(d) Final decomposed layout

3 / 21

Page 9: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Multiple Patterning Layout Decomposition

a

b

a

b cd

(a) Original layout

a

b

a

d2

b c1d1

c2

(b) Layout graph

a

b

a

d2

b c1d1

c2

(c) Coloring on layout graph

a

bd

c2

c1

(d) Final decomposed layout

3 / 21

Page 10: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Multiple Patterning Layout Decomposition

a

b

a

b cd

(a) Original layout

a

b

a

d2

b c1d1

c2

(b) Layout graph

a

b

a

d2

b c1d1

c2

(c) Coloring on layout graph

a

bd

c2

c1

(d) Final decomposed layout

3 / 21

Page 11: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Multiple Patterning Layout Decomposition

a

b

a

b cd

(a) Original layout

a

b

a

d2

b c1d1

c2

(b) Layout graph

a

b

a

d2

b c1d1

c2

(c) Coloring on layout graph

a

bd

c2

c1

(d) Final decomposed layout

3 / 21

Page 12: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Mathematical Formulation

I Some conflicts can be solved by Stitch Insertion.

f

b

a

c

d2

d1e2

e1

k Pattern Layout Decomposition

minx

∑eij∈CE

cij + α×∑

eij∈SEsij,

s.t. cij = {xi == xj}, ∀eij ∈ CE,sij = {xi 6= xj}, ∀eij ∈ SE,xi ∈ {0, 1, ..., k}, ∀i ∈ V.

I xi is a variable for the k available colors of the pattern vi.I cij is a binary variable representing conflict edge eij ∈ CE.I sij stands for stitch edge eij ∈ SE.

4 / 21

Page 13: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Research Trend for Layout DecompositionAn UNDERESTIMATION from Google Scholar

4

75

1012

1112

9

2 10

2

4

6

8

10

12

14

2010 2011 2012 2013 2014 2015 2016 2017 2018 2019

# of Researches Papers

5 / 21

Page 14: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Challenges in Layout Decomposition ResearchComplicated workflow and huge development overhead

I GDSII parsing and writingI Layout graph construction and stitch insertionI Graph simplification and core solvers

Lack of reusable code and repeatability

I Need to develop from scratchI Only share executable binaries instead of source code

No consistent framework for fair comparison

I Different implementations to the same algorithmI Hard to make detailed comparison in depth

6 / 21

Page 15: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Challenges in Layout Decomposition ResearchComplicated workflow and huge development overhead

I GDSII parsing and writingI Layout graph construction and stitch insertionI Graph simplification and core solvers

Lack of reusable code and repeatability

I Need to develop from scratchI Only share executable binaries instead of source code

No consistent framework for fair comparison

I Different implementations to the same algorithmI Hard to make detailed comparison in depth

6 / 21

Page 16: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Challenges in Layout Decomposition ResearchComplicated workflow and huge development overhead

I GDSII parsing and writingI Layout graph construction and stitch insertionI Graph simplification and core solvers

Lack of reusable code and repeatability

I Need to develop from scratchI Only share executable binaries instead of source code

No consistent framework for fair comparison

I Different implementations to the same algorithmI Hard to make detailed comparison in depth

6 / 21

Page 17: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

OpenMPL 2.0: Open-Source Layout Decomposition Tool

https://github.com/limbo018/OpenMPL

7 / 21

Page 18: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Workflow

Layout Graph ConstructionIndependent Component Computation

Input Layout

Stitch Candidate Generation

Decomposition Solver

Graph Simplification

Simplified Graph RecoveryOutput Masks

Merge 4-Cliques

Hide Small Degree

Biconnected Component

Decomposition SDP

ILP

Backtracking

Dancing Links

8 / 21

Page 19: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Design Principles

I Decoupled design stages

I Graphs for communications amongkernel stages

I Efficiency and generality for differentmask data

Layout Graph ConstructionIndependent Component Computation

Input Layout

Stitch Candidate Generation

Decomposition Solver

Graph Simplification

Simplified Graph RecoveryOutput Masks

Merge 4-Cliques

Hide Small Degree

Biconnected Component

Decomposition SDP

ILP

Backtracking

Dancing Links

9 / 21

Page 20: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Extensible API to Incorporate New Algorithms

I Create a solver

// A solver classclass InstantColoring

: public Coloring{public:// g is a boost::graphInstantColoring(g);

protected:virtual double coloring(){

// override base function// return cost

}};

I Integrate the solver

// define a solverswitch (algorithm){

case BruteForce:solver = new BruteForce (g);

case InstantColoring:solver = new InstantColoring (g);

...}...// solve coloring(*solver)();

10 / 21

Page 21: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Extensible API to Incorporate New Algorithms

I Create a solver

// A solver classclass InstantColoring

: public Coloring{public:// g is a boost::graphInstantColoring(g);

protected:virtual double coloring(){

// override base function// return cost

}};

I Integrate the solver

// define a solverswitch (algorithm){

case BruteForce:solver = new BruteForce (g);

case InstantColoring:solver = new InstantColoring (g);

...}...// solve coloring(*solver)();

10 / 21

Page 22: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

OpenMPL 2.0: Open-Source Layout Decomposition Tool

We implement several layout decomposition solvers.

I Backtracking: Use DFS algorithm to find the solutions [Yu+,ICCAD’13].

I Integer Linear Programming: Convert the problem into linear programming by binaryencoding of vertex colors [Yu+,ICCAD’11].

I Dancing Links: Treat the problem as an exact cover problem and solve it in the BFSstyle [Chang+,DAC’16].

I Semidefinite Programming: Use SDP to relax the problem and solve it in polynomialtime [Yu+,ICCAD’11].

11 / 21

Page 23: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

OpenMPL 2.0: Open-Source Layout Decomposition Tool

We implement several layout decomposition solvers.

I Backtracking: Use DFS algorithm to find the solutions [Yu+,ICCAD’13].

I Integer Linear Programming: Convert the problem into linear programming by binaryencoding of vertex colors [Yu+,ICCAD’11].

I Dancing Links: Treat the problem as an exact cover problem and solve it in the BFSstyle [Chang+,DAC’16].

I Semidefinite Programming: Use SDP to relax the problem and solve it in polynomialtime [Yu+,ICCAD’11].

11 / 21

Page 24: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

OpenMPL 2.0: Open-Source Layout Decomposition Tool

We implement several layout decomposition solvers.

I Backtracking: Use DFS algorithm to find the solutions [Yu+,ICCAD’13].

I Integer Linear Programming: Convert the problem into linear programming by binaryencoding of vertex colors [Yu+,ICCAD’11].

I Dancing Links: Treat the problem as an exact cover problem and solve it in the BFSstyle [Chang+,DAC’16].

I Semidefinite Programming: Use SDP to relax the problem and solve it in polynomialtime [Yu+,ICCAD’11].

11 / 21

Page 25: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Layout Simplification

Reduce the graph size and therefore reduce the computation complexity.

I Level 0: No Simplification. Do not conduct any simplification.

I Level 1: Hide small degree. Temporarily remove nodes with low degree[Yu+,TCAD’15] [Lin+,SPIE’16].

I Level 2: Merge 4-Clique. Detect and merge sub-4-clique structures [Lin+,SPIE’16].

I Level 3: Biconnected component decomposition. Partition original graph intoindependent components [Kahng+,ICCAD’08].

12 / 21

Page 26: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Additional Features

I Multithreading: Solve components inparallel.

I Stitch Insertion: Insert stitches to solvesome conflicts.

I Shape Friendly: Specify the shape(POLYGON or RECTANGLE) easily.

a e

d

f

c

b

b

c a

b’

df

e2

1

a

b

a

d2

b c1d1

c2

a

b

c

d

e

P

13 / 21

Page 27: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Command Line Options

Selected Options Descriptions-coloring_distance a floating point number indicating number of coloring distance in nanometer-color_num an integer indicating number of masks (colors) < 3|4 >-simplify_level an integer indicating graph simplification level < 0|1|2|3 >-path_layer an integer indicating layer for conflict edges-precolor_layer an integer indicating layer for pre-colored patterns-uncolor_layer an integer indicating layer for coloring-algo algorithm type < ILP|BACKTRACK|LP|SDP >-shape shape mode < RECTANGLE|POLYGON >-use_stitch use stitch to avoid conflict-gen_stitch generate stitch candidate-weight_stitch weight of stitch-thread_num an integer indicating maximum thread number-verbose toggle controlling screen messages-dbg_comp_id debug component id

14 / 21

Page 28: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Experimental Settings

I Triple Patterning Lithography

I Conducted on modified ISCAS benchmarks from [Yu+,ICCAD’13]

I Coloring distance: 120nm for the first ten cases and 100nm for the last five cases.

15 / 21

Page 29: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Experimental Results

(a) total_c1, TPLD, SDP coloring process. (b) total_c2, TPLD, SDP coloring process.

16 / 21

Page 30: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Experimental Results – Quality

0

25

50

75

100

# co

nflic

tsBacktracking ILP SDP Dancing Links

C432

C499

C880

C1355

C1908

C2670

C3540

C5315

C6288

C7552

S148

8

S384

17

S359

32

S385

84

S158

50

050

100150200250

# st

itche

s

17 / 21

Page 31: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Experimental Results – Runtime

C432

C499

C880

C1355

C1908

C2670

C3540

C5315

C6288

C7552

S148

8

S384

17

S359

32

S385

84

S158

5010 3

10 2

10 1

100

101

102

Runt

ime

(s)

Backtracking ILP SDP Dancing Links

18 / 21

Page 32: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

Quality and Runtime Tradeoffs

Backtracking

ILP

SDP

Dancing Links

Quality Efficiency

19 / 21

Page 33: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

ConclusionOpen-source layout decomposition framework

I Four layout decomposition solvers;

I Four graph simplification strategies;

I Multithreads, stitch insertion supported and shape frinedly.

Future Work

I Efficiency: hardware acceleration.

I Quality: post refinement.

20 / 21

Page 34: OpenMPL: An Open Source Layout Decomposeryibolin.com/publications/papers/DFM_ASICON2019_Li.slides.pdf · 1940 1950 1960 1970 1980 1990 2000 2010 2020 10,000,000,000 1 10 100 1,000

ConclusionOpen-source layout decomposition framework

I Four layout decomposition solvers;

I Four graph simplification strategies;

I Multithreads, stitch insertion supported and shape frinedly.

Future Work

I Efficiency: hardware acceleration.

I Quality: post refinement.

20 / 21