a difference logic formulation and smt solver for timing-driven placement

Post on 24-Feb-2016

152 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

A Difference Logic Formulation and SMT Solver for Timing-Driven Placement. Andrew Mihal SMT 2013. Programmable Logic Devices. Programmability. CPUs. PLD s. ASIC s. Performance. Lookup Table Fabric. = firmware configuration bit. C. LUT. LUT. LUT. LUT. LUT. LUT. LUT. LUT. LUT. - PowerPoint PPT Presentation

TRANSCRIPT

THE BEST PATH FROM IDEAS TO PRODUCTION SILICON ®THE BEST PATH FROM IDEAS TO PRODUCTION SILICON ®

A Difference Logic Formulationand SMT Solver for Timing-DrivenPlacement

Andrew MihalSMT 2013

Programmable Logic Devices

2

Performance

Programmability

ASICs

CPUs

PLDs

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

LUT

C = firmware configuration bit

a b c out0 0 00 0 10 1 0

0 1 11 0 01 0 11 1 0

1 1 1

CCCCCCCC

Lookup Table Fabric

3

Interconnect

4

LUT

LUT LUT

LUT

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

MU

X

Programming

5

Input: Circuit Netlist

Output: Config Bits Mapping

Programming

6

DetailedPlacement

Programming Toolchain

7

Synthesis

GlobalPlacement

DetailedPlacement

Routing

VerilogVHDL

Config

No Overlaps Congestion, Routability Timing

Detailed Placement

8

Fixing an Overlap

9

Everybody Shuffle

10

Steps Look Bad in Isolation

11

Problem space is too big– Components Sites– LUT Permutations– Multiple Routing Variations– Retiming– 3D Fabric with Transparent Latches

Optimization Goals– Timing– Congestion

Why not SAT?

12

SMT Formulation of Timing Constraints Practicality

– Domain-specific variable selection order– A*-style future cost clauses– Dynamic constraint generation

Solutions

13

Netlist Comps

Placement Variables

14

Fabr

ic S

ites

AexactlyOne

atMostOnevAXX

Placement Delays

15

A B C

E

D

F

Y

X

DBC

(vBX vCY) DBC = dXY

Timing Constraints

16

A B C

E

D

F

DBCDAB DCD

DBE

DEC

DEF

DFE

Path ConstraintABCD DAB + DBC + DCD ≤

ABECD DAB + DBE + DEC + DCD ≤

ABEF DAB + DBE + DEF ≤

FEF DFE + DEF ≤

FECD DFE + DEC + DCD ≤

0

17

A B C

E

D

F

DBCDAB DCD

DBE

DEC

DEF

DFE

Slack

ArrivalC

RequiredC

ArrivalC = max ( DAB + DBC,DAB + DBE + DEC,DFE + DEC)

RequiredC = min ( - DCD,...)

Static Timing Analysis

Arrival and Required Equations

18

A B C

E

D

F

DBCDAB DCD

DBE

DEC

DEF

DFE

ArrC = max( ArrB + DBC, ArrE + DEC)

ReqC = min (ReqD – DCD)

ArrC ≥ ArrB + DBC

ArrC ≥ ArrE + DEC

ReqC ≤ ReqD – DCD

Difference Logic Formulation

19

A B C

E

D

F

Y

X

DBC

(vBX vCY) (ArrC – ArrB ≥ dXY)

(ReqB – ReqC ≤ -dXY)

ArrN ≤ ReqN

Edge Placement Options

20

A B C

E

D

F

DBC

(vBX vCY) (…)

BC

Dynamic Constraint Generation

21

B

subspace where (¬VBX + ¬VCY + ...) is relevant

VBX

VCY

C (vBX vCY) (…)(vBX + vCY + …)

Components

Site

s 0 0 0 0 0 0 00000

00

1

Timeline

22

SimulatedAnnealing

DLFormulation

Pure BooleanEncoding

Custom SMTSolver

Arr / ReqNumber Line

E+1 = T

E-1 = F (Arr ≥ -1)

.

.

.

.

.

.

(Req < 1)

MiniSAT 1.12b+ dynamic clauses

Solver Flow Chart

23

select

propagate

done?

return

analyze

backtrack

conflict

Propagation Phase

24

propagate_b

propagate_dl

propagate_dyn

conflict

conflict

conflict

20%

1%

50%

ArrA d ReqB d ArrD – ArrC d

ReqC – ReqD -d

Batch DL Propagation

25

A

schedule fanout updates

B

schedule fanin updates

D

C

update fanins and fanouts

Tighter consistent bounds Or a conflict: ArrA > ReqA Or a positive-weight cycle

DL Propagation Results

26

Search-and-Repair Strategy

27

Select Window

BuildSMT Instance Custom

SMTSolver

Apply Solution

Select aProblem

Done?

Annealing vs. SAT and SAT vs. SMT

28

Annealing Boolean FormulationDesign LUTs Runtime Freq Runtime Freqcamellia256 89341 1.0 1.0 0.054 1.14

sudoku 17784 1.0 1.0 0.266 1.49

dct 17199 1.0 1.0 2.526 1.52

wishbone 12775 1.0 1.0 0.028 1.03

Boolean Formulation SMT FormulationDesign LUTs Runtime Freq Match Best Freqsha256 3283 1.0 1.0 0.71 1.01 1.03

aes 5236 1.0 1.0 0.57 0.79 1.03

r2000sc 5807 1.0 1.0 0.93 7.34 1.32

fpudouble 10300 1.0 1.0 0.38 0.48 1.05

SAT vs. SMT: Reduction in Problem Size

29

Boolean Formulation SMT FormulationDesign LUTs Bvars Clauses Bvars DLvars Clausesmancala 287 146k 393k 13k 160 60k

rs_enc 1373 189k 59k 23k 467 55k

aeMB 3066 285k 233k 24k 411 81k

sha256 3283 283k 489k 28k 470 132k

aes 5236 233k 94k 29k 510 80k

warp 5560 283k 729k 24k 375 88k

r2000sc 5807 294k 238k 26k 398 86k

minimips 5855 231k 252k 27k 425 91k

fpudouble 10300 327k 126k 32k 327 78k

Results: Dynamic Clauses

30

Boolean FormulationDynamic No Dynamic

Design LUTs Runtime Clauses Runtime Clausesmancala 287 1.0 393k 13.8 76590k

rs_enc 1352 1.0 59k 12.7 1029k

aeMB 3045 1.0 233k 8.7 20116k

SMT FormulationDynamic No Dynamic

Design LUTs Runtime Clauses Runtime Clausesmancala 287 0.40 60k 12.2 28545k

rs_enc 1352 0.30 55k 48.2 16487k

aeMB 3045 0.58 81k 15.7 20531k

First use of SMT for Place & Route Straightforward difference logic formulation Take advantage of natural subdivisions in the problem

space to make the system practical Deployed in a production placement tool at Tabula today More details on Thursday at 9:00

Summary

31

top related