Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for...

36
Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical and Computer Engineering Cornell University

Transcript of Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for...

Page 1: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

Mapping-Aware Constrained Schedulingfor LUT-Based FPGAs

Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang

School of Electrical and Computer EngineeringCornell University

Page 2: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  HLS has become increasingly important to achieve higher design productivity & quality

1

High-Level Synthesis (HLS) for FPGAs

RTL code

FPGA implementation

HLS

RTL/Logic synthesis

out  =  ((i1  &  i2)  ^  i3)              ^  (i4  &  i5)  

i3 i5i1 i2

o1

o2

o4

o3

i4

i3 i5i1 i2

LUT

i4

SDAccel/Vivado HLS Altera OpenCL Compiler Legup …

LUT

LUT

C/C++ program

Page 3: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

2

A Typical HLS FlowHigh-level Programming

Languages (C/C++, OpenCL, SystemC

Java, Matlab, Python ...)

Compilation

Transformations

Scheduling

Resource sharing

RTLgeneration

S0

S1

S2

S0

S1

S2

ab

z

d

3 cycles

*–

Control data flow graph (CDFG)

+

-

* +

*

if (condition) { …} else { t1 = a + b; t2 = c * d; t3 = e + f; t4 = t1 * t2; z = t4 – t3;}

Untimed high-leveldescription

Timed design with clock cycles

Page 4: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

SDC-Based Scheduling

▸  Scheduling based on system of difference constraints (SDC) formulation [Cong and Zhang, DAC’06]

§  Dependency constraints

and

xor

•  Target clock period: 5ns•  Delay estimate: 2ns

o1

o2

o4

o3

3

2ns

2ns

2ns

Let si be the schedule variables

or

i1 i2 i3 i5

and

i4

§  Latency constraints§  Resource constraints§  …

§  Cycle time constraint

o1 ~ o4 : s1 – s4 ≤ -1

<o1 , o2> : s1 – s2 ≤ 0<o2 , o4> : s2 – s4 ≤ 0<o3 , o4> : s3 – s4 ≤ 0

Total delay = 6ns > 5ns

Page 5: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

4

SDC-Based Scheduling

▸  Representing SDC constraints with constraint graph

Cycle 0

Cycle 1

o32ns

2ns

and

xor

o1

o2

o4 or

and

i1 i2 i3 i5i4

Total delay = 6ns > 5ns

s1

s3

s4

s2

0

00

s0

0

00

0

s4 = 1-1

SDC constraints s1 – s2 ≤ 0s2 – s4 ≤ 0s3 – s4 ≤ 0s1 – s4 ≤ -1

Constraint graph

s: {s1 , s2 , s3 , s4}

Price of abstraction? Pre-characterized delay estimation for individual operation is often too pessimistic for logic operations

s3 = 0

s2 = 0

s1 = 0 2ns

2ns

Page 6: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

5

Lookup Tables (LUTs)

▸ A k-input LUT (k-LUT) can be configured to implement any k-input 1-output combinational logic –  Delay is a constant for all K-LUTs

Mux… f

x2 x1 x0

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

3-LUT

i3 i5 i1 i2

o1

o2

o4

o3

i4

3-LUTCone

single-output subgraph

cut inputs to the cone

Cones and cuts are K-feasible when # of inputs ≤ K

Page 7: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  Mapping enables more aggressive chaining by packing more operations into each cycle–  LUT level l(v) : arrive time in depth of LUTs

6

Mapping Logic Gates into LUTs

i3 i5 i1 i2

o1

o2

o4

o3

i4

l(o2) = 1

l(o4) = 2

Page 8: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

7

Considering Mapping in Scheduling

Target clock period is 5ns, each operation or LUT takes 2ns

Conventional scheduling

Cycle 0

Cycle 1

and

xor

o1

o2

o4

o32ns

2ns

2ns or

and

i1 i2 i3 i5 i4

Estimated delay = 6ns > 5ns, 2 cycles

A better schedule needs to consider mapping!

Considering LUT mapping

Estimated delay = 4ns < 5ns, 1 cycle

i3 i5 i1 i2

o1

o2

o4

o3

i4

3-LUT2ns

3-LUT2ns

Cycle 0

Cycle 1

Page 9: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

8

Scheduling and Mapping Interdependence

HLS

LogicSynthesis

Determine register boundaries⇒  Prefer mapping information for more accurate delay estimation

Determine LUT mapping⇒  Typically occurs between register boundaries

Scheduling

Mapping

Page 10: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

9

MAPS: Mapping-Aware Constrained Scheduling

▸  Considering mapping in scheduling to enable more aggressive chainingIdea

▸  An algorithm that finds the minimum-latency schedule under SDC constraints considering LUT mapping

Contributions

▸  Significant latency reduction over a range of logic-intensive applicationsResults

Page 11: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  We introduce L-values to represent the integrated scheduling and mapping information

10

L-Values for MAPS

Time step

Inter-cycle scheduling information

LUT level

Intra-cycle mapping

Information

Lv = (sv, lv)

Goal: find a legal schedule with minimum L-value for each operation

xor

and

or

and

xor

Cycle 0

Cycle 1

(0, 1)

(0, 2)

(1, 1)

3-LUT

3-LUT

3-LUTsv lv

Time step LUT level

(0, 1)

(1, 1)

Page 12: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  We keep refining the lower-bound of L-values by relaxation–  A generalization of Bellman-Ford shortest-path algorithm

11

Relaxation-Based Labeling

Step1: Initialize the L-value as (0, 0), an obvious lower-bound without considering any constraint

Step2: Iteratively improve the L-values as follows until convergency

(1) Mapping constraints: choose the best cut with minimal L-value

(2) Scheduling constraints: decide new L-values according to input edges

For each node on constraint graph

Eachiteration

Return a legal schedule when the algorithm converges

(3) Update the L-value based on mapping and scheduling constraints

fv = min

8C2CUTv

max

8u2C{Lu + (0, Delayv)}

gv = max

8u!v2E{Lu + (Latu!v, 0) + (0, Delayv)}

Lv = max{fv, gv}

Page 13: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

12

DependenceconstraintsD – sC ≥ 0

LatencyconstraintsE – sH ≥ 0

From CDFG to Constraint Graph

Black-box operation

A

and

or

add

and

shift

B

xor

Latency≤ 0

CDFG

DEF

GHI

▸  We use constraint graph (CG) to represent all SDC constraints

[source: Zhang and Liu, ICCAD’13]

C

Constraint graph

A

D

F

H

I

G

0

0

0

0

0

0

0

0

B0

E0

C

Page 14: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

13

(0, 0)

Constraint graph

(0, 0)

Step2: Iteratively update L-values by relaxation

Propagate L-values for mapping constraints

Iteration 1

(0, 0) CStep1: Initialize the L-value as (0,0) for each node

Relaxation-Based Labeling

(0, 0)

(0, 0)

(0, 0)

(0, 0)

Node D

(0, 0)

Assuming 3-LUTs and LUT level ≤ 3

A

D

F

H

I

G

0

0

0

0

0

0

0

0

B0

E0

LB:  (0,      0)    

LUT level

LD:  (0,      1)    

LE:  (0,      2)    

(0, 0) (0, 1)

LE:  (0,      1)    

Cut{A, B}

Cut1{C, D} Cut2 {C, A, B}

Choose the best cutwith minimal L-value

(0, 1)

fv = min

8C2CUTv

max

8u2C{Lu + (0, Delayv)}

Page 15: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

14

(0, 0)

Constraint graph

(0, 0)

(0, 0) C

(0, 1)

(0, 0)

(0, 0)

(0, 0)

(0, 0)

(0, 1)

A

D

F

H

I

G

0

0

0

0

0

0

0

0

B0

E0

Step2: Iteratively update L-values by relaxation

Iteration 1

Step1: Initialize the L-value as (0,0) for each node

Relaxation-Based Labeling

(0, 2)

(0, 2)

(0, 1)

(0, 1)

Node F

Black-box operation H has only trivial cut

(0, 3)

Node GNode H

(1, 1)

Propagate L-values for mapping constraints

LH:  (0,      3)    

Maximum LUT level is restricted by cycle time

LI:  (0,      4)     (1,      1)    

LUT level Time step

LUT level≤ 3

Node I

Assuming 3-LUTs and LUT level≤ 3

Page 16: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

15

(0, 0)

Constraint graph

(0, 0)

(0, 1)

(0, 2)

(0, 3)

(1, 1)

(0, 2)

(0, 1) (0, 0) C

A

D

F

H

I

G

0

0

0

0

0

0

0

0

B0

E0

Step2: Iteratively update L-values by relaxation

Iteration 1

Step1: Initialize the L-value as (0,0) for each node

Relaxation-Based Labeling

Iteration 2(1, 1)

Scheduling constraintsNode F

(1, 1)

(1, 2)

(1, 3)

Node GNode HNode I

Back edge from I to F: maximum latency constraint F and I must be in the same cycle

LI:  (1,      1)    

LF:  (1,      1)     LG:  (1,      1)    

LH:  (1,    2)    

LI:  (1,      3)    

gv = max

8u!v2E{Lu + (Latu!v, 0) + (0, Delayv)}

Assuming 3-LUTs and LUT level≤ 3

Page 17: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

16

(0, 0)

Constraint graph

(0, 0)

(0, 1)

(1, 0)

(1, 1)

(1, 2)

(1, 1)

(0, 1) (0, 0) C

A

D

F

H

I

G

0

0

0

0

0

0

0

0

B0

E0

Step2: Iteratively update L-values by relaxation

Iteration 1

Step1: Initialize the L-value as (0,0) for each node

Relaxation-Based Labeling

Iteration 2 Iteration 3

The algorithm converges

Mapping constraints: satisfiedScheduling constraints: F and I are in the same cycle

Node F(1, 1)

Every node reaches its minimum legal L-value!

Assuming 3-LUTs and LUT level≤ 3

Page 18: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  Proof by induction that MAPS labeling algorithm always maintains the lower bound of L-values

Upon convergence, MAPS returns a legal schedule with a minimum L-value for each node

17

Optimality of MAPS Labeling

Base Case: All L-values are initialized as (0,0), which are the lower bound without considering any constraints;

Induction: assume iteration k maintain the lower bound of L-values, => L-values in iteration (k+1) are also lower bound,

because our algorithm only monotonically increases minimal L-values that satisfy a part of the given constraints

Page 19: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

Conventional vs. MAPS schedule

(0, 0)

MAPS schedule

(0, 0)

(0, 1)

(1, 1)

(1, 2)

(1, 3)

(1, 1)

(0, 1) (0, 0) C

A

D

F

H

I

G

B

ECycle 1

Cycle 2

Cycle 0

Total 2 cycles; 1 cycle/iterationConventional schedule

C

A

D

F

H

I

G

B

ECycle 1

Cycle 3

Cycle 02ns

2ns

2ns

2ns

2ns

2ns

Cycle 2

3 cycles; 2 cycle/iteration18

Page 20: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  Resource constraints for black-box operations–  e.g. memory port limits, hardened multipliers

▸  Incremental scheduling heuristic–  Legalize the initial solution from the labeling step–  Gradually serialize resource-constrained operations

19

Incremental Scheduling for Resource Constraints

RW1 RW2

MEMORY

ld1 ld2

Cycle 1

Cycle 0

Serialize ld2 and ld3

ld3

Page 21: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  Setup–  A state-of-the-art commercial HLS

•  MAPS is implemented an LLVM pass •  We leverage the commercial HLS as the back end for RTL generation•  We use the same commercial HLS tool as baseline

–  Target device: Virtex-7 FPGA with 6-LUTs•  5ns target clock period

▸  Benchmarks–  3 kernels: XORR, GFMUL, CLZ–  8 logic-intensive applications from MiBench and CHStone

•  Communication: CRC, Reed-Solomon decoder (RS)•  Cryptography: MD5, AES, SHA•  Scientific Computing: DFADD, Mersenne twister (MT)•  Machine Learning: Digit recognition (DR)

20

Experimental Results

Page 22: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

21

Latency Reduction

3 kernels 8 real-life applications

Generate combinational circuitsFor XORR and GFMUL kernels

MAPS significantly reduces latency by enabling more aggressive chaining

0%

20%

40%

60%

80%

100%

XORR

GFMUL

CLZ

CRC

MD5

AES

SHA

DFADD MT RS DR

100% 100%91%

60%

25%32%

25%

9% 11%

36%23%

Late

ncy

Red

uctio

n Reduce by up to 60% for CRCAverage reduction: 29%

5ns target clock period is met for all designs

Page 23: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

22

Resource Usage Comparison

3 kernels 8 real-life applications

up to 28% reductionAverage reduction

#LUT: 9%

up to 59% reduction

Slight resource increase for some apps

Average reduction

#FF: 25%

Page 24: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

23

Case Study for Digit Recognition (DR)

void count_set_bit (bit49 input, bit6 &ones){ for (int i=0; i<49; i++) ones += input[i];}

49 input bits

6 output bits

Baseline: 7 levels of operations 2 cycles

MAPS: 3 levels of 6-LUTs 1 cycles

Target clock period = 5ns

23% latency reduction for the entire DR app

Page 25: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  Cross-layer optimizations that integrate different steps of the FPGA flow can enable next leap in QoR improvement for HLS

▸  MAPS: a mapping-aware constrained scheduling algorithm–  Elegantly integrate LUT mapping information into scheduling –  Achieve latency-optimal schedule under SDC constraints –  Significantly improve performance and reduce hardware resource

24

Conclusions

Page 26: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

25

QUESTIONS?

25

THANKS!

Page 27: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

26

Page 28: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  Each iteration will traverse each node and edge once–  Complexity for a single iteration: O(|V|K+|E|)

▸  MAPS labeling converges within at most D*|V| iterations–  Each iteration will monotonically increase the L-value by at least 1–  The upper bound of each L-value is D*|V|, where D denotes the

maximum delay for any edge; D is usually a small constant.

▸  Total complexity of MAPS Labeling is O(D*|V|*(|V|K+|E|)), which is polynomial when K and D are small constants

27

Complexity of MAPS Algorithm

MAPS labeling guarantees to obtain a legal schedule with optimal L-value for each node in pseudo-polynomial time

Page 29: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

28

Runtime Evaluation for MAPS

Baseline MAPSPC 23.0 23.0

XORR 56.0 64.7GFMUL 4.3 11.1

CLZ 24.0 29.7CRC 3.9 11.8MD5 15.6 28.8AES 20.5 61.9SHA 8.9 19.6

DFADD 9.3 11.1MT 36.5 193.5RS 23.0 24.6DR 44.5 50.5

Synthesis time (seconds)

Page 30: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

29

Page 31: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

30

Kernel: Xor Reduction for Bit Vector

xor xor xor xor xor xor

xor xor xor

xor

xor

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11

Cycle 0

Cycle 2

Cycle 1

xor xor xor xor xor xor

xor xor xor

xor

xor

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11

Cycle 0

Cycle 1

6-LUT

Original Schedule2 cycles, 4 LUTs

MAPS Schedule1 cycles, 3 LUTs

6-LUT

Target clock period is 5ns, each one-bit addition has 2ns latency

2ns

2ns

2ns

2ns

Page 32: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

31

Kernel Example: Galois Field Multiplication (GFMUL)

shift

and

cmp

select

xor

Cycle 0shift

and

cmp

select

xor

Cycle 0

Cycle 1

Cycle 2

Cycle 3 Cycle 1

Original Schedule4 cycles, 3 LUTs

MAPS Schedule1 cycle, 1 LUT

Target clockperiod = 5ns

2ns

2ns

2ns

2ns

2ns

6-LUT2ns

Page 33: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  How about performing mapping before scheduling?

32

Separate Mapping and Scheduling

^

&

^

x y

Cycle 0

Cycle 1

Cycle 2

Mapping + Scheduling2 cycles per iteration

^

&

^

x y

Cycle 0

Cycle 1

Cycle 2Optimal schedule

1 cycle per iterationTotal Latency = 2*N for N iterations Total Latency = N for N iterations

Assuming each LUTtakes a full cycle

Page 34: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  How about prioritizing mapping for loops

33

Loop-Prioritized Mapping and Scheduling

Mapping + Scheduling3 cycles, 3 LUTs

Optimal schedule2 cycles, 2 LUTs

^

&

^

x yCycle 0

Cycle 2

Cycle 3

^

Cycle 1

^

&

^

x yCycle 0

Cycle 1

Cycle 2

^

Page 35: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  Can we address the problem using retiming?

34

Retiming Based Mapping and Scheduling

^

&

^

x y

Cycle 0

Cycle 1

Cycle 2

Mapping + Scheduling2 cycles per iteration

Total Latency = 2*N for N iterations

^

&

^

x y

Cycle 0

Cycle 1

Cycle 2

Retimingwill not remove

registersin loops

Mapping + Scheduling + RetimingStill 2 cycles per iteration

Page 36: Mapping-Aware Constrained Scheduling for LUT … 6/1-maps...Mapping-Aware Constrained Scheduling for LUT-Based FPGAs Mingxing Tan, Steve Dai, Udit Gupta, Zhiru Zhang School of Electrical

▸  Bit-Level Dependence Tracking

35

Word-Level Tracking

&

A B

Cinputs(C) = {A, B}

<<s

A

Cinputs(C)={As}

+

A B

Cinputs(C)=

{A0, A1, ..., B0, B1, ...}

AND,OR,XOR

SHIFT,EXT,

TRUNC

ADD,SUB