35
Tiny Triplet Finder Jinyuan Wu, Z. Shi Dec. 2003

Tiny Triplet Finder

  • Upload
    kellsie

  • View
    24

  • Download
    0

Embed Size (px)

DESCRIPTION

Tiny Triplet Finder. Jinyuan Wu, Z. Shi Dec. 2003. Hit data come out of the detector planes in random order. Hit data from 3 planes generated by same particle tracks are organized together to form triplets. Hits, Hit Data & Triplets. - PowerPoint PPT Presentation

Citation preview

Page 1: Tiny Triplet Finder

Tiny Triplet Finder

Jinyuan Wu, Z. ShiDec. 2003

Page 2: Tiny Triplet Finder

Hits, Hit Data & Triplets• Hit data come out of

the detector planes in random order.

• Hit data from 3 planes generated by same particle tracks are organized together to form triplets.

Page 3: Tiny Triplet Finder

• Three data items must satisfy the condition: xA+ xC = 2 xB.

• A total of N3 combinations must be checked (e.g. 5x5x5=125).

• Three layers of loops if the process is implemented in software.

• Large silicon resource may be needed without careful planning.

Triplet Finding

Plane A Plane B Plane C

Page 4: Tiny Triplet Finder

Tiny Triplet Finder (Animation)

x1

x2

x3Implement x1 and x3, the plane x2 is for eye-

guide only.

(1) Fill in hits to x1 and x3

planes.

(2) Cycle through x2 hits.

Line matched.

Page 5: Tiny Triplet Finder

Tiny Triplet Finder

Bit Array/Shifter CBit Array/Shifter A

Bit-wise Logic Block

Hash Sorter CHash Sorter A

Page 6: Tiny Triplet Finder

TTF OperationsPhase I: Filling Bit Arrays

Note: Flipped Bit Order

Physical Planes

Bit Array/Shifters

For any hit… Fill a corresponding logic cell.

• xA+ xC = 2 xB

• xA= - xC + constant

Page 7: Tiny Triplet Finder

TTF Operations Phase II: Making Match

For any center plane hit…

Logically shift the

bit array.

Perform bit-wise AND in this range.

Triplet is found.

Physical Planes

Bit Array/Shifters

Page 8: Tiny Triplet Finder

TTF Operations Phase II: Making Match (Next Hit)

Triplet is found through bit-wise AND.

Fake triplet may exist. It will be cut out in the

later stages.

Physical PlanesLoop to next center plane hit…

Logically shift the

bit array.

Bit Array/Shifters

Page 9: Tiny Triplet Finder

TTF OperationsPhase II: Making Match (More…)

Physical PlanesLoop to next center plane hit…

Logically shift the

bit array.Triplet is found through bit-wise AND.

Bit Array/Shifters

Page 10: Tiny Triplet Finder

TTF Operations Phase II: Making Match (and More…)

Physical PlanesLoop to next center plane hit…

Logically shift the

bit array.Triplet is found through bit-wise AND.

Bit Array/Shifters

Page 11: Tiny Triplet Finder

TTF Operations Phase II: Making Match (Last Hit)

Physical PlanesLoop to next center plane hit…

Logically shift the

bit array.

Triplet is found through bit-wise AND.

Bit Array/Shifters

Page 12: Tiny Triplet Finder

Multiple Hits & TripletsKeep Them All

• Each bin may be filled with more than one hits.

• Hits data are kept in hash sorters – allowing multiple hits per bin.

• There are may be more than one match in each bit-wise AND operation.

• They are all sent out, one-by-one, to the later stages for fine cut and arbitration processes.

Page 13: Tiny Triplet Finder

Boundary IssuesBeyond Just Bit-wise AND

• When the track hits near the boundary of a bin, simple bit-wise AND may miss the triplet.

• The bit-wise OR-AND logic will cover the boundary.

• The logic cells in most of today’s FPGA’s have 4 inputs. So the OR-AND bit-wise logic doesn’t increase any resource usage.

Page 14: Tiny Triplet Finder

DA

BitLogic

KA

XB

EN

C KC

Pop

Halt

Bit64AQ

KS

WR

EN

SR

Bit64CQ

KS

WR

EN

SR

Hash2blk

DI QQK

PushPopWT

RePopSR

RDY

MD

Hash2blk

DI QQK

PushPopWT

RePopSR

RDY

MD

Cutand

Arbitration

QT

DA

EN

DB

RDYDCShiftReg.6 steps

D Q4

EN

FIFOInterface

HitFeeder A

QAD

EN

KA

Push

FIFOInterface

HitFeeder C

QCD

EN

KC

Push

A

FIFOInterface

HitFeeder B

SAD

EN

QB

Chk

SC

XB

172 LUT FF

92 LUT FF

192 LUT111 FF

77 LUT66 FF

77 LUT66 FF

Tiny Triplet Finder: Block Diagram

Page 15: Tiny Triplet Finder

Schematics

Page 16: Tiny Triplet Finder

Simulation(1) Filling hits on Plane A and C.

(2) Looping over hits on Plane B.

Pipelined internal operations…

Triplets are grouped together.

This combination is a fake triplet.

The extra combination halts the pipeline for proper operation.

Page 17: Tiny Triplet Finder

Logic Cell Usage• Both 64- and 128-bit

TTF designs fit $100 FPGA comfortably.

• A simple 64-bit Hough transform design is shown for scale.

• A $1200 FPGA is shown for scale.

EP2A40 ($1200)

EP1C12 ($118)

TTF64

TTF128

Hough Trans. 64

Page 18: Tiny Triplet Finder

• Use 4 bit arrays.• There are 3 constraints

total.• More constraints help

to eliminating fake tracks.

• It is possible to use bit-wise majority logic (such as 3-out-of-4) to accommodate detector inefficiency issues.

Pentlet FindingBeyond Just Bit-wise AND

Plane A Plane C Plane EPlane B Plane D

Page 19: Tiny Triplet Finder

Comparison of Baseline and Tiny Triplet Finder: Data Flow

FIFOAM:

Long Doublet

FIFO

Station N-1bend

Station N-1Non-bend

Station NNon-bend

FIFOAM:

Triplet

FIFO

FIFO FIFO

FIFO FIFO

FIFOAM:

Short Doublet

FIFO

AM: Short Doublet

AM: Short Doublet

Station Nbend

Station N+1bend

Station N+1Non-bend

Station N-1bend

Station N-1Non-bend

Station NNon-bend

FIFOFTF:

Triplet

FIFO

FIFO FIFO

FIFO FIFO

FIFO FIFO

Hash Sorter: Short Doublet

Station Nbend

Station N+1bend

Station N+1Non-bend

FIFO

Hash Sorter: Short Doublet

Hash Sorter: Short Doublet

HashSorter

HashSorter

Page 20: Tiny Triplet Finder

The End

Thanks

Page 21: Tiny Triplet Finder

Hash2blk

DI QQK

PushPopWT

RePopSR

RDY

MD

Cut,Arbitration

andCombine

QT

DA

EN

DT

RDYDCShiftReg.2 steps

D QQ

EN

FIFOInterface

HitFeeder A’

QAD

EN

KA

Push

77 LUT66 FF

Short Doublet Stage: 1 of 3 Identical Ones

TripletFeeder

SAD

EN

QT

Push

Station N-1Non-bend

FIFO FIFOHash Sorter: Short Doublet

Triplets In

Triplets Out

E P StnIDHitMap

y2y (8+3bits)

x1x (8+3bits)y1(400u)y1y (8+3bits) x1(400u)

y3y (8+3bits)

H

E P StnIDHitMap

y2y (8+3bits)

y1y (8+3bits)

y3y (8+3bits)

H

x1y (7bits)

x2y (7bits)

x3y (7bits)

x2y (7bits)

x3y (7bits)

Page 22: Tiny Triplet Finder

A3

A2

A1

A0S0,S1

K(8:0)

DI(27:0) DOB(27:0)

IdN(7:0)

CB8RECE

SR

Q

CB10ECE

Q

A0

A1

S0

COMP

AEQ

B

FDD Q

FDD Q

EN

FDD Q

FDD Q

EN

RAM512x18D

A

O

WEEN

D O

FDD Q

RAM256x36D

A

O

WEEN

D O

FDD Q

EN

RDY

MD

PUSH

POP

WT

REPOP

DUMPD

SRCLK

POPQ

PUSHQ

DIQ(27:0)

IdP(7:0) IdQ(7:0)

IdK(7:0) IdKQ(7:0)

EVeqEV(9:0)

EV(8:0)

Vertex II Implementation

Hash Sorter: Vertex-II Implementation

Page 23: Tiny Triplet Finder

A3

A2

A1

A0S0,S1

K(7:0)

DI(28:0) DOB(28:0)

IdN(6:0)

CB7RECE

SR

Q

CB9ECE

Q

A0

A1

S0

COMP

AEQ

B

FDD Q

FDD Q

EN

FDD Q

FDD Q

EN

RAM256x16D

A

O

WEEN

D O

FDD Q

RAM128x36D

A

O

WEEN

D O

FDD Q

EN

RDY

MD

PUSH

POP

WT

REPOP

DUMPD

SRCLK

POPQ

PUSHQ

DIQ(28:0)

IdP(6:0) IdQ(6:0)

IdK(6:0) IdKQ(6:0)

EVeqEV(8:0)

EV(7:0)

Cyclone Implementation

Hash Sorter: Cyclone Implementation

Page 24: Tiny Triplet Finder

Bit Array/shifterXILINX Implementation

D QWEA(3:0)

D QWEA(3:0)

D QWEA(3:0)

D QWEA(3:0)

• Each Bit Array/Shifter has 64 bins.

• Each bin is a 16-bit RAM (look-up table).

• The RAM operates like a D Flip-flop.

• Each xc2v1000 FPGA has 10,240 such RAM’s.

D QWEA(3:0)

D QWEA(3:0)

D QWEA(3:0)

D QWEA(3:0)

Page 25: Tiny Triplet Finder

Bit Array/shifterFilling the Hits

• Each hit is written into 8 to 16 different RAM’s with different addresses.

• One clock cycle (not 8 to 16) is used to fill a hit.

Page 26: Tiny Triplet Finder

Bit Array/shifterShift Reading

• With given addresses of the RAM’s, hit patterns appear at the outputs of the arrays.

• Changing addresses shifts the hit patterns.

• One array shifts in unit of 1 bin, the other in unit of 8 bins.

• The relative shift of the two patterns covers 128 bins.

• One clock cycle is used for a reading, regardless the distance of the relative shifting.

Page 27: Tiny Triplet Finder

Bit Array/shifterComments: Xilinx or Not

D QWEA(3:0)

D QWEA(3:0)

D QWEA(3:0)

D QWEA(3:0)

• Writing/reading operations need only single clock cycle.

• Storage and shifter are combined — big resource saving.

• Maximum 16 clock cycles are needed for resetting.

• Non-xilinx implementation: Additional 64x8=512 LE’s may be needed. But resetting needs only one clock cycle.

D QWEA(3:0)

D QWEA(3:0)

D QWEA(3:0)

D QWEA(3:0)

Page 28: Tiny Triplet Finder

• A triplet has two parameters.• With two hits in two planes, two parameters can be determined.

The 3rd hit in the 3rd plane will provide the first constraint.• Assume each parameter is sliced into 64 bins. (That’s not too

many.)• There are 64 x 64 = 4096 “roads”, i.e., possible track

configurations.• Any hit can belong to 64 possible roads. Two hits in two planes

have one common road. Three hits must have one common road to be in a triplet.

Challenge on Triplet Finding (1)The Facts in “Road” Language

Page 29: Tiny Triplet Finder

• It is possible to use (static) contents addressable memory (CAM) to implement triplet finding.

• Hit patterns are pre-stored in CAM.• When a hit pattern match the pre-stored one, the

address represent the road.• Each of 3 planes has 64 possible hit locations.

(64x64=4096 roads)• Assume one road can generate one hit pattern,

a CAM array with 64x3=192 input bits, 4096 words is needed.

• It can be done with 128 small CAM’s (32-bit 32-words). EPC20K1000E has 160. (80%)

• Oops: boundary issues have not be considered. (More patterns )

Challenge on Triplet Finding (2)A Possible Implementation Using CAM

CAMD( )

AWE

Match

Plane A Plane B Plane C

Road

CAMD( )

AWE

Match

CAMD( )

AWE

Match

Page 30: Tiny Triplet Finder

• Book a 2-D (64x64) histogram. Each bin of the histogram represent a road.

• Each hit from plane A, C or B increments the counts of the 64 bins in a row, column or diagonal.

• The bins with count 3 are valid triplet roads.• Each histogram bin is a counter plus selection

logic.• Assume each bin can be implemented with 4

Altera logic elements (LE’s).• 4096 bins need 16,384 LE’s, EPC20K1000E

has 38,400. (16,384/38,400 = 43%)• However: How to find the bins with count 3

and encode them is not trivial.

Challenge on Triplet Finding (3)A Possible Implementation Using Hough Transformation

Page 31: Tiny Triplet Finder

Silicon Usage (Estimate)

0

5000

10000

15000

20000

25000

30000

35000

40000

BaselineEPC20K1000

Current workxc2v1000

Total LEUsage

• The Tiny Triplet Finder (TTF) silicon usage is acceptable.

• The hash sorter silicon usage is acceptable.

• The Baseline, if not implemented automatically, could reduce the size a lot.

Page 32: Tiny Triplet Finder

RAMD

A

O

WEEN

D

CC8RLE

Q

L

CE

SR

A0

A1

A2

A3S

CB8SE

S1

CESS

Q FDD Q

CE

RAMD

A

O

WEEN

D O

NBin

DIDOB

IdNextFD

D Q

CE

Page 33: Tiny Triplet Finder

4

5

6

7

0

1

2

3

4

5

6

7

0

1

2

3

3210

7654

11109

15141312

8

0

1

2

3

0

1

2

3

0

1

2

3

0

1

2

3

0

1

2

3

0

1

2

3

Page 34: Tiny Triplet Finder

0

5

6

0

1

2

3

0

1

5

6

0

1

2

3

0

1

2

5

6

0

1

2

3

0

1

2

3

5

6

0

1

2

3

4

0

1

2

3

5

6

0

1

2

3

4

5

0

1

2

3

5

6

0

1

2

3

4

5

6

0

1

2

3

5

6

0

1

2

3

4

5

6

7

0

1

2

3

5

6

0

1

2

3

44

4’ 4’

4 4 4 4

7

4’ 4’ 4’

7 7 7 7

4 4

7 7 7

4’ 4’ 4’

Page 35: Tiny Triplet Finder

4

5

6

7

0

1

2

3 4

5

6

7

0

1

2

3

4

5

6

7

1

2

35

6

7

0

1

2

3

4

5

6

7

2

3

5

6

7

0

1

2

3

4

5

6

7

3

5

6

7

0

1

2

3

4

5

6

7

5

6

7

0

1

2

3

5

6

75

6

7

0

1

2

3

6

7

5

6

7

0

1

2

3

7

5

6

7

0

1

2

3

4’

4 4 4 4

4’ 4’ 4’

4

4’ 4’ 4’ 4’

4 4