<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 一種用于光盤伺服控制系統(tǒng)的通用濾波器的設計

          一種用于光盤伺服控制系統(tǒng)的通用濾波器的設計

          作者: 時間:2009-12-18 來源:網絡 收藏


            需要特別說明的是,在對MEM1和MEM2存放數據時,系數和X(k)、Y(k)必須是一一對應的,從而使每次讀數據時的讀地址相同,簡化尋址單元的設計。的運作是由狀態(tài)機(邏輯單元)控制的,流程如下:
            (1)初始化系數存儲單元,根據SP算出X(k)、Y(k)在MEM2中的分界地址SP+N和SP+M+N;
            (2)從MEM1、MEM2的(SP+j)單元讀出數據送MAC計算,MEM2讀出的數據寫回(SP+j-1)單元,j為0時的數據無效,不寫回;當j為M+N時,轉步驟(4);
          (3)j加1,重復步驟(2);
            (4)一次Y(k)計算完成。將當前ADC的輸入寫回到MEM2的(SP+M+N)單元;
           ?。?)將本次計算所得的Y(k)送SP+M,j復位為0,重復步驟(2)。
          3 實現與仿真
            按照上述設計思想,用Verilog對系統(tǒng)進行RTL描述,代碼層次結構如圖4所示,其中,F―TOP為頂層wrapper模塊,連接MAC、STATEM、SRAM三個子模塊。MAC實現圖3中虛線所示的Booth乘加器,得到的乘積為32 bits數,然后經過舍入調整(rounding)將其轉化為16 bits數;STATEM模塊實現上文提到的控制流程;SRAM模塊由系數SRAM和數據SRAM(存放X(k)、Y(k))組成,分別對應圖3的MEM1、MEM2,為了方便后面的驗證,直接調用Xilinx的SRAM單元RAMB4―S8―S8。

            代碼使用synopsys VCS進行仿真,通過debussy的PLI接口生成fsdb波形文件。在debussy中對波形(圖5所示是波形仿真圖)進行分析。當前的配置寄存器的值為0x0000018f,為三階IIR。READ―EN為讀使能信號,低電平有效。STATE―WE―LOC為寫使能信號,低電平有效。RADDR―LOC和WADDR―LOC是存儲單元的地址,地址范圍從0到5,與三階IIR濾波器對應;當WADDR―LOC為5時,寫入的是X(k),下一時鐘周期變?yōu)?,寫入Y(k)(標尺線所對的值0x000a,已經過rounding處理)。XIN―LOC和YIN―LOC是MAC的輸入數據。STATE―LOC和YIN―LOC是MAC的輸入數據。CUR―STATE為狀態(tài)機的狀態(tài)變化,可以看出,與前面的狀態(tài)含義和狀態(tài)機實現策略一致。這里,讀寫地址在整個運算過程中都占用兩個時鐘周期是為了保證MAC運算的正確完成,當X(k)和計算所得的Y(k)寫回時,不涉及MAC運算,因此,只分配一個時鐘周期。

            為了確保濾波器以及整個控制系統(tǒng)設計的正確性,我們選用Xilinx Spartan2的XC2S50系列做FPGA驗證。首先,在synplify中生成網表文件(edf),然后,通過Xilinx ISE生成帶延時信息的單元網表文件(v)和線延時文件(sdf),用于在VCS中進行后仿真,最后生成FPGA下載文件(bit)。XC2S50硬件占用情況如表2所示。表2所示是FPGA資源分配表。


          該濾波器在伺服控制電路中的應用表明,激 光頭的恢復時間、穩(wěn)態(tài)誤差等計數參數均滿足實際要求。該單元可直接用于伺服芯片的聚焦尋跡模塊。
          4 結束語
            文中介紹了一種通用可配置濾波器的設計和實現。通過對該濾波器的配置可實現不同階數和類型的濾波器,從而加大以數字濾波為基礎的應用的靈活性。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();