色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA如何使用RAM分區循環移位法實現解交織器

FPGA設計論壇 ? 來源:電子設計應用 ? 作者:fengfeng ? 2021-09-28 17:53 ? 次閱讀

本文分析了卷積交織和解交織的基本原理,然后采用AlteraFPGA器件,用RAM分區循環移位法來實現解交織器。無論從理論上,還是從計算機仿真和綜合結果上來分析,都可以看出用這種方法來實現DVB-C解交織器能有效地節省硬件資源。

卷積交織和解交織原理簡介

在DVB-C系統當中,實際信道中的突發錯誤往往是由脈沖干擾、多徑衰落引起的,在統計上是相關的,所以一旦出現不能糾正的錯誤時,這種錯誤將連續存在。因此在DVB-C系統里,采用了卷積交織來解決這種問題。它以一定規律擾亂源符號數據的時間順序,使其相關性減弱,然后將其送入信道,解交織器按相反規律恢復出源符號數據。

DVB-C的卷積交織和解交織原理為:交織由I=12(I為交織深度)個分支構成。每個分支的延時逐漸遞增,遞增的單元數M=n/I=204/12=17(M為交織基數)。這里的數據單位為字節。0支路無延時,1支路延時17個符號周期,11支路則延時l7×11個符號周期。輸入端有一開關隨著時間推移依次連接各個延時支路,輸出端有一開關與輸入端一一對應,同步連接各延時支路。

解交織器的實現

解交織器的FPGA實現原理

本文采用RAM分區循環移位法來實現,因為RAM里面暫存一位數據,只需要用一個邏輯門大小的資源,比基本寄存器暫存一位數據需要12個邏輯門大小的資源要優化很多。用RAM分區循環移位法來實現解交織器,就是把RAM分成11個區。每個區的大小為(單位為字節):

Ni=M*(I-i-1)(i=0,1,2, …,(I-1))

這里i為RAM所分區的區號。

因為11支路不需要延時,所以 RAM的11分區大小即N11為0。本文在RAM前面設置一個地址控制器,這是解交織器關鍵的一步。RAM每區有一個首地址和區內偏移地址,分別用一個寄存器來存儲。在地址控制器里產生每區的首地址和區內偏移地址,從而進一步產生RAM的讀寫地址。

解交織器的FPGA實現

把解交織器的深度I和基數M設成參數,以增強程序的通用性。如果以后設計的解交織器的系數I和M需要改動,只要把參數值重新設置一下就可以了,不需要改動程序。由前面的計算可知,解交織器總共需要延時的比特數,也就是RAM的大小應該為8976比特。

可以用下面一段程序實現首地址的初始化:

FirstAddr[0]=0;

for(i=1;i《(i-1);i=i+1)《 span=“”》

FirstAddr[i]=(I-i)*M+FirstAddr[i-1];

也就是說0~11支路的首地址在RAM中分別為0,187,357,510,646,765,867,952,1020,1071,1105。

RAM每區的字節數可以由參數來表示,即為(I-i-1)*M,i為分支號。

每區內偏移地址SectAddr[i]初始化為0,每寫入一個數據,遞增1并與由參數表示的每區的字節數進行比較,若兩數相等,則SectAddr[i]重新設為零,保證區內偏移地址在每區內循環移動。

由上可知,RAM每區的讀寫地址為:FirstAddr[i]+SectAddr[i](i為RAM分區號)

RAM每區的讀寫地址相同,也就是先讀出給定地址單元的數據后,再寫入新的數據。這里要同時發生讀寫操作,所以要使用雙口RAM。每隔一個時鐘周期,RAM讀寫指針就跳到下一個RAM區,這樣讀寫指針在RAM的11個區循環移動,實現解交織。

Clk為時鐘信號,Reset為異步復位信號,ClkEn為時鐘使能信號,高電平有效,FrameFirstIn為幀同步信號,高電平有效。DeinterleaverIn為輸入數據。設計時要注意數據同步問題,要不然會造成數據錯位,導致設計的失敗。DeinterleaverIn為了在selector模塊輸入時和RAM的輸出數據q保持同步,要作相應的延時,同步延時后DataIn4,同理,對應地RAM的輸入數據DataIn1,selector模塊的使能信號ClkEn4等也是經過同步處理得到。Flag為selector模塊的選擇控制信號,當Flag信號為0~10時,選擇RAM的輸出數據q作為輸出,而當Flag=11時,則選擇DeinterleaverIn經過同步處理后的數據DataIn4作為輸出,從而保證在解交織器的11支路實現無延時輸出。在解交織器的最前面輸出的字節有些是無效的,加一個DataEffect模塊是為了等全部字節都有效時,才把FrameFirstOut信號置高,告訴后面的模塊數據開始全部有效。

從資源利用方面考慮,使用RAM分區循環移位法來實現DVB-C解交織器比全部用基本寄存器或用配置FIFO的方法來實現要優化得多。

為了更好地驗證,本文把設計在synopsys 公司的synplify pro軟件環境下進行綜合,選用Altera公司的Cyclone EP1C12Q240C8器件。因為使用了軟核IP,所以再把生成的*.vqm文件導入synopsys公司的QuartusII 軟件進行再綜合,選擇同樣的器件類型和型號,結果說明采用雙口RAM設計所使用的邏輯單元較少,而且使用的8976比特RAM資源占用了Cyclone器件中的3個M4K,只有全部存儲資源的3%。

結語

雖然采用卷積交織會在剛開始傳輸數據的時候輸出一些無效數據,在系統中引入一定的延時,但是它能把突發干擾造成的突發錯誤分散成隨機錯誤,利于RS糾錯,這樣一權衡,有延時也是很值得的。本文利用EDA工具完成解交織器的設計,并且采用Verilog和原理圖協同輸入的設計方法,大大提高了設計效率。這里設計的解交織器具有通用性,如果要用不同深度I和基數M的解交織器,只要重設程序里的參數值就可以了,非常方便。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21729

    瀏覽量

    603008
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1368

    瀏覽量

    114643
  • 交織器
    +關注

    關注

    0

    文章

    5

    瀏覽量

    7730

原文標題:用RAM分區循環移位法來實現解交織器

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    循環伏安(CV)基礎知識

    循環伏安(Cyclic Voltammetry,CV)是一種暫態電化學測試方法,也是獲取電化學反應快速定量數據最為常用的電分析技術之一。該方法不僅能夠提供發生于電極界面上的異相電子傳遞過程的動力學
    的頭像 發表于 12-09 09:45 ?767次閱讀
    <b class='flag-5'>循環</b>伏安<b class='flag-5'>法</b>(CV)基礎知識

    利用位反轉尋址實現循環緩沖

    電子發燒友網站提供《利用位反轉尋址實現循環緩沖.pdf》資料免費下載
    發表于 10-28 10:01 ?0次下載
    利用位反轉尋址<b class='flag-5'>實現</b><b class='flag-5'>循環</b>緩沖<b class='flag-5'>器</b>

    西門子移位指令怎么用在順序控制

    西門子的PLC(可編程邏輯控制)廣泛應用于工業自動化領域,其指令集豐富,能夠滿足各種控制需求。在順序控制中,移位指令是一種非常有用的指令,可以實現數據的移動和處理。 移位指令概述
    的頭像 發表于 08-16 17:08 ?872次閱讀

    移位寄存器中使用的儲存單元是什么

    移位寄存器是一種常見的數字電路組件,用于存儲和傳輸數字信號。在移位寄存器中,存儲單元是其核心組成部分,負責存儲數字信號的每一位。本文將介紹移位寄存器中使用的存儲單元。 移位寄存器概述
    的頭像 發表于 07-12 10:21 ?420次閱讀

    移位寄存器右移是怎么移位

    移位寄存器是一種在數字電路和計算機科學中廣泛使用的存儲設備,它可以用來存儲和傳輸數據。在移位寄存器中,數據可以通過移位操作來實現數據的傳輸和處理。
    的頭像 發表于 07-12 10:14 ?1352次閱讀

    雙向移位寄存器的工作原理、特點及應用

    雙向移位寄存器,作為一種特殊的數字電路元件,在數字信號處理和計算機體系結構中扮演著重要的角色。其獨特之處在于能夠根據控制信號實現數據的雙向移位,即既可以向左移位,也可以向右
    的頭像 發表于 05-24 16:52 ?2403次閱讀

    如何用加載分散將軟件中部分變量從內部RAM轉移到外部RAM

    如何用加載分散將軟件中部分變量從內部RAM轉移到外部RAM, 加載分散法文件怎么設置?堆和棧需要設置嗎?
    發表于 05-10 07:52

    求助,為什么stm8s的spi發送數據循環移位了2位?

    stm8s003fp3,主模式,軟件管理nss=1.msb先發,發送到74hc595。發送數據0101,0011,發現595顯示的數據是0100,1101。移位寄存器移位了2位后,數據時鐘才開始
    發表于 05-07 06:50

    fpga雙口ram的使用

    FPGA雙口RAM的使用主要涉及配置和使用雙端口RAM模塊。雙端口RAM的特點是有兩組獨立的端口,可以對同一存儲塊進行讀寫操作,從而實現并行
    的頭像 發表于 03-15 13:58 ?987次閱讀

    什么是PLC循環移位指令 PLC循環移位的特點

    PLC循環移位指令包括循環左移指令和循環右移指令。在循環移位過程中,移出的位并不會丟失,而是會放
    的頭像 發表于 03-07 16:57 ?2116次閱讀
    什么是PLC<b class='flag-5'>循環</b><b class='flag-5'>移位</b>指令 PLC<b class='flag-5'>循環</b><b class='flag-5'>移位</b>的特點

    移位寄存器的功能是什么 移位寄存器的工作原理

    移位寄存器(Shift Register)是一種在數字電路中經常使用的重要元件,其功能是接受和存儲數據,并以有序的方式將數據位進行移位操作。移位寄存器可以用來完成數據的平移、移位、串行
    的頭像 發表于 02-03 16:43 ?6205次閱讀

    如何在CAN PSOC 6的PSoC Creator頂級設計中實現移位寄存器

    如何 CAN PSOC 6的PSoC Creator頂級設計中實現移位寄存器? 目標設備是 CY8C6347BZI-BLD43
    發表于 01-29 08:23

    關于labview控制仿真中怎么實現移位寄存器的功能

    請問在while循環中要計算上一次的數據可以用移位寄存器,但是控制循環中設置不了,那怎么實現讀上一次的數據的功能額,大佬幫幫忙o(╥﹏╥)o
    發表于 01-19 11:23

    移位寄存器的工作原理 移位寄存器左移和右移怎么算

    移位寄存器是一種用于在數字電路中實現數據移位操作的基本電路元件。它由多個觸發以及相關控制電路組成,具有存儲、接受和移動數據的功能。移位寄存器
    的頭像 發表于 01-18 10:52 ?8345次閱讀

    labview移位寄存器如何清零

    LabVIEW中的移位寄存器(Shift Register)是一種用于存儲和移動數據的功能性塊。它類似于傳統計算機中的寄存,可以用于在循環中保留變量的狀態。但與傳統寄存不同的是,
    的頭像 發表于 01-05 13:49 ?3154次閱讀
    主站蜘蛛池模板: 久久精品亚洲热综合一本| 簧片高清在线观看| 九九国产精品成人AV麻豆| 蜜臀AV熟女人妻中文字幕| 视频成人永久免费视频| 永久免费观看视频| 做i爱视频30分钟免费| 国产互换后人妻的疯狂VIDEO| 精品无人区一区二区三区| 日本久久精品毛片一区随边看| 亚洲一品AV片观看五月色婷婷| ebc5恐怖5a26房间| 紧致肉肉高h| 日韩欧美1区| 在线综合 亚洲 欧美| 国产成人啪精品视频免费网| 久久re视频这里精品一本到99| 日韩精品无码久久一区二区三| 在线观看成人3d动漫入口| 国产精品久久欧美一区| 欧美疯狂做受xxxxx喷水| 亚洲这里只有精品| 国产AV无码成人黄网站免费| 两个奶头被吃得又翘又痛| 香蕉 在线播放| 白洁在线观看| 老子午夜伦不卡电影院| 亚洲精品国产高清不卡在线| 成人免费观看www视频| 毛片大片免费看| 亚洲免费一区| 国产精品www视频免费看| 欧美精品一区二区蜜臀亚洲| 一级毛片免费播放| 国产欧美日韩精品a在线观看高清 国产欧美日韩国产高清 | 久久网站视频| 亚洲高清无码在线 视频| 闺蜜扒开我尿口使劲揉| 欧美精品熟妇乱| 中文字幕一区在线观看视频| 红色机尾快播|