級(jí)聯(lián)信號(hào)處理器的FPGA實(shí)現(xiàn)
考慮到FIR濾波器系數(shù)的對(duì)稱性,在橫向?yàn)V波器的轉(zhuǎn)置結(jié)構(gòu)中再加入一條反向相加、延時(shí)支路,把單片F(xiàn)IR濾波器的級(jí)數(shù)由N擴(kuò)展到2N,適合于階數(shù)M為NM≤2N的濾波器使用。系統(tǒng)只需用一個(gè)信號(hào)便可實(shí)現(xiàn)對(duì)芯片級(jí)聯(lián)使用或單片使用的控制,具體實(shí)現(xiàn)結(jié)構(gòu)如圖2所示。本文引用地址:http://2s4d.com/article/191993.htm
為了讓設(shè)計(jì)的信號(hào)處理器能用于自適應(yīng)信號(hào)處理、快速傅里葉變換等領(lǐng)域,還必須使系統(tǒng)能根據(jù)用戶的要求實(shí)時(shí)改變當(dāng)前系數(shù)。一般有兩種方案可以實(shí)現(xiàn):一是通過(guò)一個(gè)寫(xiě)入端口直接修改當(dāng)前系數(shù);二是準(zhǔn)備多組備用系數(shù),并可以在與系統(tǒng)工作時(shí)鐘異步的情況下對(duì)這些備用系數(shù)進(jìn)行修改。方案一可以節(jié)省一定的系統(tǒng)資源,但對(duì)一組當(dāng)前系數(shù)的修改需要較長(zhǎng)時(shí)間,且此段時(shí)間內(nèi)系統(tǒng)無(wú)法正常工作,故實(shí)時(shí)性較差;方案二雖然消耗了較多的系統(tǒng)資源,但系統(tǒng)能在準(zhǔn)備系數(shù)(即修改備用系數(shù))時(shí)正常工作,修改當(dāng)前系數(shù)只需將當(dāng)前系數(shù)和備用系數(shù)交換,交換系數(shù)的過(guò)程只需一個(gè)時(shí)鐘節(jié)拍即可完成。綜合考慮各方面因素,方案二具備更好的系統(tǒng)性能,故優(yōu)先選擇方案二。
2 系統(tǒng)設(shè)計(jì)與FPGA實(shí)現(xiàn)
圖2的FIR濾波器結(jié)構(gòu)是高速、高精度的數(shù)字式橫向?yàn)V波器結(jié)構(gòu),在數(shù)字信號(hào)處理應(yīng)用中可作為功能塊,完成高速離散傅里葉變換、卷積和相關(guān),以及濾波功能。級(jí)聯(lián)型信號(hào)處理器的設(shè)計(jì)正是基于此結(jié)構(gòu),其FPGA實(shí)現(xiàn)的總體結(jié)構(gòu)如圖3所示。
此級(jí)聯(lián)型信號(hào)處理器的外部輸入數(shù)據(jù)Din字長(zhǎng)16位,系數(shù)字長(zhǎng)16位,輸入數(shù)據(jù)和系數(shù)均采用二進(jìn)制補(bǔ)碼方式。內(nèi)部有A,B兩組系數(shù)寄存器,一個(gè)存儲(chǔ)當(dāng)前系數(shù),另一個(gè)存儲(chǔ)修改系數(shù),用戶可通過(guò)數(shù)據(jù)線D在與系統(tǒng)時(shí)鐘異步的情況下對(duì)系數(shù)進(jìn)行修改,也可使A,B兩組系數(shù)在系統(tǒng)工作的過(guò)程中相互“交換”。系統(tǒng)具有用戶控制切換和系統(tǒng)自動(dòng)切換兩種系數(shù)切換方式。為了保持完整的數(shù)據(jù)精度,對(duì)于延時(shí)、乘法和相加鏈的中間結(jié)果是以滿精度進(jìn)行運(yùn)算的,若N=2K,則系統(tǒng)的滿精度為31+K位,考慮到單片使用時(shí)N級(jí)可擴(kuò)展到2N級(jí),所以應(yīng)選用的滿精度為32+K位,本系統(tǒng)采用32階濾波器設(shè)計(jì),故滿精度為37位。在延時(shí)、乘法和相加鏈的輸出端,設(shè)計(jì)一個(gè)可編程的桶形移位器(即數(shù)據(jù)選擇單元),它可從四組24位數(shù)據(jù)字段[7~30],[11~34],[15~38]和[20~43]字段中任選一種,這四組字段從FIR濾波器輸出的37位結(jié)果[0~36]中得到,所選的24位在輸出前需進(jìn)行舍入或符號(hào)擴(kuò)展,至于如何選擇,則根據(jù)實(shí)際應(yīng)用而定。另外,本系統(tǒng)還為用戶提供了系統(tǒng)復(fù)位(reset)、工作許可(go)、狀態(tài)監(jiān)測(cè)(error,out-ready)等常用握手信號(hào)。用戶可以讀寫(xiě)控制邏輯中的狀態(tài)控制寄存器來(lái)切換當(dāng)前系數(shù),選擇輸出字段和設(shè)置系統(tǒng)工作模式(單片或級(jí)聯(lián),當(dāng)系統(tǒng)課用于級(jí)聯(lián)時(shí),Cin為級(jí)聯(lián)輸入),其內(nèi)部寄存器的詳細(xì)描述見(jiàn)表1。
用戶還可以通過(guò)數(shù)據(jù)線D、地址信號(hào)address、讀寫(xiě)控制信號(hào)W、系統(tǒng)使能信號(hào)Ce、片選信號(hào)Cs等對(duì)系數(shù)寄存器A,B以及狀態(tài)控制寄存器進(jìn)行讀寫(xiě)。
評(píng)論