automatic controller detection for large scale rtl...

15
Automatic Controller Detection for Large Scale RTL Designs Wei Song and Jim Garside School of Computer Science The University of Manchester

Upload: others

Post on 28-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Automatic Controller Detection for Large Scale RTL Designs

Wei Song and Jim Garside

School of Computer Science

The University of Manchester

Page 2: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Motivation

• Problem

– Matching of coding styles (DC: Design Compiler).

– Only Finite State Machines (FSMs)

• Target

– An algorithm that can detect ALL controllers.

• Solution

– Signal-level data flow graph

– Common pattern of controllers

2 DSD-SEAA CONGRESS 2013

Page 3: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Traffic Light Controller

DSD-SEAA CONGRESS 2013 3

RY

: 3 sec

GY

: 5 sec

R: 50 sec

G: 50 sec

cnt

state

cnt == 0

R G RY || GY

red

green

yellow

Page 4: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

DC: Matching of Coding Styles

DSD-SEAA CONGRESS 2013 4

• Never be assigned by a value other than predefined states.

• Can be used in only == and != statements

• Never be used as a port

Not an FSM

(Recognize all the counters used as controllers.)

RY

: 3 sec

GY

: 5 sec

R: 50 sec

G: 50 sec

cnt

state

cnt == 0

R G RY || GY

red

green

yellow

Page 5: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Criteria of Controllers

DSD-SEAA CONGRESS 2013 5

• Requirement 1

– A self-loop.

• Requirement 2

– A controlling output.

• Requirement 3

– No data input other than itself or constants.

Page 6: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Examples of Counters

DSD-SEAA CONGRESS 2013 6

Not a controller. Does not meet Requirement 3.

Not a controller. Does not meet Req. 2 & 3.

A controller.

pc instructionmem[pc]/control

+1/data

jump/data

acc

data

datadata

acc’= acc + data

cnt

+1/data

startcontrol

flagcnt == 4/control

Page 7: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Detection Flow

DSD-SEAA CONGRESS 2013 7

Multi-file Verilog RTL designs

Hierarchical internal abstract sematic tree

Hierarchical signal-level data flow graphs (DFGs) (Connections between signals)

Register relation graph (Connections between Flip-Flops)

Controller detection and report

RTL RTL RTL

Parser

AST

Signal level DFG

RRG

Controllers

Page 8: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Signal-Level DFG

DSD-SEAA CONGRESS 2013 8

RY

: 3 sec

GY

: 5 sec

R: 50 sec

G: 50 sec

cnt

state

cnt == 0

R G RY || GY

red

green

yellow

I I

FF

FF

O O O

statecnt

state_nxt

yellowgreenred

rstn clk

I

FF

O

i_port

o_port

combi_block

seq_block

reset

clock

control

data

Page 9: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Type Estimation

DSD-SEAA CONGRESS 2013 9

if (a == 0) case (state) dout = mem[addr]; sum = da * time + extra; dout = b > 3 ? da : db; if(b > 3 ? da : db) // control has a higher priority

Page 10: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Register Relation Graph (RRG)

DSD-SEAA CONGRESS 2013 10

I I

FF

FF

O O O

statecnt

state_nxt

yellowgreenred

rstn clk

I I

FF

FF

O O O

state

cnt

yellowgreenred

rstn clk

Both state and cnt are controllers.

Page 11: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Dynamic Programming

DSD-SEAA CONGRESS 2013 11

A B C B = A==0 ? 5 : 12; C = B + 10;

C = (A==0 ? 5 : 12) + 10;

Partial path reduction

regB

FF

O

FF

FF

FF

FF

FF

FF

FF

FF

FF

data

data

data

control

control

control

control

data

data

data

regA

outD

regC

regB

regC

regB

regC

regB

regC

regC

comJ

comJ

comJ

comJ

comI

comF

comH

comH

comG

comE

FF

FF

FF

O

regA

regB

regC

outD

comE

comF

comG

comH

comI

comJ

Page 12: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Test Cases

DSD-SEAA CONGRESS 2013 12

Design

Name Description Reason to choose No. of

Regs

OR1200 A 32-bit 5-stage

OpenRISC

microprocessor

Data path controlled PC

Scan chain

Combinational forward loop

124

Reed-

Solomon A claimed industrial

standard Reed-

Solomon decoder IP

A not so well-written design

Single block FSMs with

irrelevant signal assignments

325

H.264/AVC A 196K gate

H.264/AVC baseline

decoder

A well-written and large-

scale design 855

Page 13: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Test Results

DSD-SEAA CONGRESS 2013 13

Name Time Reported Verified FSM Counter Flag Error Rate

OR1200 1s 19 17 7 5 5 2 89%

Reed-

Solomon 2.0s 56 54 6 36 12 2 96%

H.264/AVC 7.1s 55 49 13 30 6 6 89%

Environment: Intel CoreTM 2 Duo 3.00 GHz PC with 2GB memory All FSMs are detected with a small number of false errors. Limitations: Combinational loops, separated assignment (a[0]=b; a[1]=c;), Rom-style tables, etc.

Page 14: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Conclusion

DSD-SEAA CONGRESS 2013 14

• A pattern-matching algorithm has been proposed to detect all controllers including FSM, controlling counters and flags.

• Advantages:

– Pattern matching

– No restriction on coding styles

– Recognize controlling counters

– Automatic type estimation

Page 15: Automatic Controller Detection for Large Scale RTL Designswsong83.github.io/publication/eda/dsd2013_ppt.pdf · Automatic Controller Detection for Large Scale RTL Designs Wei Song

Thanks for your listening! Any questions?

DSD-SEAA CONGRESS 2013 15