新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用一個時鐘在FPGA中計算直方圖

用一個時鐘在FPGA中計算直方圖

作者: 時間:2011-09-21 來源:網(wǎng)絡(luò) 收藏

直方圖對數(shù)字?jǐn)?shù)據(jù)的分析通常是一種有用的工具。不過,要從一個直方圖獲得可靠的結(jié)果,必須獲得大量數(shù)據(jù),通常是要10萬到100萬個點。如果需要分析一個ADC的數(shù)字輸出,可以采用一片(圖1)。

  圖中顯示了直方圖、RAM和脈沖發(fā)生器部分,用于捕捉和顯示基于14 位數(shù)據(jù)計算出來的直方圖。RAM塊是的內(nèi)置RAM,而直方圖塊是用于計算的VHDL(高級設(shè)計語言)代碼?! 碜訟DC的14 位并行數(shù)據(jù)Device_ Data[13..0]進(jìn)入直方圖塊,并進(jìn)入RAM的Rd_Addr輸入端。RAM在其地址位置RAMDataOut[ 15..0]上提供數(shù)據(jù)。這個數(shù)據(jù)環(huán)回到直方圖塊,將其加1后送至一個16 位數(shù)據(jù)的輸出端DataOut[15..0]。當(dāng)WREN(寫使能)端為邏輯電平1時,數(shù)據(jù)被寫在管腳Wr_Addr[13..0]處的地址。這種方法與數(shù)據(jù)來自Device_Data[13..0]是相同的。

  RAM從輸入到輸出有一個固定的延遲。即,當(dāng)輸入為Rd_Addr時,經(jīng)過一個固定延遲后,數(shù)據(jù)出現(xiàn)在其輸出端RAMDataOut。這個延遲隨不同而改變。要注意這個延遲,使得有兩個時鐘的延遲到Device_Data,然后再計算直方圖。RAM中的延遲應(yīng)小于兩個時鐘周期;否則,就可能有數(shù)據(jù)丟失。這個約束限制了Device_Clk的最大頻率。

  Cntr_Value給出了用于計算直方圖的輸入數(shù)據(jù)數(shù)量。Pulse_Gen塊產(chǎn)生一個脈沖,進(jìn)入輸入端Rst_Cntr,用于復(fù)位計數(shù)器。此時,直方圖部分再次用Cntr_Value的下組輸入數(shù)據(jù)計算直方圖。Cntr_Value為15 位,但可以增加它,獲得更多的直方圖數(shù)據(jù)。

  Sel_Data與Rst_RAM信號是重置在FPGA RAM中存儲的數(shù)據(jù)。當(dāng)Rst_RAM腳出現(xiàn)高信號時,直方圖塊的DataOut腳的所有位均為0。當(dāng)直方圖塊的Sel_Data輸入腳為高信號時,RAM_Wr_Addr的輸出不是Device_Data,而是一個從0上升至16384的內(nèi)部生成的斜波。直方圖塊不做計算,因為這樣做會重置RAM的地址。

  

用一個時鐘在FPGA中計算直方圖

  圖1,直方圖計算電路從一個FPGA的RAM塊中獲取數(shù)據(jù)。

  當(dāng)FPGA完成了直方圖計算時,RAM就可以選擇Sel_ Data為邏輯高,而將保持Rst_ RAM為邏輯低,從而讀取直方圖數(shù)據(jù)。RAM地址中的數(shù)據(jù)順序地退出輸出腳,并且可以將數(shù)據(jù)傳輸給一臺PC。由于所有塊都以一個單時鐘Device_Clk工作,因此本設(shè)計很簡單,有助于滿足時序的約束。可以方便地修改本設(shè)計,從而獲得16 位或12 位數(shù)據(jù)直方圖。



關(guān)鍵詞: FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉