IZVEDBA NEREKURZIVNEGA DIGITALNEGA SITA S PROGRAMIRLJIVIM POLJEM LOGIČNIH VEZIJ V STRUKTURI PORAZDELJENE ARITMETIKE Davorin Osebik, Boris Kostanjevec*, Bojan Jarc, Mitja Solar, Rudolf Babič Univerza v Mariboru, Fakulteta za elektroniko, računalnišvo in informatiko Maribor, * Iskra TEL, Kranj Ključne besede: FIR filtri digitalni s trajanjem omejenim odziva impulznega, FIR sita digitalna nerekurzivna, DSP procesiranje signalov digitalno, aritmetika porazdeljena, izvedbe praktične, FPGA vezja logična s poljem programirljivim, LCA vezja logična polj celičnih Povzetek: V članku je opisana izvedba uniziverzalne strukture nerekurzivnega digitalnega sita s 15 koeficienti v porazdeljeni aritmetiki z LCA vezji firme Xilinx. Pri tem smo uporabili takšno strukturo, ki omogoča izračun izhodnega signala po klasičnem in po modificiranem postopku porazdeljene aritmetike. Z opisano aparaturno opremo smo pri izbranem nizkoprepustnem situ dosegli slabljenje 30 dB in frekvenco vzorčenja 333 kHz. Meritev amplitudnih frekvenčnih odzivov sita smo opravili z digitalnim generatorjem belega šuma na vhodu sita. Modificirana oblika porazdeljene aritmetike zagotavlja povečanje dinamičnega območja izhodnega signala. The FIR Digital Filter Realization with the Field Keywords: FIR digital filters, finite-impulse response digital filters, DSP, digital signal processing, distributed arithmetic, practical implementations, FPGA, field programmable gate arrays, LCA circuits, logical cell arrays Abstract: In this article the hardware realization of 15 tap general FIR digital filter in the distributed arithmetic structure with field programmable gate arrays is presented. This hardware structure is suitable for the implementation of digital filters with arbitrary frequency response. The comparison between standard and modified distributed arithmetic structure is also presented and the increase of the dynamic range of the output signal for 6 dB with modified distributed arithmetic structure is shown. Digital filter consist of 12 bit analog to digital and 12 bit digital to analog converters, two Xilinx LCA circuits XC 3042 and 32k x16 bit EPROM capacity with access time of 100 ns. The response of implemented low pass filter with pass band frequency fp =0.1fs and stop band frequency fs= 0.2 fs is obtained as frequency sweep method and for comparison with FFT of the output signal when filter is exited with digital white noise signal in input. In this complexity the attenuation of 30 dB and sample frequency fs of 333 kHz is obtained. Because of 19 bit complexity of the arithmetic unit the quantization error of the output signal is less than 10"®. 1. Uvod Nerekurzivna digitalna sita so zaradi linearnega faznega odziva zelo zanimiva za področje digitalne obdelave signalov. Pri aparaturni izvedbi digitalnih sit je pomembna izbira izvedbene oblike. Osnovni kriteriji, ki vplivajo na izbiro so: dobro ujemanje med izračunanimi in izmerjenimi rezultati, majhna aparaturna kompleksnost in velika hitrost delovanja. Struktura, ki temelji na porazdeljeni aritmetiki in ROM pomnilniku, v katerem so zapisane vnaprej izračunane delne vsote koeficierrtov, se je pokazala primerna tudi pri aparaturnih izvedbah digitalnih sit/1/. Za izvedbe, ki smo jih doslej naredili s standardnimi integriranimi komponentami /2/, bomo odslej uporabili programirljiva poija logičnih vezij (FPGA, LCA vezja). Merilne re/i. Itate amplitudnega in faznega odziva sita smo dobili s klasično merilno metodo in z uporabo hitre Fourierjeve transformacije izhodnega signala pri vzbujanju sita z belim šumom. Za ta namen smo uporabili lastni digitalni generator belega šuma /3/. Vhodne in izhodne vrednosti signalov pa smo zajemali z logičnim analizatorjem. 2. Nerekurzivno digitalno sito v strukturi porazdeljene aritmetike s porazdeljeno aritmetiko je označen postopek izračuna skalarnega produkta dveh vektorjev na elementarnem bitnem nivoju brez - uporabe običajnih množilnikov. 2.1. Klasična oblika porazdeljene aritmetike Nerekurzivno digitalno sito je običajno podano s splošno konvolucijsko enačbo y(k)= Ih(n)-x(k^-n) (1) ki določa zvezo med vhodom x{k) in izhodom y(k), pri tem so s h(n) označeni koeficienti impulznega odziva. Z upoštevanjem digitalne predstavitve vhodnega signala z Bx bitno besedo v dvojiški obliki, dobimo po krajši izpeljavi enostavnejši zapis določitve izhodne vrednosti y(k) y(k)= I Vi (k). 2-^-Vo (k) (2) Pri tem so z vi označene delne vsote koeficientov, ki jih izračunamo po enačbi Vi(k)=Ih(n)-bi(k-n) 1=1 (3) Pri uporabi konstantnih koeficientov digitalnega sita so vi(k) konstantne vrednosti in jih običajno zapišemo v pomnilnik vrste ROM. V (3) so z bi označeni i-ti biti v vhodnem polju. Na sliki 1 je prikazana struktura nerekurzivnega digitalnega sita v klasični obliki porazdeljene aritmetike. vil od fj X biios itfk + l) i'>pi(l<-l) I VHODNO ■ POUE ■ ROM POMNILNIK -J\ :2 > LdilOCI [j V bilov > y(k) Slika 1: Struktura nerekurzivnega digitalnega sita v klasični obliki porazdeljene aritmetike V tabeli 1 so za ilustracijo podane značilne delne vsote koeficientov za klasično obliko porazdeljene aritmetike. 2.2. Nerekurzivno digitalno sito v strukturi modificirane oblike porazdeljene aritmetike Pri dvojiškem zapisu vhodnega signala je v vhodnem polju z 1000...O zapisana najmanjša (negativna) vrednost, z 0111...1 pa največja (pozitivna) binarna vrednost. Modificirano obliko porazdeljene aritmetike dobimo, če pred vpisom v vhodno polje vhodni bipolarni signal pretvorimo v unipolarno obliko /4/. Tedaj izraz za izračun izhodnega signala v enačbi (2) preide v y(k) = y„(k)= Xv,Jk).2- (4) pri čemer so z vim(k) označene modificirane vrednosti delnih vsot koeficientov. Zaradi spremenjene vrednosti vhodnega signala je potrebno v vhodnem polju delne vsote koeficientov simetrirati in normirati. Postopek simetriranja je odvisen od vrste frekvenčne karakteristike in ga izvedemo za vsako sito posebej. Značilne modificirane delne vsote koeficientov vmi(k) so prikazane v tabeli 2. Tabela 2: Značilne delne vsote koeficientov pri modificirani obliki porazdeljene aritmetike naslovni vektor modificirana delna vsota 0 0...000 1/2(-ho-hi-h2...-hN-i) 1 0...001 1/2(-i-ho-hi-h2...-hN-i) 2 0..,010 1/2(-ho-t-hi-h2...-hN^i) 3 0...011 1/2(-ho-f-hi-h2...-hN-i) 4 0...100 1/2(-ho+hi-h2...-hN-i) i' gN-l 1...111 1/2(-i-ho+hi + h2...-i-hN-i) Tabela 1: Značilne delne vsote koeficientov pri klasični obliki porazdeljene aritmetike naslovni vektor delna vsota 0 0...000 0 1 0...001 ho 2 0...010 hi i 3 0...011 ho+hi 4 0...100 h2 2^-1 1...111 hN-i+hN-2+...ho vhod öc bitov Iz bipoiarni-unipolarni pretvornik MZIml -H x(k-2) VHODNO POLJE ' H »(K-(N-1))| .n ROM POMNILNIK E^ bitov 5^okacij delnih vsot v, :2 > izhod bitov T Slika 2: Digitalno sito v modificirani obliki porazdeljene aritmetike Novo modificirano strukturo nerekurzivnega digitalnega sita v porazdeljeni aritmetiki prikazuje slika 2. Posebna prednost modificirane oblike je v povečani dinamiki izhodnega signala. Prisotna je tudi zmanjšana kompleksnost strukture, ki pa pri izvedbi z LCA elementi ni tako aktualna. 3. Xilinxova vezja družine XC3000 in razvojni paket XACT 5.0 Sito smo napravili s programirljivimi Xilinxovimi LCA vezji družine XC3000. Oglejmo si osnovne značilnosti LCA vezij in Xilinxovega razvojnega programskega paketa XACT 5.0. 3.1. Arhitektura LCA vezij Arhitekturo LCA vezij v splošnem sestavljajo trije tipi programirljivih elementov; Vhodno izhodni bloki (lOB) so razporejeni po obrobju LCA vezja in služijo za povezovanje z zunanjim svetom. Na vhodne priključke je možno programsko priključiti dvižne upore in določiti hitrost naraščanja izhodnega signala. Uporabimo jih lahko tudi kot tristanjski vmesnik ali pa kot zadrževalnik. Konfiguracijski logični bloki (CLB) so osnovni gradniki LCA logičnih vezij. Vsak CLB vsebuje dva D flip flopa in logični kombinatorni del, s katerim je možno realizirati pet vhodno funkcijo z dvema različnima izhodoma. Programirljivi povezovalni elementi so namenjeni za povezovanje posameznih elementov znotraj LCA strukture. Za različne časovne zahteve in načine povezovanja ločimo naslednje povezovalne elemente. Vzdolžne in navpične dolge povezovalne linije oblikujejo mrežo v LCA vezju. Namenjene so za signale, ki morajo prepotovati večje razdalje v strukturi in imeti minimalne časovne zakasnitve. Neposredne povezave so povezave med posameznimi sosednjimi elementi znotraj LCA strukture. To so lahko povezave med konfiguracijskimi logičnimi bloki ali pa vhodno izhodnimi bloki. Splošne povezave so mreža metalnih odsekov, ki ležijo horizontalno in vertikalno v prostoru. Skupaj s stikalnimi matrikami povezujejo elemente v LCA strukturi. 3.2. Inicializacija LCA vezij Uporabljena LCA vezja temeljijo na SRAM tehnologiji. To pomeni, da jih je potrebno pred vsakim vklopom napajalne napetosti ponovno inicializirati. V notranjosti LCA vezja je logika, ki samodejno ob vklopu napajanja sproži inicializacijsko sekvenco. Inicializacijska vsebina je zapisana v klasičnem EPROM pomnilniku. Pri uporabi večih LCA vezij na tiskanem vezju je možno iz enega EPROM pomnilnika inicializirati več LCA naprav. Pri tem prva (glavna) naprava krmili inicializacijo ostalih naprav. Vse naprave pa začnejo delovati v uporab- niškem načinu ob istem času, s tem pa je doseženo sinhrono delovanje in ni potrebe po dodatnih sinhroni-zacijskih linijah. 3.3. Razvojni paket XACT 5.0 Načrtovanje sita z razvojnim paketom XACT 5.0 ne poteka s primitivnimi elementi, ki so opisani v poglavju (3.1), ampak z v naprej pripravljenimi makroji. Xilinxov razvojni paket XACT 5.0 ima bogato knjižnico z makroji v obliki večbitnih števnikov, pomikalnih registrov, zadrževalnikov in seštevalnikov. Z njim je bilo omogočeno enostavnejše in preglednejše načrtovanje vezij z vnaprej opisanimi makroji kot so seštevalniki, števci, registri in multipleksorji. Razvojni paket XAKT 5.0 pa omogoča tudi uporabo X-blokov. Uporaba X-blokov podpira vektorski pristop načrtovanje posameznih struktur. Strukturo načrtamo z elementi iz knjižnice X-blokov. Širino strukture pa določimo kasneje, glede na zahteve aplikacije. Pri tem načrtovanju so dodatno upoštevane strukturne značilnosti posamezne družine, zato je učinkovitejši program za avtomatsko razmeščanje in povezovanje (APR) elementov. To pa doprinese tudi večji koncentraciji elementov znotraj LCA strukture in omogoča višje hitrosti delovanja vezij. Večino izhodnega LCA vezja smo načrtali z uporabo elementov iz knjižnice X-blokov. 4. Izvedba Digitalno sito smo izvedli z LCA vezji družine XC3000 /6/, ki so glede na velikost zadoščala našim potrebam. Za povezavo sita z okoljem smo predvideli dve možnosti glede na zahteve za praktično uporabo. - Za povezavo sita z analognim okoljem smo uporabili 12-bitni AD pretvornik na vhodu in 12-bitni DA pretvornik na izhodu. - Za povezavo z digitalnim okoljem pa smo uporabili kar 12-bitni digitalni vhod in izhod za neposredno priključitev digitalnega generatorja belega šuma na vhodu in logičnega analizatorja na izhodu. V izvedbi smo zagotovili 12-bitno dolžino vhodno izhodne besede. Dolžina besede za zapis delnih vsot koeficientov v pomnilniku je 16-bitna, medtem, ko je dolžina besede v aritmetičnem delu sita 19-bitna. Digitalno sito sestavljata dve LCA vezij XC3042 in pomnilnik vrste EROM. Pri digitalnem situ s 15 koeficienti potrebujemo pomnilnik s kapaciteto 32k besed. V vhodnem LCA vezju smo izvedli vhodno polje, v izhodnem LCA vezju pa aritmetični del strukture. Za izvedbo digitalnega sita v dveh LCA vezjih smo se odločili zaradi potrebnega števila logičnih konfiguracij-skih blokov in potrebnega števila vhodno izhodnih pri-ključkov. Tudi struktura porazdeljene aritmetike je takšna, da izvedba v dveh LCA vezjih ne zmanjša hitrosti in ne natančnosti izračuna izhodnega signala. Blokovna shema je prikazana na sliki 3. vhodX 12-bilov VHODNO LCA VEZJE 2-bitni Dff paralelno serijski pretvornik hh iii VHODNO POLJE H- 15-bitni Dff ROM POMNILNIK 2 lokacij delnih vsot v, D0_ p1 D2 IZHODNO LCA VEZJE 16-bltni Dff +/- —N — 2 —^ Slika 3: Blokovna shema celotnega sita 4.1. Vhodno LCA vezje Vhodno LCA vezje je prikazano na sliki 4. Vsebuje paralelno serijski pretvornik, vhodno polje in krmilno vezje. Vhodni zadrževalnik zajema vhodno besedo x(k) z vhodnega podatkovnega vodila s frekvenco vzorčenja 333 kHz. 12-bitni paralelno serijski pretvornik jo vpiše v vhodno polje. Vhodno polje je pomični register velikosti 180 bitov in je namenjeno za generiranje naslovnega vektorja za naslavljanje delnih vsot koeficientov, ki so zapisane v EPROM pomnilniku. Krmilno vezje omogoča delovanje sita v glavnem ali pa pomožnem načinu. Način delovanja izbiramo z linijo IZBIRA. S kontrolno linijo STYLE pa izbiramo med klasično obliko porazdeljene aritmetike in med modificirano obliko porazdeljene aritmetike. Zasedenost vhodnega LCA vezja je bila po številu konfiguracijskih logičnih blokov 72%, po številu vhodno izhodnih blokov pa 34%. 4.2. Izhodno LCA vezje V izhodnem LCA vezju smo izvedli aritmetični del digitalnega sita. Zaradi zmanjšanja vpliva kvantizacije na izračun izhodne besede y(k) in dovoljene prekoračitve vmesnih rezulatov preko absolutne vrednosti 1 smo uporabili 19-bitno širino strukture s seštevalnikom in zadrževalnim registrom. Aritmetični del je načrtan z elementi iz knjižnice X-blokov. Na sliki 5 je prikazana načriana struktura izhodnega LCA vezja. V izhodnem LCA vezju je tudi krmilno vezje, ki je skoraj povsem identično s krmilnim vezjem v vhodnem LCA vezju. S tem smo dosegli sinhrono delovanje vhodnega in izhodnega LCA vezja. Zaradi takšnega načina delovanja ne potrebujemo linije za sinhronizacijo izhod-nega LCA vezja z vhodnim LCA vezjem. Izračunano izhodno vrednost y(k) pripeljemo ločeno na izhodno vodilo za 12-bitni digitalni izhod, ali pa neposredno na podatkovno vodilo D/A pretvornika. Zasedenost izhodnega LCA vezja je bila po številu konfiguracijskih logičnih blokov 48%, po številu vhodno izhodnih blokov pa 50%. Shemo vezja kaže slika 5. 5. Rezultati Univerzalna struktura opisanega digitalnega sita omogoča izvedbo poljubne oblike amplitudne frekvenčne karakteristike. Ogledali si bomo nizkopre-pustno sito s 15 koeficienti, ki ima relativno prepustno frekvenco fp=0.1fv, in relalivno zaporno frekvenco fz=0.2fv. Z fv je oznalčena frekvenca vzorčenja. Koeficienti sita, ki določajo ta frekvenčni odziv sita, so zapisani v tabeli 3. Tabela 3: Koeficienti nizkoprepustnega digitalnega sita h(n) nizkoprepustno sito fp = O.lifz = 0.2 h(0) = h(14) 1.326373E-02 h(1) = h(13) -2.275006E-02 h(2) = h(12) -4.475454E-02 h(3) = h(11) -3.804951 E-02 h(4) = h(10) 0.0271117 h(5) = h(9) 0.1419171 h(6) = h(8) 0.2543791 h(7) 0.3012954 5.1. Meritev amplitudnega odziva z analognim generatorjem spremenljive frekvence To je klasična merilna metoda za meritev amplitudnega frekvenčnega poteka. Na vhodu sita smo uporabili generator sinusnega signala spremenljive frekvence. Frekvenca vzorčenja je bila 333 kHz. Meritev smo opravili v pričakovanih točkah amplitudnega odziva. Na sliki 6 sta prikazana izračunani in izmerjeni amplitudni frekvenčni odziv v absolutnem merilu. irn ;ni 5ni sni ir sni šni ?ns ini ir s [jo snž 3* -il _"3D D« ..b ■P V )0 3>- a, ,V >3 o y o 53 ? t IT 3 1 1- 1 I T o 1 3D 1 1 i T 1 1 1 1 1 s ; J ! < < < C oooooooooo;: oooooooooo,-,', oooooooooo-';;" OOOOOOOOOO uyu oooooooo 1 5 «511 rL„, s oooooooo do 'oooooo oooooooooo;- Om i On io^? Až On o» iOk"» ^M "C Lü 0- S"' v, a'J 1- ««!-■ o: KJi < sl^! O" lysÄ IsMfifg caS'^uuqo j" j'j ji oSgSŽgSg di M I I i I i I ..... □f ii ftfttt i-O 7 1.1 ) lAUi < Ai' S«! Slika 4: Vhodno LCA vezje z vhodnim poijem za generiranje naslovnega vel