91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 模擬技術

異步FIFO的VHDL設計

發布時間:2008/5/27 0:00:00 訪問次數:727

        作者:清華大學電子工程系微波與數字通信技術國家重點實驗室(100084)沙燕萍

     皇甫偉 曾烈光 來源:《電子技術應用》

     摘要:給出了一個利用格雷碼對地址編碼的羿步fifo的實現方法,并給出了vhdl程序,以解決異步讀寫時鐘引起的問題。

    

    

     關鍵詞:fifo

     雙口ram 格雷碼 vhdl

     fifo(先進先出隊列)是一種在電子系統得到廣泛應用的器件,通常用于數據的緩存和用于容納異步信號的頻率或相位的差異。fifo的實現通常是利用雙口ram和讀寫地址產生模塊來實現的。fifo的接口信號包括異步的寫時鐘(wr_clk)和讀時鐘(rd_clk)、與寫時鐘同步的寫有效(wren)和寫數據(wr_data)、與讀時鐘同步的讀有效(rden)和讀數據(rd_data)。為了實現正確的讀寫和避免fifo的上溢或下溢,通常還應該給出與讀時鐘和寫時鐘同步的fifo的空標志(empty)和滿標志(full)以禁止讀寫操作。

     1 異步fifo功能描述

     圖1給出了fifo的接口信號和內部模塊圖。

     由圖1可以看出,寫地址產生模塊根據寫時鐘和寫有效信號產生遞增的寫地睛,讀地址產生模塊根據讀時鐘和讀有效信號產生遞增的讀地址。fifo的操作如下:在寫時鐘wr_clk的升沿,當wren有效時,將wr_data寫入雙口ram中寫地址對應的位置中;始終將讀地址對應的雙口ram中的數據輸出到讀數據總線上。這樣就實現了先進先出的功能。

    

    

    

    

    

     寫地址產生模塊還根據讀地址和寫地址關系產生fifo的滿標志。當wren有效時,若寫地址+2=讀地址時,full為1;當wren無效時,若寫地址+1=讀地址時,full為1。讀地址產生模塊還根據讀地址和寫地址的差產生fifo的空標志。當rden有效時,若寫地址-1=讀地址時,empty為1;當rden無效時,若寫地址=讀地址時,empty為1。按照以上方式產生標志信號是為了提前一個時鐘周期產生對應的標志信號。

     由于空標志和滿標志控制了fifo的操作,因此標志錯誤會引起操作的錯誤。如上所述,標志的產生是通過對讀寫地址的比較產生的,當讀寫時鐘完全異步時,對讀寫地址進行比較時,可能得出錯誤的結果。例如,在讀地址變化過程中,由于讀地址的各位變化并不同步,計算讀寫地址的差值,可能產生錯誤的差值,導致產生錯誤的滿標志信號。若將未滿標志置為滿標志時,可能降低了應用的性能,降低寫數據速率;而將滿置標志置為未滿時,執行一次寫操作,則可能產生溢出錯誤,這對于實際應用來說是絕對應該避免的。空標志信號的產生也可能產生類似的錯誤。

     2 異步fifo的改進設計

     從以上分析中可以看出,異步fifo之所以會發生錯誤是國為在地址變化時,由于多位地址各位變化時間不同,異步時鐘對其進行采樣時數值可能為不同于地址變化喪后數值的其他值,異步產生錯誤的空標志和滿標志,以致于產生fifo的操作錯誤。

     格雷碼是一種在相鄰計數值之間只有一位發生變化的編碼方式。可以看出,若讀寫地址采用格雷碼編碼方式,就可以解決上面的問題。

     為了應用的靈活,還增加了兩個標志信號,將滿(almosf_full)標志和空(almost_empty)標志分別定義如下:當寫地址與讀地址的距離小于某個預先定義數值時,almost_full為1;當讀地址與寫地址的距離小于這個預先定義的數值時,almost_empty為1。

     3 異步fifo的vhdl實現

     硬件描述語言vhdl(very-high speed ic

     hardware description language)是一種應用于電路設計的高層次描述語言,具有行為級、寄存器傳輸級和門級等多層次描述,并且具有簡單、易讀、易修改和與工藝無關等優點。目前vhdl語言已經得到多種eda工具的支持,綜合工具得到迅速發展,vhdl語言的

        作者:清華大學電子工程系微波與數字通信技術國家重點實驗室(100084)沙燕萍

     皇甫偉 曾烈光 來源:《電子技術應用》

     摘要:給出了一個利用格雷碼對地址編碼的羿步fifo的實現方法,并給出了vhdl程序,以解決異步讀寫時鐘引起的問題。

    

    

     關鍵詞:fifo

     雙口ram 格雷碼 vhdl

     fifo(先進先出隊列)是一種在電子系統得到廣泛應用的器件,通常用于數據的緩存和用于容納異步信號的頻率或相位的差異。fifo的實現通常是利用雙口ram和讀寫地址產生模塊來實現的。fifo的接口信號包括異步的寫時鐘(wr_clk)和讀時鐘(rd_clk)、與寫時鐘同步的寫有效(wren)和寫數據(wr_data)、與讀時鐘同步的讀有效(rden)和讀數據(rd_data)。為了實現正確的讀寫和避免fifo的上溢或下溢,通常還應該給出與讀時鐘和寫時鐘同步的fifo的空標志(empty)和滿標志(full)以禁止讀寫操作。

     1 異步fifo功能描述

     圖1給出了fifo的接口信號和內部模塊圖。

     由圖1可以看出,寫地址產生模塊根據寫時鐘和寫有效信號產生遞增的寫地睛,讀地址產生模塊根據讀時鐘和讀有效信號產生遞增的讀地址。fifo的操作如下:在寫時鐘wr_clk的升沿,當wren有效時,將wr_data寫入雙口ram中寫地址對應的位置中;始終將讀地址對應的雙口ram中的數據輸出到讀數據總線上。這樣就實現了先進先出的功能。

    

    

    

    

    

     寫地址產生模塊還根據讀地址和寫地址關系產生fifo的滿標志。當wren有效時,若寫地址+2=讀地址時,full為1;當wren無效時,若寫地址+1=讀地址時,full為1。讀地址產生模塊還根據讀地址和寫地址的差產生fifo的空標志。當rden有效時,若寫地址-1=讀地址時,empty為1;當rden無效時,若寫地址=讀地址時,empty為1。按照以上方式產生標志信號是為了提前一個時鐘周期產生對應的標志信號。

     由于空標志和滿標志控制了fifo的操作,因此標志錯誤會引起操作的錯誤。如上所述,標志的產生是通過對讀寫地址的比較產生的,當讀寫時鐘完全異步時,對讀寫地址進行比較時,可能得出錯誤的結果。例如,在讀地址變化過程中,由于讀地址的各位變化并不同步,計算讀寫地址的差值,可能產生錯誤的差值,導致產生錯誤的滿標志信號。若將未滿標志置為滿標志時,可能降低了應用的性能,降低寫數據速率;而將滿置標志置為未滿時,執行一次寫操作,則可能產生溢出錯誤,這對于實際應用來說是絕對應該避免的。空標志信號的產生也可能產生類似的錯誤。

     2 異步fifo的改進設計

     從以上分析中可以看出,異步fifo之所以會發生錯誤是國為在地址變化時,由于多位地址各位變化時間不同,異步時鐘對其進行采樣時數值可能為不同于地址變化喪后數值的其他值,異步產生錯誤的空標志和滿標志,以致于產生fifo的操作錯誤。

     格雷碼是一種在相鄰計數值之間只有一位發生變化的編碼方式。可以看出,若讀寫地址采用格雷碼編碼方式,就可以解決上面的問題。

     為了應用的靈活,還增加了兩個標志信號,將滿(almosf_full)標志和空(almost_empty)標志分別定義如下:當寫地址與讀地址的距離小于某個預先定義數值時,almost_full為1;當讀地址與寫地址的距離小于這個預先定義的數值時,almost_empty為1。

     3 異步fifo的vhdl實現

     硬件描述語言vhdl(very-high speed ic

     hardware description language)是一種應用于電路設計的高層次描述語言,具有行為級、寄存器傳輸級和門級等多層次描述,并且具有簡單、易讀、易修改和與工藝無關等優點。目前vhdl語言已經得到多種eda工具的支持,綜合工具得到迅速發展,vhdl語言的

相關IC型號

熱門點擊

 

推薦技術資料

泰克新發布的DSA830
   泰克新發布的DSA8300在一臺儀器中同時實現時域和頻域分析,DS... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
于田县| 乌鲁木齐市| 新安县| 佛坪县| 二连浩特市| 股票| 容城县| 临安市| 罗源县| 昆山市| 瓦房店市| 饶阳县| 中西区| 西林县| 巴彦淖尔市| 元江| 明光市| 东莞市| 宝山区| 民丰县| 穆棱市| 海门市| 昌邑市| 禄劝| 山东| 久治县| 和静县| 大渡口区| 和政县| 黑水县| 东平县| 商都县| 河津市| 子洲县| 南城县| 利辛县| 囊谦县| 虎林市| 佛冈县| 额敏县| 淳安县|