Qzuipo哨槜⸱崎峩哋▶甙! 䠉砵哨⫦硺⻇䛟⻩礱 dokelung (Ko-Lung Yuan)
dokelung (Ko-Lung Yuan)
About Me
https://github.com/dokelung/
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 就誕⽣生了!
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
minickthttps://github.com/dokelung/minickt
AND
OR
XOR
ab
cd
e
fout
–dokelung
「⼯工商服務,真⼼心不誤。」
6/9(二) 天瓏買的到
謝謝⼤大家 Q & A