280 likes | 296 Views
Convolution circuits synthesis. Perkowski. FIR-filter like structure. a4. 0. 0. 0. b2. b1. b4. b3. +. +. +. a4*b4. Think what you can do in all possible ways with two vectors of items (numbers)?. 1. Dot product 2. Convolution (polynomial multiplication) 3. Cartesian Product
E N D
Convolution circuits synthesis Perkowski
FIR-filter like structure a4 0 0 0 b2 b1 b4 b3 + + + a4*b4
Think what you can do in all possible ways with two vectors of items (numbers)? • 1. Dot product • 2. Convolution (polynomial multiplication) • 3. Cartesian Product • 4. Kronecker Product • 5. Other? Think what you can do in all possible ways with two matrices of items (numbers)?
Convolution • Perhaps the most important operation on data. • Not related to operators that operate on items. • It is a pattern of moving data and operating on them • Although first systolic processors were not for convolution, it is the standard and common object of systolic, cellular and parallel design of algorithms and hardware. • Every image processing project such as Hadamard, Fourier, Hough or other transform includes convolution – like circuit/system design in one way or another. • This part of design is truly creative.
I have two vectors A=(a1,a2,a3,a4) and B=(b1,b2,b3,b4) a3 a4 0 0 b2 b1 b4 b3 + + + a4*b4 a3*b4+a4b3
a2 a3 a4 0 b2 b1 b4 b3 + + + a4*b4 a3*b4+a4b3 a4*b2+a3*b3+a2*b4
a1 a2 a3 a4 b2 b1 b4 b3 + + + a4*b4 a3*b4+a4b3 a4*b2+a3*b3+a2*b4 a1*b4+a2*b3+a3*b2+a4*b1
0 a1 a2 a3 b2 b1 b4 b3 + + + a4*b4 a3*b4+a4b3 a4*b2+a3*b3+a2*b4 a1*b4+a2*b3+a3*b2+a4*b1 a1*b3+a2*b2+a3*b1
We insert Dffs to avoid many levels of logic a2 a3 a4 b2 b1 b4 b3 + + + a4*b4 a4*b3 a4*b2 a4*b1
a1 a2 a3 b2 b1 b4 b3 + + + a4*b4 a4*b3+a3b4 a4*b2+a3b3 a3b1 a4*b1+a3b2
0 a1 a2 b2 b1 b4 b3 + + + a4*b4 a4*b3+a3b4 a4*b2+a3b3+a2b4 a4*b1+a3b2+a2b3 a2b1 a3b1+a2b2 The disadvantage of this circuit is broadcasting
We insert more Dffs to avoid broadcasting a2 a3 a4 0 0 0 b2 b1 b4 b3 + + + a4*b4 0 0 0
a1 a2 a3 a4 0 0 b2 b1 b4 b3 + + + a4*b4 a3b4 a4b3 0 0 Does not work correctly like this, try something new….
a1 a2 a3 a4 0 0 b2 b1 b4 b3 0 0 a1b2 a2b1 0 a1b3 a2b2 a3b1 a1b4 a2b3 a3b2 a4b1 a2b4 a3b3 a4b2 0 a3b4 a4b3 0 0 Second sum a4*b4 0 0 0 First sum
FIR-filter like structure, assume two delays b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +
b2 b1 b4 b3 + + +