那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA如何使用RAM分區(qū)循環(huán)移位法實(shí)現(xiàn)解交織器

FPGA設(shè)計(jì)論壇 ? 來源:電子設(shè)計(jì)應(yīng)用 ? 作者:fengfeng ? 2021-09-28 17:53 ? 次閱讀

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

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

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

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

解交織器的實(shí)現(xiàn)

解交織器的FPGA實(shí)現(xiàn)原理

本文采用RAM分區(qū)循環(huán)移位法來實(shí)現(xiàn),因?yàn)镽AM里面暫存一位數(shù)據(jù),只需要用一個邏輯門大小的資源,比基本寄存器暫存一位數(shù)據(jù)需要12個邏輯門大小的資源要優(yōu)化很多。用RAM分區(qū)循環(huán)移位法來實(shí)現(xiàn)解交織器,就是把RAM分成11個區(qū)。每個區(qū)的大小為(單位為字節(jié)):

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

這里i為RAM所分區(qū)的區(qū)號。

因?yàn)?1支路不需要延時,所以 RAM的11分區(qū)大小即N11為0。本文在RAM前面設(shè)置一個地址控制器,這是解交織器關(guān)鍵的一步。RAM每區(qū)有一個首地址和區(qū)內(nèi)偏移地址,分別用一個寄存器來存儲。在地址控制器里產(chǎn)生每區(qū)的首地址和區(qū)內(nèi)偏移地址,從而進(jìn)一步產(chǎn)生RAM的讀寫地址。

解交織器的FPGA實(shí)現(xiàn)

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

可以用下面一段程序?qū)崿F(xiàn)首地址的初始化:

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每區(qū)的字節(jié)數(shù)可以由參數(shù)來表示,即為(I-i-1)*M,i為分支號。

每區(qū)內(nèi)偏移地址SectAddr[i]初始化為0,每寫入一個數(shù)據(jù),遞增1并與由參數(shù)表示的每區(qū)的字節(jié)數(shù)進(jìn)行比較,若兩數(shù)相等,則SectAddr[i]重新設(shè)為零,保證區(qū)內(nèi)偏移地址在每區(qū)內(nèi)循環(huán)移動。

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

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

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

從資源利用方面考慮,使用RAM分區(qū)循環(huán)移位法來實(shí)現(xiàn)DVB-C解交織器比全部用基本寄存器或用配置FIFO的方法來實(shí)現(xiàn)要優(yōu)化得多。

為了更好地驗(yàn)證,本文把設(shè)計(jì)在synopsys 公司的synplify pro軟件環(huán)境下進(jìn)行綜合,選用Altera公司的Cyclone EP1C12Q240C8器件。因?yàn)槭褂昧塑浐薎P,所以再把生成的*.vqm文件導(dǎo)入synopsys公司的QuartusII 軟件進(jìn)行再綜合,選擇同樣的器件類型和型號,結(jié)果說明采用雙口RAM設(shè)計(jì)所使用的邏輯單元較少,而且使用的8976比特RAM資源占用了Cyclone器件中的3個M4K,只有全部存儲資源的3%。

結(jié)語

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

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21797

    瀏覽量

    606018
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1369

    瀏覽量

    115010
  • 交織器
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7756

原文標(biāo)題:用RAM分區(qū)循環(huán)移位法來實(shí)現(xiàn)解交織器

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    XILINX FPGA CLB單元之移位寄存器

    一、移位寄存器 SLICEM函數(shù)發(fā)生也可以配置為32位移位寄存器,而無需使用slice中可用的觸發(fā)。以這種方式使用,每個LUT可以將串行數(shù)據(jù)延遲1到32個時鐘周期。 移入D(DI1
    的頭像 發(fā)表于 01-16 17:45 ?150次閱讀
    XILINX <b class='flag-5'>FPGA</b> CLB單元之<b class='flag-5'>移位寄存器</b>

    TVP5158采集四路圖像,解交織后圖像錯誤,為什么?

    大家好,我現(xiàn)在在用5158采集四路圖像,通過FPGA解交織。 我5158的配置如下: B0 = 0xA0; B1 = 0x10; B2 = 0x25; B3 = 0xE4; B4 = 0xE4
    發(fā)表于 01-08 07:53

    循環(huán)伏安(CV)基礎(chǔ)知識

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

    什么是RAM內(nèi)存 RAM內(nèi)存對電腦性能的影響

    什么是RAM內(nèi)存? RAM(Random Access Memory,隨機(jī)存取存儲)是電腦中的一種易失性存儲,它用于存儲電腦運(yùn)行時的數(shù)據(jù)和程序。與硬盤等非易失性存儲
    的頭像 發(fā)表于 11-11 09:38 ?3239次閱讀

    利用位反轉(zhuǎn)尋址實(shí)現(xiàn)循環(huán)緩沖

    電子發(fā)燒友網(wǎng)站提供《利用位反轉(zhuǎn)尋址實(shí)現(xiàn)循環(huán)緩沖.pdf》資料免費(fèi)下載
    發(fā)表于 10-28 10:01 ?0次下載
    利用位反轉(zhuǎn)尋址<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>循環(huán)</b>緩沖<b class='flag-5'>器</b>

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

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

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

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

    移位寄存器中Dsr有什么用

    )是移位寄存器的一種類型,主要用于數(shù)據(jù)的存儲和傳輸。 移位寄存器的基本概念 移位寄存器是一種具有存儲功能的數(shù)字電路,它由一系列觸發(fā)(Flip-flop)組成,每個觸發(fā)
    的頭像 發(fā)表于 07-12 10:15 ?773次閱讀

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

    移位寄存器是一種在數(shù)字電路和計(jì)算機(jī)科學(xué)中廣泛使用的存儲設(shè)備,它可以用來存儲和傳輸數(shù)據(jù)。在移位寄存器中,數(shù)據(jù)可以通過移位操作來實(shí)現(xiàn)數(shù)據(jù)的傳輸和處理。
    的頭像 發(fā)表于 07-12 10:14 ?1759次閱讀

    雙向移位寄存器的工作原理、特點(diǎn)及應(yīng)用

    雙向移位寄存器,作為一種特殊的數(shù)字電路元件,在數(shù)字信號處理和計(jì)算機(jī)體系結(jié)構(gòu)中扮演著重要的角色。其獨(dú)特之處在于能夠根據(jù)控制信號實(shí)現(xiàn)數(shù)據(jù)的雙向移位,即既可以向左移位,也可以向右
    的頭像 發(fā)表于 05-24 16:52 ?2667次閱讀

    如何用加載分散將軟件中部分變量從內(nèi)部RAM轉(zhuǎn)移到外部RAM

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

    求助,為什么stm8s的spi發(fā)送數(shù)據(jù)循環(huán)移位了2位?

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

    fpga雙口ram的使用

    FPGA雙口RAM的使用主要涉及配置和使用雙端口RAM模塊。雙端口RAM的特點(diǎn)是有兩組獨(dú)立的端口,可以對同一存儲塊進(jìn)行讀寫操作,從而實(shí)現(xiàn)并行
    的頭像 發(fā)表于 03-15 13:58 ?1109次閱讀

    什么是PLC循環(huán)移位指令 PLC循環(huán)移位的特點(diǎn)

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

    Windows驅(qū)動分區(qū)可以刪除嗎

    可以刪除Windows驅(qū)動分區(qū)。刪除驅(qū)動分區(qū)的操作可以在Windows操作系統(tǒng)中的磁盤管理工具中完成。然而,在執(zhí)行此操作之前,請務(wù)必提前備份重要的數(shù)據(jù),以免丟失。 以下是刪除Win
    的頭像 發(fā)表于 02-14 17:00 ?1600次閱讀
    希尔顿百家乐试玩| 百家乐官网计划工具| 真钱百家乐赌博| 现金百家乐代理| 大发888亚洲游戏平台| 大发888娱乐场下载ypu| 百家乐官网下注技术| 百家乐官网庄闲偏差有多大| 澳门百家乐群官网| 大发888的示例| 宾利百家乐官网现金网| 百家乐官网倍投工具| 大发888娱乐城可靠吗| 百家乐官网庄闲规则| 环球百家乐官网的玩法技巧和规则 | 皇冠足球网址| 五星百家乐官网的玩法技巧和规则 | 百家乐官网国际赌场娱乐网规则| A8百家乐娱乐场| 赌球平台| 百家乐官网平注法到656| 百家乐正负计算| 百家乐官网纯数字玩法| 百家乐只打一种牌型| ican博彩通| 帝王百家乐官网的玩法技巧和规则| 互联网百家乐的玩法技巧和规则 | 网上百家乐有人赢过嘛| 永利国际| 百家乐官网咋样赢钱| 大发888博彩官方下载| 百家乐官网平台有什么优惠| 威尼斯人娱乐城老品牌lm0 | 百家乐长龙太阳城| 大发扑克| 风水24山代表什么意思| 白金会娱乐场怎么样| 玩百家乐官网掉房| 加多宝百家乐的玩法技巧和规则| 澳门百家乐官网如何算牌| 百家乐骰盅规则|