一種基于FPGA分布式算法的濾波器設計實(shí)現
利用Verilog硬件描述語(yǔ)言設計本系統軟件,系統主要分為以下4個(gè)部分。包括頂層文件、A/D采樣、算法實(shí)現和D/A轉換。系統總體結構如圖2所示。
由于FPGA頻率為100 MHz,采用的DAC0809轉換頻率必須小于1 MHz,所以在頂層文件對系統時(shí)鐘進(jìn)行200分頻,提供外圍所需時(shí)鐘。然后對各模塊進(jìn)行例化,使之成為完整的系統。
對A/D采樣輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿時(shí)啟動(dòng)A/D轉換,之后EOC輸出信號變低,指示轉換正在進(jìn)行。直到完成A/D轉換,EOC變?yōu)楦唠娖?,指示A/D轉換結束,結果數據已存入鎖存器,這個(gè)信號可用作中斷申請。當OE輸入高電平時(shí),輸出三態(tài)門(mén)打開(kāi),轉換結果的數字量輸出到數據總線(xiàn)上。CLK為時(shí)鐘輸入信號線(xiàn)。由頂層文件的分頻時(shí)鐘提供500 kHz時(shí)鐘,對信號進(jìn)行采集。
算法主體的實(shí)現主要由以下幾個(gè)部分組成:數據接收存儲、數據選擇器、2個(gè)存儲器、加法和控制部分。
數據接收是在每個(gè)時(shí)鐘下降沿時(shí)檢測轉換完成信號,如果完成,則存入對應的存儲器中,對于N階的系統,就需要存儲N個(gè)數據等待處理。然后利用數據選擇器依次選擇各個(gè)數據,對數據的每一位進(jìn)行檢測和提取,組成算法中所需要的數據。在控制信號的作用下利用累加器對數據疊加、移位處理即可實(shí)現。
最后,FPGA向DAC0832的數據輸入口(D10~D17)輸送數據。提供DAC0832數據鎖存允許控制信號ILE,高電平有效。提供DAC0832控制信號(CS:片選信號;Xfer:數據傳輸控制信號;WRl、WR2:DAC寄存器寫(xiě)選通信號),低電平有效。
3 仿真實(shí)驗、工況信號測試實(shí)驗
基于分布式算法低通FIR濾波器選用xilinx公司的virrex-Ⅱpro器件,在isel0.1下進(jìn)行設計。利用modelsim 6.5對濾波器進(jìn)行仿真。系統采用頻率為500 kHz的分頻時(shí)鐘,在FPGA中產(chǎn)生一個(gè)高頻方波和一個(gè)低頻鋸齒波信號,并對兩個(gè)信號進(jìn)行疊加。疊加后的信號作為輸入,對應圖中DIN,經(jīng)過(guò)系統處理后輸出結果對應圖中RESULT,仿真結果如圖3所示。
評論