學術咨詢服務,正當時......期刊天空網是可靠的職稱工作業績成果學術咨詢服務平臺!!!

基于FPGA的數據編碼電路設計

發布時間:2019-04-29所屬分類:科技論文瀏覽:1

摘 要: 摘要:在數據傳輸系統中,數據在傳輸的過程里會存在一些冗余信息,而且傳輸的數據需要預先進行編碼處理。針對數據傳輸過程中的問題,文中設計了一種數據編碼電路。該電路能將接收到的數據以四種不同的編碼方式發送出去,而且可以將傳輸數據中的冗余信息去除。

  摘要:在數據傳輸系統中,數據在傳輸的過程里會存在一些冗余信息,而且傳輸的數據需要預先進行編碼處理。針對數據傳輸過程中的問題,文中設計了一種數據編碼電路。該電路能將接收到的數據以四種不同的編碼方式發送出去,而且可以將傳輸數據中的冗余信息去除。該數據編碼電路通過Vivado硬件仿真平臺進行仿真驗證,使用XilinxZedBoardFPGA開發板來實現。實驗結果表明,本方案合理地使用了片上資源,在滿足電路在時序與功耗上的要求的同時,也滿足了功能上的要求。

  關鍵詞:半導體技術;數據編碼;VerilogHDL;FPGA

電子設計工程

  科技的進步推動著高速信息處理技術的發展,在工業生產、科研探索、消費電子等諸多領域中,信號處理傳輸的應用與日俱增[1-5]。當今世界科學技術快速發展,使得通信、雷達、航空航天等軍事或民用的各個領域對信息轉換的要求越來越高,因此對數據編碼的需求越來越廣泛[6-10]。數據編碼電路是不同模塊電路之間的橋梁,具有快速獲取信息、存儲信息、處理信息和發送信息的作用。數據編碼電路能對信號快速、有效地處理,尤其是在軍事領域和通信領域,早些將信息處理,這往往能達到至關重要的效果[11-13]。

  本文基于現場可編程門陣列(FieldProgrammableGateArray,FPGA)設計了一種數據編碼電路,解決數據傳輸過程中數據需要編碼轉換的問題。

  1數據編碼電路系統

  1.1數據編碼電路功能

  數據通過數據線DIN采用串行方式不間斷地輸入該電路,并且與時鐘CLK_30MHz同步。該電路根據模式MODE的設定,對接收到的有效數據進行重新排列。通過系統時鐘CLK_48MHz產生不同頻率的輸出信號,即同步時鐘信號CLK_OUT。為了使得通信持續進行,該電路需要使得接收有效數據的時間與輸出有效數據的時間基本一致。

  最終將有效信號分別輸出到三個數據輸出端DOUT_A、DOUT_B和DOUT_C上,同時產生有效指示信號VALID。數據編碼電路的主要功能包括:①接收數據,識別有效數據,并存儲數據;②根據模式,產生不同頻率的輸出時鐘,使得接收有效數據的時間與輸出有效數據的時間基本一致;③根據模式,對三個端口的數據進行編碼轉換,串行發送數據。

  1.2數據編碼電路結構

  接收模塊識別數據,組裝數據并且產生寫使能與寫地址;分頻模塊得到輸出的頻率;存儲模塊將得到的數據存儲與讀出;發送模塊將數據從存儲模塊讀出,將并行數據串行輸出,并且與控制模塊通過握手進行協同操作;控制模塊產生讀使能與讀地址來控制存儲模塊,根據模式控制分頻模塊的分頻狀態,并且與發送模塊進行握手通信[14-15]。

  2硬件模塊設計

  對于輸入數據端口DIN,每幀輸入數據由720組數據組成,每組數據由八位有效數據和兩位無效數據構成。對于輸出數據端口DOUT_A、DOUT_B和DOUT_C,輸出數據只輸出不同模式下的有效數據。硬件電路實現了輸入到輸出之間的數據處理過程。

  2.1接收模塊

  接收模塊由三部分電路組成,即串并轉換電路、寫地址產生電路與寫使能產生電路。首先,串并轉換電路識別幀頭;再將串行數據DIN并行化,得到數據傳輸過程中的有效信號;之后產生相應的寫地址與寫使能。接收模塊每次并行化的數據由6組有效數據構成。這可以減少了寫使能與寫地址的變化頻率,從而降低了動態功耗。

  2.2存儲模塊

  存儲模塊是一個典型的偽雙口RAM,一個端口只讀,另一個端口只寫。偽雙口RAM存儲了兩幀數據,根據地址將該存儲模塊分為兩個部分,這兩部分分別存儲了兩幀數據。當一部分數據進行寫操作,另一部分數據可以進行讀操作,這完成了數據的無縫緩沖和處理。這兩部分可以同時分別進行讀或寫,從而實現典型的乒乓操作。存儲模塊需要耗費大量的寄存器資源。通過調用相應的IP核,并且使用塊RAM來實現,不僅合理地使用了FPGA資源,而且降低了電路的功耗。

  2.3控制模塊

  控制模塊調節各個模塊進行協同工作。該模塊通過接收模塊收到數據之后生成的寫地址與寫使能,可以得到數據是否已經讀入完畢;根據與發送模塊間的握手信號REC_ACK產生讀使能與讀地址,從而控制存儲模塊;通過與發送模塊的握手進行協調通信;根據MODE端口來控制分頻模塊產生不同頻率的信號。

  2.4發送模塊

  發送模塊通過與控制模塊協調得到讀數據,并且將讀數據分解成相應的串行輸出數據。該電路主要由握手電路與并串轉換電路構成。在握手電路中,發送模塊REC_ACK拉高表明已準備好接收下一組讀數據。而控制模塊據此在產生讀使能與讀地址后拉高KEY信號,表明讀數據已經有效,從而實現了跨時鐘域的握手操作。并串轉換電路則根據模式來對數據進行拆解與并串轉換操作。

  3實驗結果分析

  本實驗首先在Modelsim上進行功能仿真,之后使用Xilinx公司的Vivado2017.1進行硬件開發。FPGA使用XilinxZedBoardZynqEvaluationandDevelopmentKit開發板。

  3.1功能仿真

  通過功能仿真對電路實現的功能進行驗證分析。首先,制定了合理的仿真驗證方案,保證該電路的所有功能都測試;其次,通過觀察仿真結果確保功能的正確性。

  3.1.1仿真驗證方案

  在進行仿真驗證時,首先在MATLAB中用序列發生器產生隨機的輸入數據,從而得到了發送數據的文本文檔;再將得到的文本文檔的數據讀出,并以串行的方式按照時鐘數據輸入到DIN端口,從輸出端口可以得出相應數據;最后根據輸出端口的數據與預期的輸出結果是否一致來判斷電路是否符合要求,從而驗證了電路功能的正確性。

  ①激勵對電路信號進行初始化,產生復位信號、系統時鐘與同步時鐘,之后選擇電路模式;②輸入端口DIN按照同步時鐘輸入數據的幀頭;③輸入端口DIN將輸入數據按照同步時鐘進行串行發送;④將經過電路處理后的數據與事先估計的結果進行比對,若一致,則電路正確。根據模式的不同,將電路分為四個測試點。在測試點1、2、3和4中,MODE分別設定為0、1、2和3,觀察輸出是否滿足數據輸出規則。flag為輸出是否正確的標志位,如果仿真輸出結果與預期結果相同,則flag為1,否則為0。

  4結束語

  針對數據傳輸過程中數據的特點,提出了一種數據編碼電路。該編碼電路合理劃分電路模塊,實現了四種不同的編碼方式。實驗結果表明,該電路滿足功能、資源、時序與功耗的要求,達到相應指標。

  參考文獻:

  [1]張平.基于FPGA的高速8B/10B解碼電路設計[D].合肥:安徽大學,2016.

  [2]李長慶,程軍,李梁,等.采用并行8b/10b編碼的JESD204B接口發送端電路設計[J].微電子學與計算機,2017,34(8):70-75.

  [3]吳光珩,張興明,劉冬培,等.基虧PRBS檢測的8B/10B編碼器設計[J].電子設計工程,2017,25(20):56-59.

  [4]史策,韓焱,李劍,等.SOPC的多路信號同步采集編碼系統[J].單片機與嵌入式系統應用,2017,17(10):33-36.

  [5]夏宇聞.Verilog數字系統設計教程.第3版[M].北京:北京航空航天大學出版社,2013.

  [6]吳厚航.深入淺出玩轉FPGA[M].北京:北京航空航天大學出版社,2010.

  相關刊物推薦:《電子設計工程》Electronic Design Engineering(半月刊),創刊于1993年,原名《國外電子元器件》,主要介紹具有較高學術水平的、電子領域相關的理論、技術、方法的專業性技術期刊。17年來,《電子設計工程》知識涵蓋面廣、影響力度大,以弘揚科技創新、擴展學術領域為契機,為科研事業傳播知識、積累學術成果以及國家科技發展做出了諸多貢獻。

  

2023最新分區查詢入口

SCISSCIAHCI

7799精品视频