??? 關(guān)鍵詞:FIR/IIR,Verilog,F(xiàn)PGA驗(yàn)證
1 引 言
通常,DVD/CD盤片在高速旋轉(zhuǎn)時(shí),由于表面翹曲、不圓度或者外界干擾等因素的存在,使讀數(shù)光束焦深范圍(簡(jiǎn)稱讀數(shù)光點(diǎn))對(duì)目標(biāo)信跡的跟蹤掃描出現(xiàn)誤差。對(duì)此,CD、DVD機(jī)中設(shè)置了伺服控制系統(tǒng),以實(shí)現(xiàn)讀數(shù)光點(diǎn)對(duì)目標(biāo)信跡的動(dòng)態(tài)跟蹤。該系統(tǒng)以PID(比例微積分)閉環(huán)控制理論為基礎(chǔ),采用數(shù)字濾波的方式實(shí)現(xiàn)。該伺服控制系統(tǒng)的實(shí)現(xiàn)原理如圖1所示。
![](/article/UploadPic/2009-5/200959121650561.jpg)
2 系統(tǒng)設(shè)計(jì)
2.1 設(shè)計(jì)原理
?? 數(shù)字濾波器可以用式(1)的差分方程來表示:
![](/article/UploadPic/2009-5/200959121650372.jpg)
其中,x(n)為輸入序列,y(n)為輸出序列,ak、bk為各自的系數(shù)。其對(duì)應(yīng)的系統(tǒng)函數(shù)為:
?
![](/article/UploadPic/2009-5/200959121650681.jpg)
當(dāng)ak不都為0時(shí),就是遞歸結(jié)構(gòu)的IIR濾波器;當(dāng)ak都為0時(shí),就是非遞歸結(jié)構(gòu)的FIR濾波器。
2.2 設(shè)計(jì)方法
由于傳統(tǒng)的濾波器設(shè)計(jì)都與濾波器的類型密切相關(guān),不同的類型采用不同的乘加網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn),因此,無法滿足通用的要求。但從濾波器的原始差分表達(dá)式(如式(1)所示)可知,F(xiàn)IR和IIR的區(qū)別僅在于ak是否為零,兩者都進(jìn)行累加乘積計(jì)算,這一特點(diǎn)決定了可以采用編程來配置濾波器的類型和階數(shù),再用狀態(tài)機(jī)控制累計(jì)乘積的方式實(shí)現(xiàn)濾波器,從而達(dá)到階數(shù)、類型都可配置的目的。
由上述分析可知,所有的x(k)、y(k)、ak、bk均要由存儲(chǔ)器送向運(yùn)算單元進(jìn)行計(jì)算。若采用以運(yùn)算單元為中心的馮諾依曼結(jié)構(gòu),依次從存儲(chǔ)器中取數(shù)據(jù)的做法,則必然會(huì)使速度受到很大影響。因此,我們借用Harvard結(jié)構(gòu)將指令和數(shù)據(jù)分開編址、存取的做法,將x(k)、y(k)和ak、bk分別存放在不同的存儲(chǔ)器中,單獨(dú)編址,加快數(shù)據(jù)處理速度。同時(shí),考慮到x(k)、y(k)可能同時(shí)對(duì)存儲(chǔ)器讀寫,將讀、寫數(shù)據(jù)總線分開,進(jìn)一步提高性能。圖2就是采用類Harvard結(jié)構(gòu)設(shè)計(jì)的濾波器的結(jié)構(gòu)圖。
圖2中共包含一條指令流,三條數(shù)據(jù)流。指令流用于配置濾波器的和實(shí)現(xiàn)濾波器的讀寫控制;數(shù)據(jù)流的D—BUS1用于Y(n)的寫回,D—BUS2用于X(n)、Y(n)的讀出,Coef—BUS用于濾波器系數(shù)的寫回和讀出。因?yàn)橄禂?shù)存儲(chǔ)單元和X(k)、Y(k)存儲(chǔ)單元都采用雙端口SRAM,所以,可同時(shí)進(jìn)行讀、寫操作。
![](/article/UploadPic/2009-5/200959121650695.jpg)
![](/article/UploadPic/2009-5/200959121650867.jpg)
其控制邏輯中的配置寄存器(32bits)設(shè)計(jì)如表1所示。
需要特別說明的是,在對(duì)MEM1和MEM2存放數(shù)據(jù)時(shí),濾波器系數(shù)和X(k)、Y(k)必須是一一對(duì)應(yīng)的,從而使每次讀數(shù)據(jù)時(shí)的讀地址相同,簡(jiǎn)化尋址單元的設(shè)計(jì)。濾波器的運(yùn)作是由狀態(tài)機(jī)(邏輯單元)控制的,流程如下:
?。?)初始化系數(shù)存儲(chǔ)單元,根據(jù)SP算出X(k)、Y(k)在MEM2中的分界地址SP+N和SP+M+N;
?。?)從MEM1、MEM2的(SP+j)單元讀出數(shù)據(jù)送MAC計(jì)算,MEM2讀出的數(shù)據(jù)寫回(SP+j-1)單元,j為0時(shí)的數(shù)據(jù)無效,不寫回;當(dāng)j為M+N時(shí),轉(zhuǎn)步驟(4);
??? (3)j加1,重復(fù)步驟(2);
?。?)一次Y(k)計(jì)算完成。將當(dāng)前ADC的輸入寫回到MEM2的(SP+M+N)單元;
?。?)將本次計(jì)算所得的Y(k)送SP+M,j復(fù)位為0,重復(fù)步驟(2)。
3 實(shí)現(xiàn)與仿真
按照上述設(shè)計(jì)思想,用Verilog對(duì)系統(tǒng)進(jìn)行RTL描述,代碼層次結(jié)構(gòu)如圖4所示,其中,F(xiàn)—TOP為頂層wrapper模塊,連接MAC、STATEM、SRAM三個(gè)子模塊。MAC實(shí)現(xiàn)圖3中虛線所示的Booth乘加器,得到的乘積為32 bits數(shù),然后經(jīng)過舍入調(diào)整(rounding)將其轉(zhuǎn)化為16 bits數(shù);STATEM模塊實(shí)現(xiàn)上文提到的控制流程;SRAM模塊由系數(shù)SRAM和數(shù)據(jù)SRAM(存放X(k)、Y(k))組成,分別對(duì)應(yīng)圖3的MEM1、MEM2,為了方便后面的驗(yàn)證,直接調(diào)用Xilinx的SRAM單元RAMB4—S8—S8。
![](/article/UploadPic/2009-5/200959121651178.jpg)
為了確保濾波器以及整個(gè)控制系統(tǒng)設(shè)計(jì)的正確性,我們選用Xilinx Spartan2的XC2S50系列做FPGA驗(yàn)證。首先,在synplify中生成網(wǎng)表文件(edf),然后,通過Xilinx ISE生成帶延時(shí)信息的單元網(wǎng)表文件(v)和線延時(shí)文件(sdf),用于在VCS中進(jìn)行后仿真,最后生成FPGA下載文件(bit)。XC2S50硬件占用情況如表2所示。表2所示是FPGA資源分配表。
![](/article/UploadPic/2009-5/200959121651337.jpg)
??? 該濾波器在光盤伺服控制電路中的應(yīng)用表明,激 光頭的恢復(fù)時(shí)間、穩(wěn)態(tài)誤差等計(jì)數(shù)參數(shù)均滿足實(shí)際要求。該單元可直接用于伺服芯片的聚焦尋跡模塊。
4 結(jié)束語
文中介紹了一種通用可配置濾波器的設(shè)計(jì)和實(shí)現(xiàn)。通過對(duì)該濾波器的配置可實(shí)現(xiàn)不同階數(shù)和類型的濾波器,從而加大以數(shù)字濾波為基礎(chǔ)的伺服控制系統(tǒng)應(yīng)用的靈活性。
2 金 昕,黃 捷,劉 韜.一種用FPGA實(shí)現(xiàn)的FIR濾波器結(jié)構(gòu).微電子學(xué),1999(2)
3 劉毓敏.CD、VCD機(jī)伺服技術(shù)的發(fā)展.電聲技術(shù),1998(7)
4 N Sankarayya,Kaushik Roy,Debashis Bhattacharya.Algorithms for Low Power and High Speed FIR FilterRealization Using Differential Coefficients.IEEETransactions on Circuit and Systems-II:Analog andDigitalProcessing,June 1996
5 Ahmet Teyfik Erdogan,Tughrul Arslan.On the Low-Power Implementation of FIR Filtering Structures onSingle Multiplier DSPs.IEEE Transactions on CircuitandSystems-Ⅱ:Analog and Digital Processing,March 2002