+ All Categories
Home > Documents > Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A,...

Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A,...

Date post: 09-Sep-2020
Category:
Upload: others
View: 10 times
Download: 0 times
Share this document with a friend
50
© Adam Teman, 2018 Lecture Outline
Transcript
Page 1: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

© Adam Teman, 2018

Lecture Outline

Page 2: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

November 16, 2018

Disclaimer: This course was prepared, in its entirety, by Adam Teman. Many materials were copied from sources freely available on the internet. When possible, these sources have been cited;

however, some references may have been cited incorrectly or overlooked. If you feel that a picture, graph, or code example has been copied from you and either needs to be cited or removed,

please feel free to email [email protected] and I will address this as soon as possible.

Digital VLSI Design

Lecture 4: Logic SynthesisPart 2

Semester A, 2018-19

Lecturer: Dr. Adam Teman

Page 3: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

3 © Adam Teman, 2018

What have we discussed so far?

• Not too much…• We briefly discussed compilation.

• And then we really dove down and dirty into standard cell libraries.

• So at this point:• We have loaded our design into the synthesizer.

• And we have loaded our standard cell library and IPs.

• We can move on to discuss the “brains” of the synthesis process.

Elaboration and

Binding

Pre-mapping

Optimization

Technology Mapping

Constraint Definition

Post-mapping

Optimization

Report and export

Syntax Analysis

Library Definition

Page 4: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

Boolean MinimizationMapping to Generics and Libs, Basics of Boolean Minimization (BDDs, Two-Level Logic, Espresso)

4

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

1

Boolean

Minimization

2

Constraint

Definition

3

Technology

Mapping

4

Verilog for

Synthesis

5

Post-Synthesis

Optimization

Page 5: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

5 © Adam Teman, 2018

Elaboration and Binding

• During the next step of logic synthesis, the tool:• Compiles the RTL into a Boolean data structure (elaboration)

• Binds the non-Boolean modules to leaf cells (binding), and

• Optimizes the Boolean logic (minimization).

• The resulting design is mapped to generic, technology independent logic gates.

• This is the core of synthesis and has been a very central subject of research in computer science since the eighties.

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Compilation Binding OptimizationRTL

Generic

Netlist

Page 6: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

© Adam Teman, 2018

Elaboration Illustrated

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Inferred Registers

x1 x2 x3 f(x1x2x3)

0 0 0 1

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 1

Boolean Logic

F1=ACB’+DEF’+A’BCF+…

F2=C’B’+D’GH’+A’FG’+…

…Two-level Logic

Page 7: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

7 © Adam Teman, 2018

Two-Level Logic• During elaboration, primary inputs and outputs (ports)

are defined and sequential elements (flip-flops, latches)

are inferred.

• This results in a set of combinational logic clouds with:• Input ports and register outputs are inputs to the logic

• Output ports and register inputs are the outputs of the logic

• The outputs can be described as Boolean functions of the inputs.

• The goal of Boolean minimization is to reduce

the number of literals in the output functions.

• Many different data structures are used to represent

the Boolean functions:• Truth tables, cubes, Binary Decision Diagrams,

equations, etc.

• A lot of the research was developed upon SOP or POSrepresentation, which is better known as “Two-Level Logic”

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

x1

x2

x3

f = x1x2

B

B

C

C

C

D

D

F

A

A

D

F

CD

ABD

ABC

Page 8: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

8 © Adam Teman, 2018

Two-Level Logic Minimization

• In our freshman year we learned about Karnaugh maps:

• For n inputs, the map contains 2n entries

• Objective is to find the minimum prime cover

• However…• Difficult to automate (NP-complete)

• Number of cells is exponential (<6 variables)

• A different approach is the Quine-McCluskey method• Easy to implement in software

• BUT computational complexity too high

• Some Berkeley students fell asleep while solving a Quine-McCluskey exercise.

They needed a shot of Espresso.

AB 00 01 11 10

X 1 0 1

0 1 1 1

0 X X 0

0 1 0 1

00

01

11

10 C

CD

A

D

B

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 9: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

9 © Adam Teman, 2018

Espresso Heuristic Minimizer

• Start with an SOP solution.• Expand

• Make each cube as large as possible without covering a point in the OFF-set.

• Increases the number of literals (worse solution)

• Irredundant• Throw out redundant cubes.

• Remove smaller cubes whose points are covered by larger cubes.

• Reduce• The cubes in the cover are reduced in size.

• In general, the new cover will be different from the initial cover.• “expand” and “irredundant” steps can possibly find out a new way to cover

the points in the ON-set.

• Hopefully, the new cover will be smaller.

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

ESPRESSO(F) {do {

reduce(F);expand(F);irredundant(F);

} while (fewer terms in F);verify(F);

}

Page 10: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

© Adam Teman, 2018

Espresso Example

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

Initial Set of Primes found bySteps1 and 2 of the Espresso

Method

4 primes, irredundant cover,but not a minimal cover!

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

Result of REDUCE:Shrink primes while still

covering the ON-set

Choice of order in which to perform shrink is important

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

ESPRESSO(F) {do {

reduce(F);expand(F);irredundant(F);

} while (F smaller);verify(F);

}

f AC CD AC CD= + + +

f AC ACD AC ACD= + + +

Page 11: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

© Adam Teman, 2018

Espresso Example

Second EXPAND generates adifferent set of prime implicants

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

IRREDUNDANT COVER found byfinal step of espresso

Only three prime implicants!

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

ESPRESSO(F) {do {

reduce(F);expand(F);irredundant(F);

} while (F smaller);verify(F);

}

f AC AD AC CD= + + +

f AC AD CD= + +Only 6

literals!

Page 12: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

12 © Adam Teman, 2018

Multi-level Logic Minimization

• Two-level logic minimization has been widely researched

and many famous methods have come out of it.• However, often it is better and/or more practical to use

many levels of logic (remember logical effort?).

• Therefore, a whole new optimization regime, known as

multi-level logic minimization was developed.• We will not cover multi-level minimization in this course,

however, you should be aware that the output of logic

minimization will generally be multi-level and not two-level.

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 13: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

13 © Adam Teman, 2018

Multi-level Logic Minimization

• For example:• Given the following logic set:

• Multi-level Logic Minimization can result in:

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

t1 = a + bc;t2 = d + e;t3 = ab + d;t4 = t1t2 + fg;t5 = t4h + t2t3;F = t5’;

d+e

a+bc

t5’

t1t2 + fg

F

ab+d

t4h + t2t3

17

Literals

t1 = d + e;t2 = b + h;t3 = at2 + c;t4 = t1t3 + fgh;F = t4’;

13

Literals

d+e

b+h

t4’

at2 +c

t1t3 + fgh F

Page 14: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

14 © Adam Teman, 2018

Binary Decision Diagrams (BDD)

• BDDs are DAGs that represent the truth table of a given function

0 1

1 0

0 1 0 1

0 1 0

x1

x2 x2

x3x3

f(x1,x2,x3)

Root node

~(x2x3) x2 ~x3

~x3

~x3x3 x3

11 010 0

100 1 1

f(x1, x2, x3) = ~x1~x2~x3 + ~x1~x2x3 + ~x1x2~x3 + x1x2~x3

x1 x2 x3 f(x1x2x3)

0 0 0 1

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 1

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 15: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

15 © Adam Teman, 2018

Binary Decision Diagrams (BDD)

• The Shannon Expansion of a function relates the function to its cofactors:• Given a Boolean function f(x1,x2,…,xi,…,xn)

• Positive cofactor: fi1 = f(x1,x2,…,1,…,xn)

• Negative cofactor: fi0 = f(x1,x2,…,0,…,xn)

• Shannon’s expansion theorem states that• f = xi’ fi

0 + xi fi1

• f = (xi + fi0 )(xi’ + fi

1 )

• This leads to the formation of a BDD:• Example: f = ac + bc + a’b’c’

= a’ (b’c’ + bc) + a (c + bc)

= a’ (b’c’ + bc) + a (c)

b’c’ + bc c

a

f

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 16: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

16 © Adam Teman, 2018

Reduced Ordered BDD (ROBDD)

• BDDs can get very big.• So let’s see if we can provide a reduced representation.

• Reduction Rule 1: Merge equivalent leaves

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

aa a

1

x1

x2 x2

x3x3

f(x1,x2,x3)

~(x2x3) x2 ~x3

~x3 ~x3x3 x3

0

f(x1, x2, x3) = ~x1~x2~x3 + ~x1~x2x3 + ~x1x2~x3 + x1x2~x3 = ~x1~x2 + ~x1x2~x3 + x1x2~x3

x1

x2 x2

x3x3

f(x1,x2,x3)

~(x2x3) x2 ~x3

~x3 ~x3x3 x3

1111 0 00

Page 17: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

17 © Adam Teman, 2018

Reduced Ordered BDD (ROBDD)

• BDDs can get very big.• So let’s see if we can provide a reduced representation.

• Reduction Rule 2: Merge isomorphic nodes

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

y

x

z

x

y

x

z

x

1

x1

x2 x2

x3x3

f(x1,x2,x3)

~(x2x3) x2 ~x3

~x3 ~x3x3 x3

0 1

x1

x2 x2

x3x3

f(x1,x2,x3)

~(x2x3) x2 ~x3

~x3x3

0

Page 18: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

18 © Adam Teman, 2018

Reduced Ordered BDD (ROBDD)

• BDDs can get very big.• So let’s see if we can provide a reduced representation.

• Reduction Rule 3: Eliminate Redundant Tests

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

y

x

y

1

x1

x2 x2

x3x3

f(x1,x2,x3)

~(x2x3) x2 ~x3

~x3x3

0 1

x1

x2 x2

f(x1,x2,x3)

~(x2x3) x2 ~x3

~x3

0

x3f(x1, x2, x3) = ~x1~x2 +

~x1x2~x3 + x1x2~x3

Page 19: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

19 © Adam Teman, 2018

Binary Decision Diagrams (BDD)

• Some benefits of BDDs:• Check for tautology is trivial.

• BDD is a constant 1.

• Complementation.• Given a BDD for a function f, the BDD for f’ can be

obtained by interchanging the terminal nodes.

• Equivalence check.• Two functions f and g are equivalent if their BDDs (under

the same variable ordering) are the same.

• An Important Point:• The size of a BDD can vary drastically if the order

in which the variables are expanded is changed.

• The number of nodes in the BDD can be

exponential in the number of variables in the

worst case, even after reduction.

f = ab+a’c+a’bd

c

a

b b

c c

d

0 1

c+bd b

root node

c+d

d

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 20: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

1

Boolean

Minimization

2

Constraint

Definition

3

Technology

Mapping

4

Verilog for

Synthesis

5

Post-Synthesis

Optimization

Constraint Definition

20

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 21: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

21 © Adam Teman, 2018

Constraint Definition

• Following Elaboration, the design is loaded into the synthesis tool and stored inside a data structure.

• Hierarchical ports (inputs/outputs) and registers can be accessed by name.

• At this point, we can load the design constraints in SDC format, as we will learn in Lecture 5.

• For example, to create a clock and define the target frequency:

• Carefully check that all constraints were accepted by the tool!

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

set in_ports [get_ports IN*]set regs [get_cells –hier *_reg]

read_sdc –verbose sdc/constraints.sdc

create_clock –period $PERIOD –name $CLK_NAME [get_ports $CLK_PORT]

Page 22: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

Technology Mapping

22

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

1

Boolean

Minimization

2

Constraint

Definition

3

Technology

Mapping

4

Verilog for

Synthesis

5

Post-Synthesis

Optimization

Page 23: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

23 © Adam Teman, 2018

Technology mapping

• Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit.

• Why technology mapping?• Straight implementation may not be good.

• For example, F=abcdef as a 6-input AND gate causes a long delay.

• Gates in the library are pre-designed, they are usually optimized in terms of area, delay, power, etc.

• Fastest gates along the critical path, area-efficient gates (combination) off the critical path.

• Can apply a minimum cost tree-covering algorithm to solve this problem.

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 24: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

24 © Adam Teman, 2018

Technology Mapping Algorithm

• Using a recursive tree-covering algorithm, we can easily, and almost optimally, map a logic network to a technology library.

• This process incurs three steps:• Map netlist and tech library to simple gates

• Describe the netlist with only NAND2 and NOT gates

• Describe SC library with NAND2 and NOT gates and associate a cost with each gate

• Tree-ifying the input netlist• Tree covering can only be applied to trees!

• Split tree at all places, where fanout > 2

• Minimum Cost Tree matching• For each node in your tree, recursively find the minimum cost target pattern at that

node.

• Let us briefly go through these steps

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 25: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

25 © Adam Teman, 2018

1. Simple Gate Mapping

• Apply De Morgan laws to your Boolean function to make it a collection of NAND2 and NOT gates.• Let’s take the example of multi-level logic minimization:

t1 = d + e;t2 = b + h;t3 = at2 + c;t4 = t1t3 + fgh;F = t4’;

( )

( )

( )( )

( )

( )( )

1

2

3 2 2 2

4 1 3 1 3

4

NAND ,

NAND ,

NAND NAND , ,

NAND ,

NAND NAND , ,

t d e d e

t b h b h

t at c at c a t c

t t t fgh t t fgh

fgh fh g fh g f h g

F t

= + =

= + =

= + = =

= + =

= = =

=

F

f

g

d

e

h

b

a

c

t2

t1

t3

fgh

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 26: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

26 © Adam Teman, 2018

1. Simple Gate Mapping

• And then, given a set of gates (standard cell library) with cost metrics (area/delay/power):

• We need to define the gates with the same NAND2/NOT set:

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

inv(1) nand3 (3)

nor2(2)nor3 (3)

nand2(2)

oai22 (4)aoi21 (3)

xor (5)

Page 27: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

27 © Adam Teman, 2018

2. Tree-ifying

• To apply a tree covering algorithm, we must work on a tree!• Is any given logic network a tree?

• No!

• We must break the tree at any node with fanout>2

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

We get 3 trees

Page 28: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

28 © Adam Teman, 2018

3. Minimum Tree Covering

• Now, we can apply a recursive algorithm to achieve a minimum cover:• Start at the output of the graph.

• For each node, find all the matching target patterns.

• The cost of node i for using gate g is:

• where ki are the inputs to gate g.

• For simplicity, we will redraw our graph and show an example:

• Every NOT is just an empty circle:

• Every NAND is just a full circle:

• Every input is just a box:

( ) ( ) ( ) cost min cost costk i iki g k= +

i

gi

k1 k2

k inputs to gi

I

N

A

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

Page 29: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

© Adam Teman, 2018

3. Minimum Tree Covering - Example

A B

C D

F

I

N

A

I N

NB

C D

f

w

zy

x

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

I N N

I N

I

II

N

I

NI

NOT NAND2 AND2 NOR2 AOI21

66

4

32

f: NOT 2 + min(w)

AND2 4 + min(y)+min(z)

AOI21 6 + min(x)

w: NAND2 3 + min(y)+min(z)

y: NOT 2

z: NAND2 3 + min(x)

x: NAND2 3

= 3 + 3 = 6

= 3 + 2 + 6 = 11

= 2 + 11 = 13

= 4 + 2 + 6 = 12

= 6 + 3 = 9AOI21

NAND2

Page 30: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

The Chip Hall of Fame

• Since we’re speaking about synthesis,

how about a very famous synthesizer

• Used in Texas Instrament’s “Speak & Spell”

and used by E.T. to “phone home”

• The first single-chip speech synthesizer.

• Release date: 1978 Chip Size: 44 mm2

• The sound emerges from a combination of buzzing,

hissing and popping.

2017 Inductee to the IEEE Chip Hall of Fame

Page 31: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

Verilog for Synthesis -revisited

31

1

Boolean

Minimization

2

Constraint

Definition

3

Technology

Mapping

4

Verilog for

Synthesis

5

Post-Synthesis

Optimization

Page 32: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

32 © Adam Teman, 2018

Some things we may have missed• Now that we’ve seen how synthesis works, let’s revisit some of

the things we may have skipped or only briefly mentioned earlier…

• Let’s take a simple 4→2 encoder as an example:• Take a one-hot encoded vector and output the position of the ‘1’ bit.

• One possibility would be to describe this logic with a nested if-else block:

• The result is known as “priority logic”• i.e., some bits have priority over others…

always @(x) begin : encode if (x == 4'b0001) y = 2'b00; else if (x == 4'b0010) y = 2'b01; else if (x == 4'b0100) y = 2'b10; else if (x == 4'b1000) y = 2'b11; else y = 2'bxx;

end

Page 33: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

33 © Adam Teman, 2018

Some things we may have missed

• It would have been better to use a case construct:• All cases are

matched in parallel

• And better yet, synthesiscan optimize away theconstants and other Boolean equalities:

always @(x) begin : encode case (x)4’b0001: y = 2'b00; 4’b0010: y = 2'b01; 4'b0100: y = 2'b10; 4'b1000: y = 2'b11; default: y = 2'bxx;

endcaseend

Page 34: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

34 © Adam Teman, 2018

Some things we may have missed

• In the previous example, if the encoding was wrong (i.e., not one-hot), we would have propagated an x in the logic simulation.• But what if we guarantee that the input was one hot encoded?

• Then we could write our code differently…

• In fact, we have implemented a “priority decoder” (the least significant ‘1’ gets priority)

always @(x) begin : encode if (x[0]) y = 2'b00; else if (x[1]) y = 2'b01; else if (x[2]) y = 2'b10; else if (x[3]) y = 2'b11; else y = 2'bxx;

end

Page 35: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

35 © Adam Teman, 2018

A few points about operators

• Logical operators map into primitive logic gates

• Arithmetic operators map into adders, subtractors, …• Unsigned or signed 2’s complement

• Model carry: target is one-bit wider that source

• Watch out for *, %, and /

• Relational operators generate comparators

• Shifts by constant amount are just wire connections• No logic involved

• Variable shift amounts a whole different story → shifter

• Conditional expression generates logic or MUX

Y = ~X << 2

X[3]

Y[0]

Y[1]

Y[2]X[0]

X[1]

X[2]

Y[3]

Y[4]

Y[5]

Page 36: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

36 © Adam Teman, 2018

Datapath Synthesis

• Complex operators (Adders, Multipliers, etc.) are implemented in a special way

• Pre-written descriptions can be found in Synopsys DesignWare or Cadence ChipWare IP libraries.

Page 37: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

37 © Adam Teman, 2018

Clock Gating

• As you know, since a clock is continuously toggling, it is a major consumer of dynamic power.• Therefore, in order to save power, we will try to turn off the

clock for gates that are not in use.

• Block level (Global) clock-gating• If certain operating modes do not use an entire

module/component, a clock gate should be defined in the RTL.

• Register level (Local) clock-gating• However, even at the register level,

if a flip-flop doesn’t change it’s output, internal power is still dissipated due to the clock toggling.

• This is very typical of an enabled signal sampling, and therefore can be automatically detected and gated by the synthesis tool. clk

qn

qddoutdin

en

clk

clk

qn

qd doutdin

en

clk

Local Clock Gating

FSM

Execution

Unit

Memory

Controlclk

enM

enE

enF

Global Clock Gating

Page 38: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

38 © Adam Teman, 2018

Clock Gating

• Local clock gating: 3 methods• Logic synthesizer finds and

implements local gating opportunities

• RTL code explicitly specifies clock gating

• Clock gating cell explicitly instantiated in RTL

• Global clock gating: 2 methods• RTL code explicitly specifies

clock gating

• Clock gating cell explicitly instantiated in RTL

• Conventional RTL Code

• Low Power Clock Gated RTL

• Instantiated Clock Gating Cell

//always clock the registeralways @ (posedge clk) begin

if (enable) q <= din; end

//only clock the ff when enable is trueassign gclk = enable && clk; always @ (posedge gclk) begin

q <= din;end

//instantiate a clock gating cellclkgx1 i1 (.en(enable), .cp(clk), .gclk_out(gclk));always @ (posedge gclk) begin

q <= din; end

Page 39: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

39 © Adam Teman, 2018

Clock Gating – Glitch Problem

• What happens if there is a glitch on the enable signal?

clk

en

gclk

Ah, we live in a perfect world! ☺

Not so

Fast!

What if the glitch

happened during

the high phase?

Maybe the world aint

so perfect after all…

Page 40: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

40 © Adam Teman, 2018

Solution: Glitch-free Clock Gate

• By latching the enable signal during the positive phase, we can eliminate glitches:

clk

en

en_out

gclk

//clock gating with glitch prevention latchalways @ (enable or clk) begin

if (!clk) en_out <= enable;

endassign gclk = en_out && clk;

Page 41: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

41 © Adam Teman, 2018

Merging clock enable gates

• Clock gates with common enable can be merged• Lower clock tree power, fewer gates

• May impact enable signal timing and skew.

E

E

E

Eenable

clk

en

clk

E

Page 42: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

42 © Adam Teman, 2018

Data Gating

• While clock gating is very well understood and automated, a similar situation occurs due to the toggling of data signals that are not used.

• These situations should be recognized and data gated.

assign shift_in_A = A && shift_add;assign shift_in_B = B && shift_add;assign shift_out = shift_in_A << shift_in_B;assign out = shift_add ? shift_out : add_out;

assign add_out = A+B;assign shift_out = A<<B;assign out = shift_add ? shift_out : add_out;

Page 43: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

43 © Adam Teman, 2018

Design and Verification – HDL Linting

• HDL Linting tools provide a quick easy check of likely coding inconsistencies:• Simulation problems• Synthesis Problems • Simulation Synthesis mismatches• Clock gating• Latch inference• Clock Domain Crossing issues• Nonsensical assignments / implicit bit widths issues

• Not for checking syntactic correctness• Use your simulator for that.

(Will generally be more helpful)

• Alternatively some synthesis tools will give you basic lint warnings• For simulation-synthesis mismatch errors

43

always @(a)

z = a & b;

Simulation/Synthesis

Miss-matches

always @(a or b or c)

if (c) z = a & b;

Latch Inference

assign clka = clk & cond;

always @(posedge clka)

z <= a & b;

Clock Gating

Page 44: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

Timing Optimization

44

Syntax

Analysis

Elaboration

and Binding

Pre-mapping

Optimization

Technology

Mapping

Constraint

Definition

Post-mapping

Optimization

Report and

export

Library

Definition

1

Boolean

Minimization

2

Constraint

Definition

3

Technology

Mapping

4

Verilog for

Synthesis

5

Post-Synthesis

Optimization

Page 45: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

45 © Adam Teman, 2018

How can we optimize timing?

• There are many ‘transforms’ that the synthesizer applies to the logic to improve the cost function:• Resize cells

• Buffer or clone to reduce load on critical nets

• Decompose large cells

• Swap connections on commutative pins or among equivalent nets

• Move critical signals forward

• Pad early paths

• Area recovery

• Simple example:• Double inverter removal transform:

Delay = 4

Delay = 2

Page 46: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

46 © Adam Teman, 2018

Resizing, Cloning and Buffering

• Resize a logic gate to better drive a load:

• Or make a copy (clone of the gate) to distribute the load:

• Or just buffer the fanout net:

0

0.01

0.02

0.03

0.04

0.05

0 0.2 0.4 0.6 0.8 1

load

d

A B C

b

ad

e

f

0.2

0.2

0.3

?b

aA

0.035b

aC

0.026

b

a

d

e

f

g

h

0.2

0.2

0.2

0.2

0.2

?

b

a

d

e

f

g

h

A

B

b

a

d

e

f

g

h0.1

0.2

0.2

0.2

0.2

B

B

0.2

Page 47: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

47 © Adam Teman, 2018

Redesign Fan-In/Fan-out Trees

• Redesign Fan-In Tree

• Redesign Fan-Out Tree

a

c

d

b eArr(b)=3

Arr(c)=1

Arr(d)=0

Arr(a)=4

Arr(e)=61

1

1 c

d

e

Arr(e)=51

1b1

a

1

1

1

3

1

1

1

Longest Path = 5

1

1

1

3

1

2

Longest Path = 4

Slowdown of

buffer due to

load

Page 48: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

48 © Adam Teman, 2018

Decomposition and Swapping

• Consider decomposing complex gates into less complex ones:

• Swap commutative pins:• Simple sorting on arrival times and delays can help

c

a

b

2

1

01

1

1

3

2

a

c

b2

1

0

1

1

2

1

5

Page 49: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

49 © Adam Teman, 2018

Retiming

• Given the following network:

• How would you meet the 10ns clock cycle time?

• Re-order sequential elements and combinational logic

clock

FF

D Q

FF

D Q

FF

D Q

6 4 2 4 4

Cycle = 10

clock

FF

D Q

FF

D Q

FF

D Q

6 4 2 4 4

Cycle = 10

Page 50: Digital VLSI Design Lecture 1: Introduction€¦ · Lecture 4: Logic Synthesis Part 2 Semester A, 2018-19 Lecturer: Dr. Adam Teman. 3 ©Adam Teman, 2018 What have we discussed so

50 © Adam Teman, 2018

Main References

• Rob Rutenbar “From Logic to Layout”

• IDESA

• Rabaey, “Low Power Design Essentials”

• vlsicad.ucsd.edu ECE 260B – CSE 241A

• Roy Shor, BGU

• Synopsys slides


Recommended