digital signal processing with fpgas - indico.desy.de · •pipelining –shorten cp by inserting...

42
VODAFONE CHAIR Digital Signal Processing with FPGAs Emil Matus TU Dresden [email protected] Terascale Detector Workshop Dresden, March’19

Upload: others

Post on 20-Oct-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Digital Signal Processing with FPGAsEmil Matus

TU Dresden

[email protected]

Terascale Detector Workshop

Dresden, March’19

Page 2: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Outline

14/03/2019 2

• Digital filter: System theory Filter design Implementation FPGA HW design

Page 3: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

System Theory

14/03/2019 3

Page 4: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• DSP - Digital Signal Processing: use ‘digits’ to represent signals and systems

• 𝑠(𝑡) Analyzed time-continuous signal

• 𝑥(𝑡) Band-limited time-continuous signal

• 𝑥 𝑛𝑇 Time-discrete signal with sampling period 𝑇

• 𝑞(𝑛𝑇) Quantisation noise

DSP System using FPGA

14/03/2019Emil Matus – TU Dresden 4

FPGA

SensorAnalogSignal

Processing

Low PassFilter

Analog toDigital

Conversion

DigitalSignal

Processing

𝑠(𝑡) 𝑥 𝑛𝑇 + 𝑞(𝑛𝑇)𝑥(𝑡)

Page 5: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

FPGA

Time-Continuous Signal

14/03/2019Emil Matus – TU Dresden 5

SensorAnalogSignal

Processing

Low PassFilter

ADCDigitalSignal

Processing

𝑠(𝑡) 𝑥 𝑛𝑇 + 𝑞(𝑛𝑇)𝑥(𝑡)

𝑡

𝑠(𝑡)

𝜔

Time-continuous (noisy) signal Frequency-continuous spectrum

𝑆(𝜔)

Page 6: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

FPGA

Antialiasing Low-Pass Filter

14/03/2019Emil Matus – TU Dresden 6

SensorAnalogSignal

Processing

LP Filter𝐺(𝜔)

ADCDigitalSignal

Processing

𝑠(𝑡) 𝑥 𝑛𝑇 + 𝑞(𝑛𝑇)𝑥(𝑡)

𝑡

𝑥 𝑡 = 𝑔 𝑡 ∗ 𝑠(𝑡)

𝜔

𝑋 𝜔 = 𝐺 𝜔 . 𝑆 𝜔

𝐵−𝐵

Page 7: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

FPGA

Analog-Digital Conversion: Sampling + Quantisation

14/03/2019Emil Matus – TU Dresden 7

SensorAnalogSignal

Processing

Low PassFilter

ADCDigitalSignal

Processing

𝑠(𝑡) 𝑥 𝑛𝑇 + 𝑞(𝑛𝑇)𝑥(𝑡)

𝜔𝑆 = 2𝜋/𝑇

Sampling theorem: 𝜔𝑠 ≥ 2𝐵

𝑡

𝑥 𝑛𝑇 + 𝑞(𝑛𝑇)

𝑇

Δ

𝜔

𝐵−𝐵 0 𝜔𝑆

……

𝑋 𝜔 + 𝑄 𝜔

Page 8: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• DSP system function 𝑆{. } – transforms input to output:

FPGA

DSP: System Function

14/03/2019Emil Matus – TU Dresden 8

SensorAnalogSignal

Processing

Low PassFilter

ADCDigitalSignal

Processing

𝑠(𝑡) 𝑥 𝑛𝑇 + 𝑞(𝑛𝑇)𝑥(𝑡)

𝑇

𝑦 𝑛𝑇 = 𝑆 𝑥 𝑛𝑇 ≡ 𝑦 𝑛 = 𝑆 𝑥 𝑛

𝑆𝑥 𝑛 y 𝑛

Page 9: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• LTI System - 𝑁𝑡ℎ order linear difference equation, 𝑏𝑘 , 𝑎𝑘 ∈ ℝ:

• Time-delay:

• Multiplication by constant:

• Addition:

Linear Time-Invariant (LTI) System

14/03/2019Emil Matus – TU Dresden 9

𝑦 𝑛 =

𝑘=0

𝑁−1

𝑏𝑘𝑥(𝑛 − 𝑘) −

𝑘=1

𝑁−1

𝑎𝑘𝑦(𝑛 − 𝑘)

𝑥(𝑛 − 𝑘)𝑥(𝑛)

𝑘-times delay

𝑥(𝑛 − 𝑘)

𝑏𝑘

𝑏𝑘𝑥(𝑛 − 𝑘)

𝑢(𝑛)

𝑣(𝑛)

𝑢 𝑛 + 𝑣(𝑛)

Page 10: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• Example - 2nd order filter with 𝑁 = 2:

Signal Flow Graph

14/03/2019Emil Matus – TU Dresden 10

𝑦 𝑛 = 𝑏0𝑥 𝑛 + 𝑏1𝑥 𝑛 − 1 + 𝑏2𝑥 𝑛 − 2 − 𝑎1𝑦 𝑛 − 1 − 𝑎2𝑦(𝑛 − 2)

𝒖(𝒏) 𝒗(𝒏)

𝑥(𝑛) 𝑦(𝑛)

𝑦(𝑛 − 1)

𝑦(𝑛 − 2)

𝑥(𝑛 − 1)

𝑥(𝑛 − 2)

𝑏0

𝑏1

𝑏2

−𝑎1

−𝑎2

𝒖(𝒏)

𝒗(𝒏)

Page 11: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• Apply Z-transform to 𝑁𝑡ℎ order difference equation with 𝑏𝑘 , 𝑎𝑘 ∈ ℝ :

• Transfer function:

Filter coefficients Zeros/poles

𝒃𝒌, 𝒂𝒌 𝒏𝒌, 𝒑𝒌

LTI System: Transfer Function

14/03/2019Emil Matus – TU Dresden 11

𝐻 𝑧 =𝑌(𝑧)

𝑋(𝑧)=𝑏0 + 𝑏1𝑧

−1 +⋯+ 𝑏𝑁−1𝑧−(𝑁−1)

𝑎0 + 𝑎1𝑧−1 +⋯+ 𝑎𝑁−1𝑧

−(𝑁−1)=𝑏0𝑎0

𝑘=0𝑁−1(𝑧 − 𝑛𝑘)

𝑘=0𝑁−1(𝑧 − 𝑝𝑘)

𝑧−𝑘𝑋(𝑧)𝑥(𝑛 − 𝑘)

𝑏𝑘𝑧−𝑘𝑋(𝑧)𝑏𝑘𝑥(𝑛 − 𝑘)

𝑈 𝑧 + 𝑉(𝑧)𝑢 𝑛 + 𝑣(𝑛)

Page 12: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

FIR vs. IIR Filter

14/03/2019 12

• FIR - Finite Impulse Response: 𝑎0 = 1, 𝑎𝑘 = 0, 𝑘 = 1,2, …𝑁 − 1:

𝐻 𝑧 =𝑏0 + 𝑏1𝑧

−1 +⋯+ 𝑏𝑁−1𝑧−(𝑁−1)

1=

𝑘=0

𝑁−1

𝑏𝑘𝑧−𝑘 → 𝑏𝑘 = ℎ 𝑘

𝐻 𝑧 =𝑏0 + 𝑏1𝑧

−1 +⋯+ 𝑏𝑁−1𝑧−(𝑁−1)

𝑎0 + 𝑎1𝑧−1 +⋯+ 𝑎𝑁−1𝑧

−(𝑁−1)=

𝑘=0

ℎ 𝑛 𝑧−𝑘

𝑥(𝑛) 𝑦(𝑛)

𝑥(𝑛 − 1)

𝑥(𝑛 − 2)

𝑏0

𝑏1

𝑏2

• IIR – Infinite Impulse Response: 𝑎𝑘 ≠ 0, for some 𝑘 = 1,2,…𝑁 − 1

FIR

→ Impulse response 𝒉(𝒏)

Page 13: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• Transform system function 𝐻(𝑧) by substituting 𝒛 = 𝒆𝒋𝛀, Ω = 𝜔𝑇:

• Amplitude spectrum:

Frequency Response of LTI System

14/03/2019Emil Matus – TU Dresden 13

𝐻 𝑒𝑗Ω =𝑌(𝑧)

𝑋(𝑧)=𝑏0 + 𝑏1𝑒

−𝑗Ω + 𝑏2𝑒−𝑗2Ω +⋯+ 𝑏𝑁−1𝑒

−𝑗 𝑁−1 Ω

𝑎0 + 𝑎1𝑒−𝑗Ω + 𝑎2𝑒

−𝑗2Ω +⋯+ 𝑎𝑁−1𝑒−𝑗 𝑁−1 Ω

Ω

|𝐻 𝑒𝑗Ω |

2𝜋0−2𝜋 𝜋−𝜋

ΩS = 𝜔𝑆𝑇 =2𝜋

𝑇𝑇 = 2𝜋

Normalized sampling frequency:

|𝐻 𝑒𝑗Ω | =𝑏0 + 𝑏1𝑒

−𝑗Ω +⋯+ 𝑏𝑁−1𝑒−𝑗 𝑁−1 Ω

𝑎0 + 𝑎1𝑒−𝑗Ω +⋯+ 𝑎𝑁−1𝑒

−𝑗 𝑁−1 Ω

Page 14: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Tools for LTI System Analysis

14/03/2019 14

• Based on knowledge of system function 𝑏𝑘, 𝑎𝑘

• MATLAB: y=filter(b, a, x) - filter signal x

[H,W]=freqz(b, a) - spectral response

zplane(b, a) - zeros, poles locations

Page 15: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Digital Filter Design

14/03/2019 15

Page 16: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• Determine 𝑵 ∈ ℕ and 𝒃𝒌, 𝒂𝒌 ∈ ℝ according to specific criteria :

Frequency response specification: min𝑏𝑘,𝑎𝑘maxΩ∈𝑆|𝐻 Ω − 𝐷 Ω |

Filter Design 1

14/03/2019Emil Matus – TU Dresden 16

Ω

|𝐻 𝑒𝑗Ω |

0 𝜋

|𝐷 𝑒𝑗Ω |

Ω𝑃 Ω𝑆

11 + 𝛿𝑃

1 − 𝛿𝑃

𝛿𝑆

Page 17: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• Determine 𝑵 ∈ ℕ and 𝒃𝒌, 𝒂𝒌 ∈ ℝ according to specific criteria :

Maximize SNR for known signal: Matched filter

Least square error with respect to desired signal

Minimum (statistical) mean square error (Wiener filter)

Filter Design 2

14/03/2019Emil Matus – TU Dresden 17

𝑡𝑡0

min(𝑒2 𝑡0 )

𝑡

min(𝑒2 𝑡0, 𝑡1 )

𝑡0 𝑡1

𝑡

min(𝐸(𝑒2 𝑡0, 𝑡1 ))

𝑡0 𝑡1

Page 18: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• Determine 𝑵 ∈ ℕ and 𝒃𝒌, 𝒂𝒌 ∈ ℝ according to specific criteria :

Model analog function e.g.

𝑦 𝑡 = −∞

𝑡

𝑥 𝜏 𝑑𝜏

𝑦 𝑡 =𝑑𝑥(𝑡)

𝑑𝑡

Filter Design 3

14/03/2019Emil Matus – TU Dresden 18

Page 19: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

FIR Filter Design: Fourier Series and Windowing

14/03/2019 19

• Desired frequency response 𝐷(𝑒𝑗Ω) e.g. perfect low pass

• Continuous periodic function approximated using Fourier series:

𝐷 𝑒𝑗Ω =

𝑛=−∞

𝑑 𝑛 𝑒−𝑗Ω𝑛

𝑑 𝑛 =1

2𝜋

−𝜋

𝜋

𝐷 𝑒𝑗Ω 𝑒𝑗Ω𝑛𝑑Ω

Ω𝐵−𝐵 0 Ω𝑆

……

𝐷 𝑒𝑗Ω

Page 20: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

FIR Filter Design: Fourier Series and Windowing

14/03/2019 20

• Windowing:ℎ 𝑛 = 𝑑 𝑛 .𝑤 𝑛 𝐻 𝑒𝑗Ω = 𝐷 𝑒𝑗Ω ∗ 𝑊(𝑒𝑗Ω)

• Example: 𝑓𝐷 = 1𝑘𝐻𝑧

𝑓𝑆 = 4𝑘𝐻𝑧

𝑤(𝑛) – Recktangle N=2

• MATLAB: w=window(…);

b=fir1(N,W_D,’window’)

Page 21: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

IIR Filter Design: Analog prototype filter

14/03/2019 21

• Exploit theory of analog filter desing and transform analog filter to digital

• Filter types: Butterworth: buttord() → butter()

Tschebyscheff I.: cheb1ord() → cheby1()

Tschebyscheff II.: cheb2ord() → cheby1()

Cauer (elliptic): ellipord() → ellip()

• Analog to digital filter transformation: Impulse invariance method

Bilinear transformation

Stability and causality issues!!!

Page 22: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Filter Design Tools

14/03/2019 22

• MATLAB fdatool – filter design and analysis tool IDE

• MATLAB signal processing toolbox: fir1()

fir2()

firpm()

Page 23: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Ditital Filter Implementation

14/03/2019 23

Page 24: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Representation of Signal and Coefficient Values

14/03/2019 24

• Floating point numbers: Mantisa 𝑎 Exponent 𝑏 Number value:

𝑑 = 𝑎 x 2𝑏

• Fixed point number number: Integer part 𝑖 bits Fraction part 𝑓 bits Number value:

𝑑 = 2𝑖 . 2𝑓

• Floating vs. fixed point: Higher accuracy, resolution, power and resource consumption

Binary Interpreted value

𝑑3 𝑑2 𝑑1 𝑑0 𝑑3𝑑2𝑑1𝑑0. 𝑑3𝑑2. 𝑑1𝑑0

0 0 0 0 0 0.00

0 0 0 1 1 0.25

0 0 1 0 2 0.50

… …

0 1 1 1 7 1.75

1 0 0 0 -8 -2.00

1 0 0 1 -7 -1.75

1 0 1 0 -6 -1.50

… …

1 1 1 0 -2 -0.50

1 1 1 1 -1 -0.25

Signed fix-point numbers W=4

𝑊 = 𝑖 + 𝑓 [𝑏𝑖𝑡𝑠]

Page 25: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Binary Arithmetic

14/03/2019 25

• 2’s complement of 𝑊-bit binary number 𝑑

• Simple addition, subtraction and multiplication for signed/unsigned numbers

• Example W = 4 bit subtraction 5 − 2 = 3:

Approach 1: 0101 2 − 0010 2 = 0011 2

Approach 2: 5 − 2 = 5 + −2

2’s complement (−2): 24 − | − 2| = 14 = 1110 20101 2 + 1110 2 = 10011 2

Page 26: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• Critical path (CP) – maximum propagation delay of combinatorial logic 𝑇𝐶𝑃• Consequence for maximum achievable clock frequency of digital circuit:

𝑓𝑐𝑙𝑘 ≤1

𝑇𝐶𝑃

• Example 2nd order system N=2:

Signal Flow Graph & Critical Path

14/03/2019Emil Matus – TU Dresden 26

𝑥(𝑛) 𝑦(𝑛)

𝑦(𝑛 − 1)

𝑦(𝑛 − 2)

𝑥(𝑛 − 1)

𝑥(𝑛 − 2)

𝑏0

𝑏1

𝑏2

−𝑎1

−𝑎2

𝑻𝑪𝑷𝑇𝐶𝑃 = 𝑇𝑀𝑈𝐿 + (𝑁 + 1)𝑇𝐴𝐷𝐷

𝑇𝐶𝑃~𝑁𝑇𝐴𝐷𝐷 !!!

Proportional to system order N

Page 27: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• Pipelining – shorten CP by inserting and/or relocating registers in signal flow graph

• Cut set method - pipelining approach preserving system function: Cut graph edges using closed loop

Add delay 𝒛−𝟏 and speedup 𝒛+𝟏 (𝑧−1. 𝑧+1 = 1) elements at cut positions according to edge orientation

Pipelining Signal Flow Graph: Cut Sets

14/03/2019Emil Matus – TU Dresden 27

𝑥(𝑛) 𝑦(𝑛)

𝑏0

𝑏1

𝑏2

−𝑎1

−𝑎2

𝑻𝑪𝑷

Page 28: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• Pipelining – shorten CP by inserting and/or relocating registers in signal flow graph

• Cut set method - pipelining approach preserving system function: Cut graph edges using closed loop

Add delay 𝒛−𝟏 and speedup 𝒛+𝟏 (𝑧−1. 𝑧+1 = 1) elements at cut positions according to edge orientation

Pipelining Signal Flow Graph: Cut Sets

14/03/2019Emil Matus – TU Dresden 28

𝑥(𝑛) 𝑦(𝑛)

𝑏0

𝑏1

𝑏2

−𝑎1

−𝑎2𝑻𝑪𝑷

𝑥(𝑛) 𝑦(𝑛)

𝑏0

𝑏1

𝑏2

−𝑎1

−𝑎2

𝑇𝐶𝑃 = 2(𝑇𝑀𝑈𝐿 + 𝑇𝐴𝐷𝐷) Not a function of order N

Cut set 1

Cut set 2

Page 29: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Digital Filter HW Design

14/03/2019 29

Page 30: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

FPGA Introduction

14/03/2019 30

• Field Programmable Gate Array – inherently parallel processing architecture

• Software defined devices: (re-)programmed by firmware to achieve desired function

• 1980: Invented

• 1985: Xilinx first commercial FPGA XC2064 – Logic + RAM

• 2019: FPGA scalable computing platform 500MHz Logic blocks + large RAM DSP blocks CPUs High speed I/O + Interfaces (memory, ADC,DAC, USB, Ethernet, PCIe) PLLs + DLLs GPU + VPU

Page 31: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

RTL Design

14/03/2019Emil Matus – TU Dresden 31

• Register-Transfer-Level design

Combinatorial logic

Register

Data wires

Clock wires

Set/Reset signal

Simulation Testbench

Module S

𝑓(𝑎, 𝑏) 𝑔(𝑒, 𝑑)

𝑐𝑙𝑜𝑐𝑘

𝑎

𝑏

𝑑

𝑒

𝑟𝑒𝑠𝑒𝑡

𝑜𝑑𝑖 𝑜𝑖Test PatternGenerator

Analyze

Page 32: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

RTL Design using Verilog

14/03/2019Emil Matus – TU Dresden 32

• Define module interface:

Module S

𝑐𝑙𝑜𝑐𝑘

𝑎

𝑟𝑒𝑠𝑒𝑡

𝑜

module S (

input clock,

input reset,

input signed [15:0] a,

output reg signed [15:0] o

);

endmodule

Page 33: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

RTL Design using Verilog

14/03/2019Emil Matus – TU Dresden 33

• Define: Registers, wires, combinatorial functions,

Module S

𝑓(𝑎, 𝑏) 𝑔(𝑒, 𝑑)

𝑐𝑙𝑜𝑐𝑘

𝑎

𝑏

𝑑

𝑒

𝑟𝑒𝑠𝑒𝑡

𝑜𝑑𝑖 𝑜𝑖

reg signed [15:0] b,d,e;

wire signed [15:0] di,oi;

assign di=f(a,b);

assign oi=g(e,d);

always @(posedge clock)

begin

d<=di;

o<=oi;

end

Page 34: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

FIR Filter Design using HDL Verilog

14/03/2019Emil Matus – TU Dresden 34

• Define module interface: module FIR (input clock, input reset,

input signed [15:0] x,

output reg signed [15:0] yn

);

reg signed [15:0] xn [2:0];

wire signed [31:0] v;

wire signed [15:0] b0 = 16’h0325;

wire signed [15:0] b1 = 16’h1e00;

wire signed [15:0] b2 = 16’h3db6;

wire signed [15:0] b2 = 16’h0352;

assign yi=b0*xn[0]+b1*xn[1]+b2*xn[2]+b3*xn[3];

always @(posedge clock)

begin

xn[0]<=x; xn[1]<=xn[0];

xn[2]<=xn[1]; xn[3]<=xn[2];

y<=v;

end

endmodule

Module FIR

𝑐𝑙𝑜𝑐𝑘

𝑟𝑒𝑠𝑒𝑡

𝑥𝑛[1]

𝑣

𝑏0

𝑏1

𝑏2

𝑥 𝑦𝑛

𝑥𝑛[2]

𝑥𝑛[0]

𝑏3𝑥𝑛[3]

Page 35: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

HDL Synthesis 1

14/03/2019 35

• Example: 4-tap direct form FIR filter Device: Xilinx Artix-7

Synthesis: Xilinx Vivado

• RTL elaboration of Verilog source code to produce platform independent schematics

Page 36: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

HDL Synthesis 2

14/03/2019 36

• Example: 4-tap direct form FIR filter

• Synthesis: mapping logic functions to FPGA specific resources by meeting design constraints

𝑣

𝑏0

𝑥 𝑦𝑛

𝑥𝑛[0]

FPGALogicBlock& FF

DSP48Block

In BUF Out BUF

DSP48 Blocks

FFs in Logic Block

Out BuffersIn Buffers

Page 37: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

FPGA Design Methodology

14/03/2019 37

• Register-transfer-level (RTL): Hardware Description Language (HDL): Verilog, VHDL

• IP-core integration based design: pre-defined/customizable reusable units of logic Vivado design suite: Xilinx logiCORE IP FIR Compiler

• High-level synthesis (HLS): C-language synthesis tool

• Model-based: High-level abstraction using Simulink/LabVIEW… blocks

Page 38: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR 14/03/2019 38

Thank You!

Page 39: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

• LTI System representation by 𝑁𝑡ℎ order linear difference equation:

Linear Time-Invariant (LTI) System

14/03/2019Emil Matus – TU Dresden 39

𝑦 𝑛 =

𝑘=0

𝑁−1

𝑏𝑘𝑥(𝑛 − 𝑘) −

𝑘=1

𝑁−1

𝑎𝑘𝑦(𝑛 − 𝑘)

𝑦 𝑛 = 𝑏0𝑥 𝑛 +

𝑘=1

𝑁−1

𝑏𝑘𝑥 𝑛 − 𝑘 − 𝑎𝑘𝑦(𝑛 − 𝑘)

OutputInput

Internal state

Page 40: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

DSP Design

14/03/2019 40

• Digital vs. Analog: more flexibility, lower power consumption, higher reliability, higher accuracy and much better scalability

Page 41: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Synthesis: 4-tap direct form FIR w/ DSP block

14/03/2019 41

Page 42: Digital Signal Processing with FPGAs - indico.desy.de · •Pipelining –shorten CP by inserting and/or relocating registers in signal flow graph •Cut set method - pipelining approach

VODAFONE CHAIR

Synthesis: 4-tap direct form FIR w/o DSP block

14/03/2019 42