《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 激光告警系統的異步FIFO設計
激光告警系統的異步FIFO設計
來源:微型機與應用2010年第21期
付 林
(中山職業技術學院 電子信息工程系,廣東 中山 528404)
摘要: 介紹了在激光告警系統中采用異步FIFO解決A/D數據采樣與FPGA數據處理模塊之間的不同速率匹配問題。在分析異步FIFO設計難點基礎上,提出利用Gray碼計數器作為讀寫地址編碼,有效地同步了異步信號,避免了亞穩態現象的產生,給不同速率間的數據傳輸提供了一種有效的解決方案。同時采用Verilog語言描述,提高了硬件設計的可移植性,減少了系統的復雜性,提高了激光告警接收系統的可靠性。
Abstract:
Key words :

摘  要: 介紹了在激光告警系統中采用異步FIFO解決A/D數據采樣與FPGA數據處理模塊之間的不同速率匹配問題。在分析異步FIFO設計難點基礎上,提出利用Gray碼計數器作為讀寫地址編碼,有效地同步了異步信號,避免了亞穩態現象的產生,給不同速率間的數據傳輸提供了一種有效的解決方案。同時采用Verilog語言描述,提高了硬件設計的可移植性,減少了系統的復雜性,提高了激光告警接收系統的可靠性。
關鍵詞: 激光告警接收系統;異步FIFO;Gray碼

    快速在片激光告警接收系統中,A/D信號采樣頻率與FPGA中數據處理系統的工作頻率往往不一致,因此在這種情況下,為避免數據丟失,需要設計一種數據緩存。本文采用Verilog HDL語言設計了一種異步FIFO(時鐘周期和相位相互獨立),它不僅提供數據緩沖,而且能夠實現不同時鐘域間的轉換等功能。
1 激光告警接收系統的數據采樣和處理
    對于高速在片激光告警接收系統,具有較高的采樣速率、低功耗、體積小以及相應的高抗干擾性能是提高其成功獲取敵方激光武器有效數據的關鍵,而采用線性CMOS芯片和提高系統的集成度是實現小體積、低功耗的最經濟、最有效的途經。本系統采用Xilinx公司Spartan-Ⅲ系列芯片XC3S1500,設計完成異步FIFO緩存,包括采集控制電路、FFT數據處理、時鐘控制信號、接口電路等。激光告警接收系統的數據采樣和處理框圖如圖1所示。

2 異步FIFO設計
    異步FIFO由讀、寫地址邏輯,存儲單元和空滿標志邏輯四部分組成,如圖2所示。由圖2可以看出,整個系統分為兩個獨立的時鐘域(讀時鐘域和寫時鐘域),FIFO的存儲介質為一塊雙口RAM,可以同時進行讀寫操作。在寫時鐘域部分,由寫地址邏輯生成寫控制信號和寫地址;在讀時鐘域部分,由讀地址邏輯生成讀控制信號和讀地址。空滿標志信號,由寫指針和讀指針通過異步比較器相互比較生成。對于異步FIFO設計主要有以下兩個難點:一是如何同步異步信號,避免觸發器亞穩態的產生;二是如何根據FIFO的指針信號正確地判斷FIFO的空滿狀態[1]。

2.1 亞穩態問題的解決
    在數字電路中,觸發器需要滿足setup/hold時間要求。當一個信號被寄存器鎖存時,如果信號和時鐘之間不能滿足這個要求,data2端的值就是不確定的,這個過程稱為亞穩態。如圖3所示為常用異步時鐘和亞穩態[2]。
在異步FIFO中,由于時鐘之間周期和相位完全獨立,因此數據的丟失概率不為零。盡管亞穩態無法徹底消除,但是可以通過下面方法將其降低到一個可以接受的范圍之內。

    (1)對讀地址/寫地址采用Gray碼設計。這是因為采用二進制計數時所有位都可能變化,不利于跨時鐘域的同步。例如,3位二進制數從3變到4(即011~100)時,所有位都發生了變化,而Gray碼的特點是每次只有一個數據位變化。由于同步多個異步輸入信號出現亞穩態的概率遠遠大于同步一個異步信號的概率,因此,寫地址指針和讀地址指針均采用Gray碼計數器,可以保證一個時鐘域的指針盡可能安全地被轉換到另一個時鐘域,有效避免了亞穩態。
    (2)采用觸發器來同步異步輸入信號,如圖4中的兩級觸發器,可以將出現亞穩態幾率降低到一個很小的程度。

    不過,使用這種方法會增加一級延時。為了充分利用FPGA器件資源,提高系統運行速度,同時有效地避免亞穩定狀態,結合系統實際應用,本設計采用Gray碼設計讀寫地址。
2.2 空滿狀態的判斷
    在異步FIFO設計中,正確地產生“空”/“滿”標志是最困難的部分,主要有兩個問題:(1)異步時鐘域問題,由上分析可知,可采用Gray碼計數器解決;(2)因為FIFO“空”/“滿”都表明讀/寫指針相等,因此必須準確區分是讀“空”還是寫“滿”。“空”、“滿”狀態的產生需要兩個條件:①對方向的判定:即判定具體是寫地址指針將要接近讀地址指針,還是讀地址指針將要接近寫地址指針;②讀寫地址是否相等[4]。
解決辦法:將FIFO地址空間按最高兩位劃分成4個象限,每當讀/寫地址相等時,通過對最高兩位譯碼以產生正確的“空”/“滿”標志。
    若寫指針比讀指針滯后一個象限,則FIFO為“接近滿”狀態,此時置標志“direction”為1,并且鎖存其值,相應等式為:
wire disrest_n=~((wptr[n]^rptr[n-1]))&~((wptr[n-1])^rptr[n] ))
若寫指針比讀指針超前一個象限,則FIFO為“接近空”狀態,此時置標志“direction”為0,并且鎖定其值,相應等式為:
wire dirclr_n=~((~(wptr[n]^rptr[n-1])&(wptr[n-1]^rptr[n]))∣~wrst_n
3 模塊設計的Verilog實現[3-4]
3.1 存儲模塊RAM

    為增加設計的可移植性,本設計的存儲單元沒有采用ISE8.1軟件中的IP核,而是通過Verilog HDL語句設計一個二維數組,通過修改參數可得到相應數據寬度的輸入/輸出存儲空間。主要語句如下:
module dp_ram(rdata,wdata,waddr,raddr,wclken,wclk);
parameter DATA_WIDTH=12;
parameter ADDR_WIDTH=10;
parameter DEPTH=1<<ADDR_WIDTH;
always @(posedge wclk)
if (wclken) MEM[waddr]<=wdata;
assign rdata=MEM[raddr];
endmodule
3.2 讀/寫、空/滿標志邏輯模塊
    讀寫地址設計中引用了Gray碼,因Gray碼是一種在相鄰計數之間只有一位發生變化的編碼方式,用Gray碼做地址計數可以消除在電路中的模糊現象,避免亞穩態。Gray碼可以借助二進制計數器實現。
3.3 異步比較器
    異步比較器用于判斷比較讀指針、寫指針的大小,輸出控制信號,判斷存儲器中數據是“接近滿”還是“接近空”。其主要程序語句如下:
module async_cmp(aempty_n,afull_n,wptr,rptr,wrst_n);
always @(posedge high or negedge dirset_n or negedge dirclr_n)
if (!dirclr_n) direction <= 1'b0;
else if (!dirset_n) direction <= 1'b1;
else direction <= high;
endmodule
3.4 異步FIFO模塊及RTL級硬件電路[5]
    利用Verilog硬件設計描述語言,在Xilinx公司ISE 8.1軟件開發環境中編譯后得出如圖5所示的異步FIFO模塊。

    采用綜合工具Synplify Pro軟件對該設計進行綜合,得出RTL級硬件電路結果圖如圖6所示。

3.5 芯片資源利用
    表1列出了設計高速在片激光告警接收系統的異步FIFO占用FPGA(XC3S1500)芯片內部資源的情況。由表1可知,FIFO模塊完成后,還有大量的資源可以利用,因此剩余資源可用于實現FFT數據處理、采集控制、顯示等功能,從而在一塊芯片上完成多種功能,可有效減少激光告警接收機的體積,朝小型化發展。


4 系統波形仿真
    讀寫時鐘異步使得FIFO存儲器的輸入和輸出數據速率不相等,在讀操作時鐘頻率高于寫操作時鐘頻率時,可能出現“讀空”狀態;當寫操作時鐘頻率高于讀操作時鐘頻率時,可能出現“寫滿”狀態。在高速在片激光告警接收系統中,數據讀取時鐘比寫時鐘要高,本文選取第一種情況進行仿真。無論是“讀空”還是“寫空”,對于異步FIFO來說,讀取的數據一定等于寫入的數據。利用Modelsim SE 6.0仿真軟件進行仿真,其波形如圖7所示。結果表明,該設計是正確的。

    本文提出的FIFO設計方法解決了不同時鐘域間的數據緩沖和時鐘轉換功能問題,避免了數據的丟失;通過運用Gray碼計數器一次只變換一位的特點,有效地同步了異步信號,避免了亞穩態的產生;與二進制計數器相比,還能減少線路切換,進而減少功率的消耗[3];采用Verilog HDL語言描述設計,可移植性好、生成的硬件電路面積小、速度快、系統可靠性高。目前,該FIFO設計已經在所研制的激光告警接收系統中得到應用。
參考文獻
[1] 黃平,何虎剛,徐定杰.導航接收機的非對稱異步FIFO設計[J].彈箭與制導學報,2008(2):265-268.
[2] 楊軍,孔兵,宋克儉,等.基于FPGA的高速異步FIFO存儲器設計[J].云南大學學報(自然科學版),2007,29(6):560-565.
[3] 劉波.精通Verilog HDL語言[M].北京:電子工業出版社,2007.
[4] (美)CZLETTZ MD,著. Verilog HDL高級數字設計[M].張雅綺,李鏘,等譯.北京:電子工業出版社,2006.
[5] 簡宏倫.精通Verilog HDL:IC設計核心技術實例詳解[M].北京:電子工業出版社,2005.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产另类ts人妖一区二区| 精品一区二区三区波多野结衣| 日日夜夜天天干| 亚洲精品无码久久久久| 调教女m视频免费区| 日本一道本高清免费| 亚洲一区二区三区高清视频| 污污成人一区二区三区四区| 国产亚洲精品精品国产亚洲综合 | 国产大屁股喷水视频在线观看| k频道国产欧美日韩精品| 成年人视频在线免费播放| 久久精品亚洲一区二区三区浴池 | 亚洲AV日韩精品久久久久久A| 色综合久久天天综合| 国产综合色在线精品| 久久久999国产精品| 欧美日韩国产片| 哒哒哒免费视频观看在线www| 色吧亚洲欧美另类| 尹人久久大香找蕉综合影院| 久久99精品久久久久久动态图 | 国产成人无码av在线播放不卡| aⅴ精品无码无卡在线观看| 日本香蕉一区二区三区| 五月婷婷综合在线| 欧美xxxxx喷潮| 免费一级美国片在线观看| 香蕉污视频在线观看| 国产欧美久久久精品影院| 巨胸狂喷奶水视频www网站免费| 国产青青草视频| 中国黄色毛片大片| 日日噜狠狠噜天天噜AV| 久久国产精品自由自在| 欧美激情综合色综合啪啪五月| 亚洲色欲久久久久综合网| 色婷婷久久综合中文久久蜜桃| 国产精品久久久久久搜索| segui久久综合精品| 婷婷久久香蕉五月综合|