Python & EDA

Preview:

Citation preview

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

minickthttps://github.com/dokelung/minickt

AND

OR

XOR

ab

cd

e

fout

–dokelung

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

6/9(二) 天瓏買的到

謝謝⼤大家 Q & A

Recommended