dokelung (Ko-Lung Yuan)
About Me
https://github.com/dokelung/
dokelung@gmail.com
http://dokelung-blog.logdown.com/
⼩小⼩小的⼼心得分享
今天講些什麼?
• EDA
• script-king
• msat
• minickt
Agenda
常有⼈人問我這樣⼀一個問題...
什麼是電⼦子設計⾃自動化?
IC Design Flow
In EDA World …
我在這裡
在最⼀一開始,我也是學過⼀一點 功夫的...
C / C++ / Java …
三
腳
貓
直到我遇⾒見了... 他!
直到我遇⾒見了...
Python可以拿來幹⿇麻呢?
除了吃飯和睡覺之外我都想⽤用Python啊
拿來寫 script 好了
真是送禮⾃自⽤用兩相宜啊!
Script King
https://github.com/dokelung/script-king
接著幹嘛好呢?
來寫個 solver 好了
於是乎msat 就誕⽣生了!
https://github.com/dokelung/msat
msat
Multiset Constraint Solving
{ 1, 3, 3, 1 } { 2, 3, 3 }
Subset-Sum Problem
{ 1, 2, 3, 4, 5 } { 6 }=
>=
Element set Target setRelation
What Is this?
subset-sum problem
k-partition problem
bin-packing problem
knapsack problem
pseudo Boolean constraint
symmetry encoding
What?
{ 1, 2, 3, 4, 5 }
k = 3
{ 1, 4 } { 2, 3 } { 5 }
Let E = { 1, 2, 3, 4, 5 }
Let T = { 5, 5, 5 }
Relation “=”
k-partition Problem
{ 2, 2, 3, 4 }
bin size = 5
{ 2 } { 2, 3 } { 4 }
Let E = { 2, 2, 3, 4 } with all use rule
Try T = { 5 }, { 5, 5 }, { 5, 5, 5 } …
Relation “<=”
Bin-packing Problem
size = { 1, 2, 1, 2, 1 }
value = { 2, 3, 1, 2, 2 }
knapsack capacity = 5
Let E1 = { 1, 2, 1, 2, 1 } T1 = { 5 } Relation “<=“
Let E2 = { 2, 3, 1, 2, 2 } T2 = { Vmax } Relation “=“
Try Vmax …
Knapsack Problem
3x + 5y - 2z >= 5
6x + 2y + 2z >= 2
x = 1, y = 1, z =0
Let E1 = { 3, 5, -2 } T1 = { 5 } Relation “>=“
Let E2 = { 6, 2, 2 } T2 = { 2 } Relation “>=“
PBC
How to Solve
Let E = { 1, 1, 3, 3 }
Try T = { 2, 3, 3 }
Relation “>=”
!2 !1 0 1 2 3
0 True True True False False False
1 True True True True False False
1 True True True True True False
3 True True True True True True
3 True True True True True True
minickt
https://github.com/dokelung/minickt
AND
OR
XOR
a
b
c
d
e
f
out
–dokelung
「⼯工商服務,真⼼心不誤。」
6/9(二) 天瓏買的到
謝謝⼤大家
Q & A

Python & EDA