28
Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK 4 FIR-Filterstrukturen und VHDL Implementierung mit Pipelining 4.1 Transversalfilter; Direktform I Im Zeitbereich wird ein FIR-Filter Nter Ordnung durch eine diskrete Faltungssumme beschrie- ben, die auö er dem nur verzo gerte Eingangssignalwerte x[k] und keine Ru ckfu hrungen des Aus- gangssignals y[k] entha lt: Das endliche Antwortverhalten eines Filters 6ter Ordnung ist bei einer Impulsantwort y[n] = {c 0 , c 1 , c 2 , c 3 , c 4 , c 5 , c 6 } mit den N+1 Koeffizienten c i als Ausgangswertfolge charakterisiert. Mit Anwendung des Verschiebungstheorems folgt f u r die z-U bertragungsfunktion H(z): Die Reaktion eines FIR-Filters wird also durch die gewichtete Summe von verz o gerten Abtastwer- ten gebildet, die direkt in Hardwarestrukturen umsetzbar ist y[n] = c k x[n-k] N k=0 N k=0 Y(z) = H(z) X(z) = c k z -k X(z)

4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Embed Size (px)

Citation preview

Page 1: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-1

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

4 FIR-Filterstrukturen und VHDL Implementierung mitPipelining

4.1 Transversalfilter; Direktform I

• Im Zeitbereich wird ein FIR-Filter Nter Ordnung durch eine diskrete Faltungssumme beschrie-ben, die auö er dem nur verzo gerte Eingangssignalwerte x[k] und keine Ruckfuhrungen des Aus-gangssignals y[k] enthalt:

• Das endliche Antwortverhalten eines Filters 6ter Ordnung ist bei einer Impulsantwort y[n] ={c0, c1, c2, c3, c4, c5, c6} mit den N+1 Koeffizienten ci als Ausgangswertfolge charakterisiert.

• Mit Anwendung des Verschiebungstheorems folgt fur die z-U bertragungsfunktion H(z):

Die Reaktion eines FIR-Filters wird also durch die gewichtete Summe von verzo gerten Abtastwer-ten gebildet, die direkt in Hardwarestrukturen umsetzbar ist

y[n] = ∑ ck x[n-k]N

k=0

N

k=0Y(z) = H(z) X(z) = ∑ ck z-k X(z)

Page 2: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-2

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

Simulink-Darstellung der Direktform I eines symmetrischen FIR-Filters 6. OrdnungAbtastfrequenz fSample = 1/T = 12 MHz/256 = 46,875 kHz.

• Charakteristisch fur die Direktform I ist die Kette der Registerstufen (Taps), die die Verzo gerungder Eingangssignalabtastwerte realisiert.

• Der langste Signalpfad ist durch die Addiererkette gegeben, die die gewichteten Abtastwerte auf-summiert: 1 Multiplizierer und N-Addierer.

FIR-Filter: 6th order

x[n-1] x[n-2] x[n-3] x[n-4] x[n-5]

XY Graphz

1

Tap 6z

1

Tap 5z

1

Tap 4z

1

Tap 3z

1

Tap 2z

1

Tap 1

Sum 6Sum 5Sum 4Sum 3Sum 2Sum 1 SpectrumAnalyzer

Scope1

Scope

RandomNumber

Power SpectralDensity

12:34

Digital Clock

-19C6

21C5

80C4

108C3

80C2

21C1

-19C0

x[n-6]

y [n]

y [n]

x[n]

x[n]

x[n]

Page 3: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-3

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

• Der Frequenzgang H(f) lasst sich fur symmetrische Filter leicht aus der U bertragungsfunktionH(z) durch Ausklammern der Potenz z-N/2 bilden. Fur das Beispiel des zu betrachtenden Filters giltmit c0 = c6, c1 = c5 und c2 = c4:

H(z) = z-3{ c0 (z3 + z-3) + c1 (z

2 + z-2) + c2 (z1 + z-1) + c3}

• Die Auswertung der U bertragungsfunktion auf dem Einheitskreis der z-Ebene mit z = ej2πfT undAnwendung der Eulerschen Formel liefert fur den Ausdruck in {~} einen reinen Realteil, der denAmplitudengang darstellt:

H(f) = e-j2π 3T { c0 2cos(2πf 3T) + c1 2cos(2πf 2T) + c2 2cos(2πf T) + c3}

Amplitudengang : |H(f)| = c0 2cos(2πf 3T) + c1 2cos(2πf 2T) + c2 2cos(2πf T) + c3

Phasengang: ϕ = ∠H(f) = arctan(-sin2πf3T/cos2πf3T) = -2πf3T (linearphasig)

• Die Gruppenlaufzeit τg ist bei symmetrischen FIR-Filtern aufgrund des linearen Phasenverlaufskonstant, sodass die Einhullende von Eingangssignalen um τg verschoben am Ausgang unverzerrterscheint:

Gruppenlaufzeit: τg = -dϕ/d(2πf) = 3T

Page 4: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-4

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

Amplituden- und Phasengang des FIR-Filters 6. Ordnung. Abtastintervall T = 21,333„s

Page 5: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-5

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

Entwurfsbeispiel fur einen VHDL Code des FIR-Filtermoduls in Direktform I

• Fur die konstanten Koeffizienten und die Schieberegisterstufen sind Array-Deklarationen furFelder von Vektoren eingefuhrt worden.

• Die Signalvektoren sind als vorzeichenbehaftete Typen deklariert, sodass die arithmetischenOperationen auf der 2er-Komplementdarstellung der Operanden beruhen.

• Die Signalverzo gerungen durch die Registerstufen (Taps) erfolgen in einem getakteten Prozess,der die Registerkette mit einer for-Schleife inferiert. Mit jedem READY-Impuls, den das Emp-fangsregister sendet, erfolgt das Einspeichern eines neuen Abtastwertes X und der Schiebevor-gang durch die Registerstufen. Die erste Registerstufe hat die Funktion eines U bernahmeregi-sters des Filtermoduls.

• Fur die Ordnung N = 6 sind 7 Produkte zu bilden und aufzusummieren. Dies ubernimmt einefor-Schleife, die die Signalverarbeitung mit Variablen fur die Produkte und die Teilsummenausfuhrt. Die Synthese erzeugt daraus 7 Multiplizierer, die an eine Addiererkette angeschlossenwerden. Aufgrund des getakteten Prozesses und der Initialisierung der Summenvariable Y_VARmit Null wird das Additionsergebnis in einem U bergaberegister gespeichert. Die arithmetischenOperationen erfolgen in einem Takt, der im Anschluss an den READY -Impuls freigegeben wird.

• Die Aktualisierung des FIR-Filterausgangs Y nimmt also insgesamt zwei Systemtakte in An-spruch.

Page 6: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-6

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;

entity FIR_VAR_2 isgeneric( DAC_WIDTH: positive := 20;

ADC_WIDTH: positive := 20;TAPS: positive := 6);

port( CLK: in bit; -- clock input 12MHz

RESET: in bit; -- synchronous active-high resetREADY: in bit; -- Flag --> enable of filter operationX: in bit_vector(DAC_WIDTH-1 downto 0); -- input to the filter register stagesY: out bit_vector(DAC_WIDTH-1 downto 0) -- output

);end FIR_VAR_2;

architecture FIR_ARCH of FIR_VAR_2 is

--Filter with signed integer sample and coefficient representationtype COEFF_TYPE is array(0 to TAPS) of signed(7 downto 0); -- coefficient arraytype STAGE_TYPE is array(0 to TAPS) of signed(11 downto 0); -- register arraysignal COEFF: COEFF_TYPE; -- coefficient vectorssignal STAGE: STAGE_TYPE; -- input signal register stagessignal FIR_EN: bit ;-- enable filter operation only for one FIR_CLOCK cycle----------------------Low pass filter 6kHz --> 12kHz -12 dB-----------------

Page 7: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-7

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

beginCOEFF(0) <= "11101101"; -- -19 filter amplification factor V = 272COEFF(1) <= "00010101"; -- 21

�SYNC_READY: process(CLK)begin

if CLK='1' and CLK'event thenif RESET='1' then

FIR_EN <= '0';else FIR_EN <= READY ; -- READY pulse delay by one CLK cycleend if;

end if;end process SYNC_READY;-- higher 12 bit of X into the registers: shift right => division by 256STAGES: process(CLK)begin

if CLK='1' and CLK'event then --if RESET='1' then

for I in 0 to TAPS loopSTAGE(I) <= (others=>'0');

end loop;elsif READY = '1' then -- enable of loading and shifting

STAGE(0)<= signed(to_stdlogicvector(X(19 downto 8))); -- loadingfor I in TAPS downto 1 loopSTAGE(I) <= STAGE(I-1);-- shiftingend loop;

end if;end if;

end process STAGES;

Page 8: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-8

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

--MAC: process(CLK)type PRODUCTS_TYPE is array(0 to TAPS) of signed(19 downto 0);variable PRODUCTS: PRODUCTS_TYPE; -- 2 sign bits and 18 significant bitsvariable Y_VAR: signed(20 downto 0); -- integer bit enhancement to avoid intermediate overflowbegin

if CLK='1' and CLK'event then --if RESET='1' then

Y <= (others=>'0');elsif FIR_EN = '1' thenY_VAR := (others=>'0');

for I in 0 to TAPS loop-- Multiplication and accumulation

PRODUCTS(I) := COEFF(I) * STAGE(I);Y_VAR := Y_VAR + (PRODUCTS(I)); -- implicite sign extension

end loop;Y <= to_bitvector(std_logic_vector(Y_VAR(19 downto 0)));-- limiting

-- Accu result will be registered-- inner conversion used from IEEE.std_logic_arith.all; outer used form IEEE.std_logic_1164.all;

end if;end if;

end process MAC;------------------------------------------------------------------------end FIR_ARCH;

• Fur die Vektorbreiten der Variablen Y_VAR und PRODUCTS ist Kapitel 5 und der folgenden Ab-schnitt zu beachten.

Page 9: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-9

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

Vektorlangen in Additionen und Subtraktionen• Die Vektorlangen der rechten und linken Seiten einer Signalzuweisung mussen gleich sein.

• Auf der rechten Seite wird eine vorzeichenrichtige Anpassung des kurzeren Operanden auf dieBitanzahl des langeren Operanden durchgefuhrt.

Page 10: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-10

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

• Die vorzeichenbehafteten Integer-Operanden X1 und X2 des Addiererbeispiels sind hexadezi-mal dargestellt. Bei 3-Bit Operanden sind alle hexadezimalen Ziffern >3 negative Zahlen.

• Mindestens einer der Operanden (X1_INT) der Addition/Subtraktion muss die Lange des Er-gebnisvektors aufweisen.

• In einem Akkumulator ist diese Bedingung durch die ruckgefuhrte Speichergro ö e erfullt.

• Eine explizite Vorzeichenerweiterung aller Operanden dient jedoch der Codetransparenz.

Page 11: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-11

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

Pipelining of data paths• Pipelining increases performance by restructuring long data paths with several levels of logic

(Li) and breaking it up over multiple clock cycles. Pipelining adds registers in the combinationallogic. This method allows a faster clock cycle which results in an increased data throughput atthe expense of added data latency.

• A computational circuit has to be partitioned into several approximately equal delay parts (Li)and then inserting registers in between the partitions. This is shown in the transformation frompart a) to part b) in the following figure.

L1 L2 LmL3 L4

ResultRm Lm

Stage SmStage S2

R2 L2

Stage S1

L1Data

CLK

R1

a)

b)

Page 12: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-12

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

• A pipelined data path performs a computation in several consecutive overlapping stages. Astage consists of an interstage register Ri and a processing circuit Li. The register Ri tempo-rarily stores the out put Li-1 so that it can be used as input to Li.

• Before pipelining the clock period is limited by the clock-to-out-time of source flip-flops, thelogic delay through all m levels of logic (Li), the routing associated with the m processing cir-cuits Li and the set up time of the destination register:

TCLK > TQ + TLOGIC-m + TROUT-m + TSETUP

• After pipelining the clock period is limited by smaller delays, because only one logic level Ciand one routing path is involved:

TCLK > TQ + TLOGIC-i + TROUT-i + TSETUP

Therefore the pipelined circuit can produce data results a very fast rate, because each stage canwork on partially computed data with a increased frequency concurrently with the other stages.

• For visualizing the operation of a pipeline a space-time diagram is used (figure next page).The horizontal axis corresponds to time and the vertical axis corresponds to the stage num-ber. The entries in the green boxes correspond to the symbolic IDs of the data currentlyworked on.

Page 13: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-13

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

• The shown space-time diagram describes an example of a 4-stage pipeline, with each stageclocked four times the frequency of the system without pipelining. After N+3 rising clockedges N data items are completely processed.

• Looking at one time instant, i.e. time unit 4, we can see that all stages of the pipeline are busyworking on different data items. A data item is completely processed when it leaves the laststage. The first data item leaves the pipeline when all stage are filled. Then it takes N-1 cyclesto process a complete data set. But after that has happened each single cycle yields a new dataset result.

• Disregarding the first N+3 cycles the pipeline works with a speedup which is determined bythe number of the stages: four times.

• In general, if there are n stages in the pipeline, the time taken to generate results can be re-duced to 1/n times the nonpipelined execution time, with the exception of the first result.

1 2 3 4 5 6 ... N

1 2 3 4 5 6 ... N

1 2 3 4 5 6 N

1 2 3 4 5 6 ... N

1 2 3 4 5 6 7 8 9 ... N N+1 N+2 N+3

S4

S3

S2

S1

Stage

Number

Time in Cycles

Page 14: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-14

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

FIR-Filter in Direktform I und Addierer-Realisierungen

+

+

+

+

P[0] P[1] P[2] P[3] P[4]

Y[n]

+

P[0] P[1] P[2] P[3] P[4]

+

+

+

Y[n]

+

-1Z

-1Z

-1Z

-1Z

C0 C1 C2 C3 C4

X[n]X[n-1] X[n-2] X[n-3] X[n-4]

P[4]P[3]P[2]P[1]P[0]

j

m

l bit coefficients

Y[n]

m +

Pipelining-register

Page 15: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-15

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

• Zwei Maö nahmen sind fur die Hardware-Implementierung der Direktform I je nach Anforde-rungsprofil zu berucksichtigen:

Ø Der Addierbaum ist balanciert aufzubauen, indem Produkte paarweise addiert werden unddiese Summen in weiteren Stufen zusammengefasst werden. Die Anzahl der erforderlichenAddierer bleibt gleich, jedoch ergeben sich kurzere Komponentenketten und damit kurzereSignallaufzeiten durch alle Addiererstufen. Der parallelere Aufbau eines “balanced addertrees– reduziert die Stufenzahl fur ein Filter Nter-Ordnung von N auf N/2.

Ø Die VHDL-Codierung des balancierten Addierers fur ho here Ordnungen mit for-Schleifenoder automatisierten Komponenten-Instanziierungen wird allerdings insbesondere fur pa-rametrisierte Lo sungen erheblich aufwendiger.

§ Zur weiteren Erho hung der anwendbaren Taktfrequenz kann die Aufteilung der Operations-ketten mit Trennregistern erfolgen. Die Produkte ko nnen zwischengespeichert werden undjeder Addiererstufe lasst sich ein Register zuordnen.

§ Im Fall des balancierten Addierers mit Pipelining werden aufgrund der geringeren Stufen-anzahl ebenso weniger Systemtakte zur Abarbeitung beno tigt.

§ Da die Produkte zwischen den Abtastwertaktualisierungen konstant bleiben, sind bei der Ad-diererkettenlo sung keine Registerstufen fur einen Laufzeitausgleich erforderlich.

Page 16: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-16

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

4.2 Transponierte Form

Die transponierte Form ergibt sich aus der Direktform durch folgende Maö nahmen:

• Vertauschen von Eingang und Ausgang.

• Umkehrung des Signalflusses.

• Ersetzen der Addierer (Kettenvariante) durch eine Verzweigung und umgekehrt.

Ø Der Vorteil dieser im Allgemeinen bevorzugten Variante ist dadurch gegeben, dass dieSpeicherstufen direkt die Entkopplung der Addiererstufen bewirken und somit keine zusatzlichenPipelining-Register fur den Addiererbaum beno tigt werden.

Ø Die Anzahl der D-Flipflops ist gro ö er, da die Produkte mit m = j + l ’ 1 Bits in die Summeneingehen.

Ø Der langste Logikpfad wird durch den Multiplizierer mit dem Koeffizienten C0 und den letzenAddierer gebildet, der die langste Ripple-Carry Kette mit (m + log2(N+1)) Bits enthalt.

+ -1

Z -1

Z -1

Z -1

Z

C4 C3 C2 C1 C0

X[n]

P[0]P[1]P[2]P[3]P[4]

j

m

l bit coefficients

Y[n]+ + +

Page 17: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-17

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

4.3 Direktform I mit reduzierter Anzahl der Multiplizierer

• Die Symmetrie von linearphasigen Filtern lasst sich zur Einsparung von Multiplizierern nutzen, dadie Koeffizienten paarweise gleich sind. Deren Anzahl verringert sich von N+1 auf N/2+1. Die An-zahl der Addierer bleibt gleich.

• Im Vergleich zur Direktform I ergeben sich auch kurzere Laufzeitpfade der Operationsketten.Statt der N Addiererstufen mussen maximal nur N/2+1 Addierer durchlaufen werden.

FIR-filter: 6. 0rder; with reduced number of multipliers

x[n]

XY Graph

z

1

Tap 6z

1

Tap 5z

1

Tap 4

z

1

Tap 3z

1

Tap 1z

1

Tap 2

Sum 6 Sum 5 Sum 4

Sum 3

Sum 2Sum 1

SpectrumAnalyzer

ScopeRandomNumber

Power SpectralDensity

Mux

Mux

12:34

Digital Clock

80C2

21C1

-19C0

108

C 3

y [n]

y [n]

x[n-3]

x[n-2]

x[n-4]x[n-5]

x[n-1]

x[n-6]

Page 18: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-18

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

4.4 Ressource-Sharing mit einem Multiply und Accumulate (MAC) Block

• Diese Variante basiert auf der Direktform 1 und ist immer realisierbar, wenn die Abtastperiodeein Zeitfenster bietet, in dem durch U bertaktung eine groö e Anzahl von Rechenzyklen ausge-fuhrt werden kann.

• Ein Abtastwerte-Schieberegister mit N+1 Stufen wird im Zyklus der Abtastperiode TS sukzessi-ve mit Abtastwerten geladen und geschoben.

• Die einzelnen Multiplikationen der Paare aus Koeffizienten und gespeicherten Abtastwerten er-folgen im zeitlichen Raster der maximalen Taktfrequenz fCLK . Damit nur ein Ausgang desSchieberegisters beno tigt wird, erfolgt eine Rotation des gesamten Abtastwerte-Schieberegisterinhaltes bis die ursprunglichen Speicherpositionen wiederhergestellt sind. Ohnediese Rotation musste ein Multiplexer an alle Teilregister angeschlossen werden, um die Ab-tastwerte abzugreifen: (N+1)*j zu j Multiplexer.

• Die N+1 Koeffizienten stellt ein RAM-Speicher zur Verfugung, den ein Adresszahler ansteuert.Hier soll ein synchrones RAM mit Write-Enable Steuerung genutzt werden, damit ggf. ein Mo-dul fur eine Online-Koeffizientenadaption vorbereitet ist.

• Die einzelnen Produkte werden von einem Akkumulator gespeichert, der mit einer erweitertenWortbreite auszulegen ist, damit temporare U berlaufe verhindert werden. Dem Ausgangsregi-ster ist ein Sattigungsblock nachzuschalten, der die Ergebnisse auf 20 Bit inkl. Vorzeichen be-grenzt.

Page 19: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-19

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

Filterstruktur mit sequentieller Multiplikation und Addition

Samples Shift Register

Xn-NXn Xn-1C

oefficient R

egisterCN

CN-1

CN-2

C0

C1

MULT

Reg

ister

+

X

Y

AccumulatorMUXMUX

Page 20: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-20

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

FIR-Filter 4. Ordnung mit 5 KoeffizientenU bersicht zu den sukzessiven Lade- und Rotiervorgangen

MU

X

x+

RE

G

Stages C

MU

X

x+

RE

G

Stages C

MU

X

x+

RE

G

Stages C

MU

X

x+

RE

G

Stages C

MU

X

x+

RE

G

Stages C

MU

X

x+

RE

G

Stages C

Page 21: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-21

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

4.5 RAM basierte Koeffizientenspeicherung

• Die Funktionsgeneratoren (LUTs) F und G der FPGA CLBs ko nnen in mehreren RAM-Modi kon-figuriert werden, um synchron gespeicherte Bit Zellen zur Verfugung zu stellen:

Ø Single Output Port: 16x2 Bit pro CLB; Zwei Datenbit Eingange, zwei Datenbit Ausgange und je 4

Adressleitungen pro Funktionsgenerator.

32x1 Bit pro CLB; 1 Datenbit Ein- und Ausgang sowie 5 Adressleitungen.

Ø Dual Output Port: 16x1 Bit pro CLB; 1 Datenbit-Schreibeingang und zwei parallele Datenbit-

Leseausgange. 4 Schreibadressleitungen und 4 Leseadressleitungen.

• Single Output Port:

Ø Die Funktionsgeneratoreingange F1-F4 und G1-G4 dienen als Adresseingange.

Ø Die Steuereingange C1-C4 werden zu den Dateneingangen D0 und D1 sowie zum Writeenable-Eingang WE fur das synchrone Schreiben des 16x2 Speichers. Fur den 32x1 Speicher werden dieFunktionsgeneratoreingange zu Adressleitungen zusammengefasst und D1 arbeitet als 5. Adress-leitung.

Ø Die Speicherausgange F� und G� sind uber X und Y verfugbar.

Page 22: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-22

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

16x2 (or 16x1) Edge-Triggered Single-Port RAM

• Mit dem H Funkti-onsgenerator ko nnenfur F� und G� Logik-funktionen gebildetwerden.

• Die D-FFs sind zurzusatzlichen Speiche-rung fur Pipelining-vorgange nutzbar.

Xilinx

Page 23: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-23

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

Konfigurierung von vorsynthetisierten Komponenten mit demModulgenerator LogiBLOX

• Modul-Generator Maske mitEintragen fur ein syn-chrones RAM 16*8 Bit.

• Der Memory-Filecoeff.mem enthalt dieInitialisierungswerte desRAMs.

• Der Name einesvorbereiteten *.mem File istohne Anwahl von – Edit– an-zugeben.

• Es wird eine Netzliste syn-thetisiert, die wahrend derDesign-Implementierung andie Syntheseergebnisse derVHDL-Codes angekoppeltwird.

Page 24: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-24

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

• RAM Initialisierungsfile

;

; memfile coef.mem for LogiBLOX symbol COEF_RAM_16_8

; Created on Wednesday, March 6, 2002 17:22:04

;

; Header Section

RADIX 10

DEPTH 16

WIDTH 8

;

; Data Section

; Specifies data to be stored in different addresses

; e.g., DATA 0:A, 1:0

RADIX 2

DATA 11111111, 11111111, 11111110, 00000000, 00000110, 00010000, 00011011, 00100000,00011011, 00010000, 00000110, 00000000, 11111110, 11111111, 11111111, 00000000

; end of LogiBLOX memfile

Page 25: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-25

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

4.6 Sequentielle Struktur mit Dual-Port RAM als Abtastwertspeicher

• Die Hardware-Lo sung nach 4.4 mit dem RAM-Koeffizientenspeicher nach 4.5 beno tigt fur hoheFilterordnungen aufgrund der langen Abtastwert-Registerkette eine erhebliche Zahl von D-Flipflops (Ordnung+1 mal Abtastwert-Bitbreite). Eine RAM basierte Abtastwertspeicherung wur-de den Bedarf an CLBs erheblich reduzieren.

• Zur Realisierung der Schiebevorgange bietet sich die Konfigurierung der Funktionsgeneratorenals Dual-Port RAM, da diese mit zwei unabhangig adressierbaren Ausgangen den U bergang derAbtastwerte von Quellen- auf Ziel-Speicherplatze unterstutzen.

• Dual-Port RAM Edge-Triggered Mode

Ø Beide Funktionsgeneratoren F und G bilden ein 16x1 RAM mit einem Schreib- und zwei Le-seports. Das RAM kann uber zwei unabhangige Adresseingange DPRA[3:0] und A[3:0]gleichzeitig gelesen und beschrieben werden. Simultane Lese- und Schreibvorgange mit einerAdresse an A[3:0] werden ebenfalls unterstutzt.

Ø Ein einfaches Modell des dual-port RAM (S. 4-25) zeigt zwei parallel arbeitende Funktions-generatoren einer CLB, die beide den gleichen Dateneingang D haben. Der Funktionsgenera-tor F bildet ein single-port RAM (SPO) mit den Adressleitungen A[3:0] fur Lesen undSchreiben. Der Funktionsgenerator G (DPO) speichert die gleichen Daten, verfugt jedochuber separate Adressierungen fur Lesen DPRA[3:0] und Schreiben A[3:0].

Page 26: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-26

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

XC4000 Series Dual-Port RAM, Simple Model

• Wird A als Schreib-und DPRA als Lesea-dresse genutzt, sokann durch Lesen vonDPO ein FIFO-Speicher aufgebautwerden, der gleichzei-tig gelesen und be-schrieben werdenkann.

• Diese Vorgehensweisesoll auch fur den Fil-ter-Abtastwertspei-cher angewendet wer-den.

Xilinx

Page 27: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-27

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

Abtastwert-Schieberegister auf Basis eines ruckgekoppelten Dual-Port RAM

Samples

Xn

Xn-1

Xn-2

Adress

0

1

2

3

Q

Q

+

Qmax

Read/WriteOrder

Shift

Page 28: 4 FIR-Filterstrukturen und VHDL Implementierung mit …users.etech.haw-hamburg.de/users/Schwarz/En/Lecture/Dyj/Notes/Cha… · Prof. Dr. B. Schwarz Projekt Digitale Systeme 4-1 hochschule

Prof. Dr. B. Schwarz

Projekt Digitale Systeme 4-28

hochschule fu r angewandte wissenschaften hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK

• Die Schiebevorgange erfolgen von einer niederen zur nachst ho heren Adresse. Damit keine Spei-cherinhalte uberschrieben werden, wird dieser Vorgang deshalb mit dem Speicherplatz an derho chsten Adresse gestartet. Ein an DPO gelesener Abtastwert steht uber die Ruckfuhrung amSchreibeingang D zur Verfugung.

• Die Adressierung der Schiebevorgange erfolgt ausgehend von einem maximalen ZahlerstandQmax mit einem dekrementierenden Zahler, der beide Nachbaradressen fur den Lese- und denSchreibvorgang bereitstellt.

• Parallel zu den sukzessiven Schiebevorgangen kann die Multiplikation der Abtastwert-Koeffi-zientenpaare stattfinden, wenn der Koeffzienten-Adresszahler parallel zum Dekrementer gesteuertwird.

• Den Schreibvorgang eines neuen Abtastwertes initiiert das Bereitschaftssignal der FPGA-Codec-Schnittstelle. Die neuen Abtastwerte sollten mit Rucksicht auf den wrap-around des Dekrementersin die Speicherstelle mit der Adresse 1 geschrieben werden. Im Anschluss daran ko nnen dann dieUmspeichervorgange stattfinden, die mit dem Schiebevorgang des aktuellsten Abtastwertes been-det sind.

• Eine Weiterentwicklung der dargestellten Struktur besteht darin, dass fur den erkennbar langstenkombinatorischen Pfad der Schaltnetzblo cke dec_minus1, dpram, mult und accu geeignete Pipeli-ningmaö nahmen eingefuhrt werden.