python & eda

26
Qzuipo哨槜⸱崎峩哋▶甙! 䠉砵哨⫦硺⻇䛟⻩礱 dokelung (Ko-Lung Yuan)

Upload: dokelung

Post on 14-Aug-2015

126 views

Category:

Software


7 download

TRANSCRIPT

Page 1: Python &  EDA

dokelung (Ko-Lung Yuan)

Page 2: Python &  EDA

About Me

https://github.com/dokelung/

[email protected]

http://dokelung-blog.logdown.com/

Page 3: Python &  EDA

⼩小⼩小的⼼心得分享

今天講些什麼?

Page 4: Python &  EDA

• EDA

• script-king

• msat

• minickt

Agenda

Page 5: Python &  EDA

常有⼈人問我這樣⼀一個問題...

什麼是電⼦子設計⾃自動化?

Page 6: Python &  EDA

IC Design Flow

Page 7: Python &  EDA

In EDA World …

我在這裡

Page 8: Python &  EDA

在最⼀一開始,我也是學過⼀一點 功夫的...C / C++ / Java …

三腳貓

Page 9: Python &  EDA

直到我遇⾒見了... 他!

直到我遇⾒見了...

Page 10: Python &  EDA

Python可以拿來幹⿇麻呢?除了吃飯和睡覺之外我都想⽤用Python啊

Page 11: Python &  EDA

拿來寫 script 好了

真是送禮⾃自⽤用兩相宜啊!

Page 12: Python &  EDA

Script King https://github.com/dokelung/script-king

Page 13: Python &  EDA

接著幹嘛好呢?

來寫個 solver 好了

於是乎msat 就誕⽣生了!

Page 14: Python &  EDA

https://github.com/dokelung/msat

msat

Page 15: Python &  EDA

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?

Page 16: Python &  EDA

subset-sum problem

k-partition problem

bin-packing problem

knapsack problem

pseudo Boolean constraint

symmetry encoding

What?

Page 17: Python &  EDA

{ 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

Page 18: Python &  EDA

{ 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

Page 19: Python &  EDA

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

Page 20: Python &  EDA

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

Page 21: Python &  EDA

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

Page 22: Python &  EDA

minickthttps://github.com/dokelung/minickt

AND

OR

XOR

ab

cd

e

fout

Page 23: Python &  EDA

–dokelung

「⼯工商服務,真⼼心不誤。」

Page 24: Python &  EDA
Page 25: Python &  EDA

6/9(二) 天瓏買的到

Page 26: Python &  EDA

謝謝⼤大家 Q & A