交织器解交织器设计说明文档

合集下载

课程设计交织器解交织器

课程设计交织器解交织器

交织器/解交织器设计卷积交织: 交织深度I=12,形成相互交迭的误码保护数据包,以抵抗信道中突发的干扰。

1.请设计一个交织器和解交织器,完成二进制比特流的交织/解交织功能。

2.设计测试基准,验证设计的功能是否正确。

3.请依指定接脚设定输、出入脚位,脚位定义如先前公布之软、硬体规格所示。

4.评分标准为尽量满足公平原则起见,评分标准如下:计分优先序:功能正确>使用资源>缴件时间>创意5.缴件规格缴件规格如下:a.设计完成之程式档与原始设定,包含所有的原始程式如.v档,b.编译完且可下载之binary file(二进位档),此binary file应完成所有设计,并能“直接下载”至原型电路板上,验证“功能正确性”。

c.文件说明:请附上一说明文件解释其设计方式、程式内容、编译设定与其它资料等,愈详尽愈好,除了能增加上述文件撰写之分数外,亦可帮助老师检查小组之作品,间接增加其它评审项目之分数。

文件说明档可为word档或是pdf档,不接收其它格式。

6.上交需知:a.请另建一新目录,将以上各项需要缴交的档案复制至此新目录下,并以winzip 将此目录压缩成一个档案。

档名命名方式如下:组别 .zip组长或小组名.zip(小组组别)_上传流水号.zip若上传完毕后,发现档案有误需要修改,则请修改“流水号”部分再上传如:组长或小组名_002.zip(第二次上传)组长或小组名_003.zip(第三次上传,等等..以此类推)b文件说明档:本档即上述之文件说明,请依上述说明撰写。

其档名命名方式如上述为:组长或小组名_说明书.zip若上传完毕后,发现档案有误需要修改,则请修改“流水号”部分再上传如:组长或小组名_说明书002.zip(第二次上传)组长或小组名_说明书003.zip(第三次上传,等等..以此类推)c读我档:readme_xxx.txt请附上一读我档简单说明上述档案,档案格式为ASCII 档式。

一种块交织的交织及解交织方法

一种块交织的交织及解交织方法
如果奇数块的数据是按行写入 交织器或解 交织器 ,则 奇 数块的数据是按列读出交织器或解 交织器,偶数块 的数据 是 按列写入交织器或解交织器, 按行读 出交织器或解交织器; 如 果奇数块的数据是按列写入交织器或解交织器,则奇数块 的 数据是按行读出交 织器或解交织器,偶数块 的数据是 按行写 入交织器或解交织器,按列读 出交织器或解 交织器 。在一整 个交织或解交织块的数据写满后,读出当前块 的数据 与写入 下一块的数据基本 同时进行, 只要有数据被读 出, 被读 出的数 据对应的存储器都可 以用来写入下一块的数据。 对最后一行和最后一列存在填不满的情况进行特殊 处理 , 写入一整个交织或解交织块数据后即认 为交织器 或解 交织器 填满 , 读 出时 也只读 出有写入部分 的数据 。 在数据写入交织器或解交织器前,先将 数据 写入 一块 小 缓存 。小缓存 的大小可 以根据 需求选取, 为 了控制 的方便 , 如 果是要按行写入按列读 出, 就选取 b x d的整数倍 ; 如果是要按 列写入按行读出,就选取 a x e的整 数倍 。小缓存使用 内部乒 乓方式读写,在 写到一定程度 时开 始读 取已经 写满 的部分 到
器中 。
c x d >a  ̄ , c × 0 ≥b ; 交织 器或解交织器看成是一个 C  ̄ C 大小的正
方形。 正方形的每个元素是一个 d x e 的小矩阵。将奇数块数 据和偶 数块数据 按相反顺序 写入 同一块 交织器或解 交织器 ,
在一整个交织或解交织块数据 写满 后,按与写入顺序相反 的 顺序读 出交织器或解交织器 。
摘要 : 将块 交织 的交织或 解交织的长方形块扩展 为一个正方形 , 如果 第一 次是按行写入按列读 出, 则 第二次按 列写入按 行 读 出, 这样 第二 次写入 与第一次读 出在 同一块存储 器中基本 同时进行 , 而又不会将 第一次未处理 的数据 冲掉 。 如此一 直交替下去 , 就只需要 一埭扩展 后的存储器来 完成 交织或 解交织, 大大降低 了需要 的存储 器的大小。同时在存储 器的前 面加 一块 小缓存 。 来增加存储 器的位宽 , 便 于处理。 关键 词 : 块交织 ; 交织; 解交织 ; 存储 器 中图分类号 : T N9 1 1 . 2 2 文献标识码 : A 文章编号 : 1 6 7 3 一 l 1 3 1 ( 2 0 1 3 ) 0 7 — 0 0 3 5 — 0 2

卷积交织和解交织原理简介

卷积交织和解交织原理简介

卷积交织和解交织原理简介在DVB-C系统当中,实际信道中的突发错误往往是由脉冲干扰、多径衰落引起的,在统计上是相关的,所以一旦出现不能纠正的错误时,这种错误将连续存在。

因此在DVB-C系统里,采用了卷积交织来解决这种问题。

它以一定规律扰乱源符号数据的时间顺序,使其相关性减弱,然后将其送入信道,解交织器按相反规律恢复出源符号数据。

DVB-C的卷积交织和解交织原理为:交织由I=12(I为交织深度)个分支构成。

每个分支的延时逐渐递增,递增的单元数M=n/I=204/12=17(M为交织基数)。

这里的数据单位为字节。

0支路无延时,1支路延时17个符号周期,11支路则延时l7×11个符号周期。

输入端有一开关随着时间推移依次连接各个延时支路,输出端有一开关与输入端一一对应,同步连接各延时支路。

图1 解交织器的实现框图图2 解交织器的Modelsim仿真图解交织器的实现解交织器的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比特。

(完整版)基于FPGA的交织器和解交器的实现

(完整版)基于FPGA的交织器和解交器的实现

ftTian jin University of TTechnolo^专业设计报告基于FPGA的交织器和解交器的实现班级: 08集成专业:学院: 电子信息工程指导老师::交织器原理 .........1实现原理… 2 纠错原理交织器的FPGA 实现1 整体结构2 功能分析3 模块设计( 1)计数器模块 2)选择器模块(3) ROM 模块 (4) RAM 模块5)顶层模块设计总结目录.14一:交织器原理1 实现原理 随着通信技术的发展,对系统要求不断提高,在移动通信领域,由于数字信号在传输 途中会随各种干扰,使得信号失真,因此需要利用编码技术来纠正信道中产生的随机错误。

但是, 仅利用纠错编码技术, 对于传输过程中突发性干扰需要借助很长的码字, 这样会很复 杂,同时产生很长的延时, 。

交织技术作为一项改善通信系统性能的方式,将数据按照一定 的规律打乱, 把原来聚集的错误分散, 使得突发错误变为随机错误, 使得突发码字个数在纠 错范围内,接收端就 可以用较短的码字进行纠错。

交织的过程就是将一个数据系列按一定的条件进行位置从新排布。

其逆过程就是解交。

常用交织器主要有三种: 矩阵分组式, 伪随机式, 半伪随机式。

本设计采用矩阵分 组式。

矩阵分组式的原理及实现方式如下:从存储器按行输出, 送入突发差错的信 完成交织与反交织,即按行输入,按列输出。

按行读出x12, x1, x5, x9, x13,…x15)第一个产生与 x0到X12,连错4个,第二个产生于x9到x2,连错三个,则此收到的信号为,([xO] ,[x4] ,[x8],[x12] ,x1,x5, [x9],[X13] , [X2] , X6, X10, X14, X3, X7, X11, X15) (加[] 的为错误信号 )假设发送X =(x1 x2 x3 ..X 16 )首先将 X 送入交织器,此交织器设计为按行取出的 4x4 的阵列存储器。

交织与解解交织

交织与解解交织

交织与解解交织
我们知道编码的意义是通过加入冗余位信息的方法,从而在接收端能够发现和纠正由于信道影响而产生的随机错码。

那么如果信码在信道中传输时由于信道或者认为的影响而使一段连续的码元产生大量错误,由于编码长度的有限,通过编码的方法是无法达到纠错的功能的,这就需要我们通过其它方法来解决。

目前比较常用的方法是交织(In terleav e)。

交织本质上是一个将数据序列“扰乱”的过程,这里的“扰乱”实际上是按照一定的人为方式进行重新排列,交织主要由交织器完成。

它的逆过程就是解交织,将重排过的序列恢复到原来的序列顺序。

可以理解的是通过交织以后,原来可能出现的大量连续错误被分散开,成为随机错误,而随机错误我们可以通过编码来解决。

交织器/解交织器的加入将大大提高系统的纠错能力。

但是随之而来的是增加了传输延时,降低了信码的传输效率。

这是因为信号的打乱一般是通过矩阵的读入和读出采用不同的方式而实现的,这样必然带来时间上的损失,而且不同的交织方法对信号的“扰乱”程度是不同的,如果“扰乱”的程度不够的话将得不到很好的交织效果。

所以,高“扰乱”低硬件复杂度和低延时成为设计交织器的关键。

这里我们介绍两种比较常用的交织器的设计。

块交织及解交织实验精选全文完整版

块交织及解交织实验精选全文完整版

可编辑修改精选全文完整版实验五、块交织及解交织实验一、实验目的通过本实验掌握块交织的特性、产生原理及方法,掌握块交织对译码性能的影响。

二、实验内容1、观察经交织后的卷积编码信号。

2、观察随机差错经解交织后的差错分布,观察突发差错经解交织后的差错分布。

3、观察交织对卷积编码突发差错信号纠错的性能改善。

三、基本原理当移动通信信道出现深衰落时,数字信号的传输可能出现成串的突发差错。

一般的差错编码(如卷积码)只能纠正有限个错误,对于大量的突发误码无能为力。

通信系统采用交织编码和卷积码结合的方式来纠正突发差错。

交织的目的是把一个较长的突发差错离散成随机差错,使得纠错编码技术更容易纠正。

常用的交织技术主要有两类:块交织和卷积交织。

块交织通常在数据分块分帧的情况下使用,卷积交织对连续的数据流来说比较使用。

在码分多址系统中,基于数据分帧的情况采用了块交织的形式,所以这里我们仅介绍块交织的有关内容。

描述交织器性能的几个参数如下:①突发长度:突发错误的长度,用B表示。

②最小间隔:突发连续错误分布的最小距离,用S表示。

③交织时延:由于交织和解交织引起的编码时延,用D表示。

④存储要求:交织或解交织过程需要的存储单元的大小,用M表示交织器的性能通常用S/D以及S/M来描述,最小间隔S越大越好,交织时延D和存储要求M越小越好交织器的实现框图如图18-1所示图18-1 分组(块)交织器实现框图由图18-1可见,交织、解交织由如下几步构成: ⑴若发送数据(块)U 经信道编码后为:()112325X x x x x =;⑵发送端交织存储器为一个行列交织矩阵存储器1A ,它按列写入,按行读出,即16111621271217223813182349141924510152025x x x x x x x x x x x x x x x x x x x x x x x x x ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦(18-1)⑶交织器输出后并送入突发信道的信号为()216111621222525,,,X x x x x x x x x x =(18-2)⑷假设在突发信道中受到两个突发干扰:第一个突发干扰影响5位,即产生于1x 至21x ;第二个突发干扰影响4位,即产生于13x 至4x 。

设计报告--014---交织—解交织的FPGA设计与实现

交织/解交织的FPGA设计与实现一.交织与解交织器的设计方案任意交织器的的交织与解交织的过程都可以总结为:交织是按顺序地址读入输入数据,按交织地址输出数据,即顺序写入,交织读出;解交织是按交织地址输入数据,按顺序地址读出数据,即:交织写入、顺序读出。

设计中利用一个存储器存储交织地址,这样做一方面在实现不同的交织器时。

图1 交织与解交织原理框图图1电路图的电路是由ROM模块、计数器、RAM模块和二选一选择器四个部分组成。

ROM模块用来存放交织地址;计数器用来产生顺序地址;RAM模块作随机存储器,用来输入输出数据;二选一数据选择器起地址过滤作用,当需要顺序的地址的时候,计数器的输出直接送到RAM地址总线;当需要交织地址时,计数器的输出直接送到ROM地址总线,再将ROM读出的交织地址作ROM 的地址线。

图中的交织与解交织控制信号是用来选择控制交织与解交织的过程;读信号和写信号对RAM模块进行读写控制[12]。

二.交织器各子模块的设计1.计数器模块计数器模块的作用是:为选择器提供顺序地址,为只读存储器提供顺序地址和读写控制信号。

只读存储器中存放着交织地址,但这并不是说只读存储器的输入输出方式是交织的,它的输出元素是交织的。

图2所示为计数器模块:图2 计数器模块上面的模块是由程序实现的程序的代码(见附录),上图中clk是时钟信号,clr是清零信号,ena是使能信号,q就是输出。

输出显示的是0-15这16位的数字。

主要的作用就是读顺序地址的,和后面的那个交织地址能够对应起来。

图3所示的是计数器模块的功能仿真波形:图3 计数器模块的功能仿真波形图3仿真波形中的clk,clr,ena,q,cout与图2中的是一样的。

当clk为时钟信号,clr是复位信号当clr为高电平的时候q的输出就为0,ena为使能信号,cout在q从0到15输出后出现一个高电平,在15的地方显示高电平。

2.选择器模块选择器主要就是起选择作用的,起到了地址过滤的作用,当需要顺序地址的时候计数器就直接读出来送到RAM的总线上去,然后按照输入的正常顺序读出来。

块交织及解交织实验报告

块交织及解交织实验报告一、引言块交织及解交织是一种常见的信息编码技术,用于在传输和存储过程中提高数据可靠性和稳定性。

本实验旨在研究块交织及解交织的原理和应用,并通过实际操作和数据分析来验证其有效性。

二、实验设计1. 实验材料:编码器、解码器、发送信号源、接收信号源。

2. 实验步骤:(1) 将发送信号源的数据输入编码器,进行块交织编码。

(2) 将编码后的数据通过信道传输。

(3) 接收端对传输后的数据进行解交织处理。

(4) 将解交织后的数据输入解码器,进行解码操作。

(5) 对解码后的数据与原始信号进行比较,分析误码率等指标。

三、实验结果1. 编码器设计:编码器采用块交织技术,将输入数据按照一定的块大小进行分块,并按照特定的规则进行交织操作。

交织后的数据可以提高数据的连续性和稳定性,减小传输中的突发错误。

2. 解码器设计:解码器对接收到的数据进行解交织处理,按照与编码器相同的规则进行解交织操作。

解交织后的数据可以恢复出原始信号,提高数据的可靠性和完整性。

3. 数据传输和分析:将编码器输出的数据通过信道传输到接收端,接收端对数据进行解交织处理后输入解码器进行解码。

通过比较解码器输出的数据与原始信号,可以得到误码率等指标,进一步评估块交织及解交织的效果。

四、实验分析通过实验数据的分析,可以得出以下结论:1. 块交织技术可以有效提高数据传输的可靠性和稳定性,减小误码率。

2. 解交织技术可以恢复出原始信号,提高数据的完整性和可靠性。

3. 块交织及解交织的效果与块大小、交织规则等参数有关,需要根据具体情况进行调整和优化。

五、实验总结本实验通过对块交织及解交织的原理和应用进行研究和实际操作,验证了其在数据传输和存储中的有效性。

块交织技术可以提高数据的可靠性和稳定性,解交织技术可以恢复出原始信号。

在实际应用中,可以根据具体情况选择合适的块大小和交织规则,以达到更好的效果。

六、展望块交织及解交织技术在通信和存储领域具有广泛的应用前景。

交织器解交织器设计说明文档

交织器与解交织器的Verilog设计0 引言在数字通信中由于信道固有的噪声特性以及衰落特性,信息在有干扰信道传输时不可避免的会发生差错。

为了提高通信系统信息传输的可靠性,一般采用纠错编码技术来提高通信系统抗干扰能力。

但是当信道发生突发差错时,会造成连续的错误,超过纠错码的纠错能力。

交织技术作为一项改善通信系统性能的方式,将数据按照一定的规则打乱,把原先连续的差错分散开来,使突发性错误转化为随机性错误,能够提高通信系统抗突发差错的能力和降低译码复杂度。

VHDL作为一种硬件设计时采用的标准语言,降低设计FPGA的难度,使整个系统的设计和调试周期缩短。

本设计利用FPGA实现交织,能大大缩减电路的体积,提高电路的稳定性。

1 卷积交织和解交织的原理交织过程可算作一个编码过程,他把经过纠错编码的数据进行一定的排列组合,提高原有纠错编码的纠突发错误的能力。

数字通信中一般采取的同步交织有 2 种:(1) 块交织也叫矩阵行列转置法。

可以表述为一个二维存储器阵列 ( N × B ) 。

交织过程是数据先按行写入,再按列读出;解交织过程则相反,是数据先按列写入,再按行读出。

块交织结构简单, 但数据延时时间长而且所需的存储器比较大。

(2) 卷积交织交织器的输入端的输入符号数据按顺序分别进入 B 条支路延时器, 每一路延时不同的符号周期。

第一路无延时,第二路延时M个符号周期,第三路延时2M个符号周期,…,第B路延时( B - 1 )M 个符号周期。

交织器的输出端按输入端的工作节拍分别同步输出对应支路经延时的数据。

卷积交织每条支路符号数据的延时节拍为 di = ( i - 1)M B , i = 1, 2, …, B 。

解交织器的延时数与交织器相反。

图1 卷积交织器和解交织器原理图在仔细对比块交织和卷积交织两种方法之后,考虑到缩短延时和减小器件体积,小组决定采用卷积交织的方法来设计。

然而实现卷积交织的延时方法有多种,一是采用移位寄存器法,直接利用FIFO实现每条支路的延时,这种方法实现简单,但是当B与M值较大时,需要消耗大量的寄存器(图2所示);二是利用RAM来实现移位寄存器的功能,通过控制读/写地址来实现每条支路延迟。

交织器

《数字系统设计》课程设计题目:交织器解交织器一、实验任务卷积交织: 交织深度I=12 ,形成相互交迭的误码保护数据包,以抵抗信道中突发的干扰。

二、实验要求1. 请设计一个交织器和解交织器,完成二进制比特流的交织/ 解交织功能。

2. 设计测试基准,验证设计的功能是否正确。

三、设计卷积交织器目的在数字传输系统中,因为存在噪声,信道衰落等干扰因素,会使传输的信号发生错误,产生误码。

虽然数字信号的传输为了防止误码而会进行信道编码,增加传输码的冗余,例如增加监督位等来克服信号在信道传输过程中的错误,但这种检错纠错能力是有限的。

例如当出现突发错误,出现大片误码时,这时信道的纠错是无能为力的。

而卷积交织器可以将原来的信息码打乱,这时尽管出现大面积突发性错误,这些可以通过解交织器来进行分散,从而将大面积的错误较为平均地分散到不同的码段,利于信道纠错的实现。

四、卷积交织的原理卷积交织的原理其实是利用了延时的原理。

例如总延时是T,交织器延时t1,解交织器延时为t2,则有T=t1+t2.本次设计的交织器的交织深度为12,故交织器总共有12路,要进行卷积处理的数据分别循环的进入每一路,每一路延时不同的时间而后输出。

不难想象,如果每一路都延时相同的时间,输入序列肯定跟输出序列一模一样,但交织器因为每一路延时的时间不同,从而将序列打乱了,看上去会很乱,例如你输入1,2,3,4…….20,输出就是1,0,0,0,…..13…….25…..。

那么经过交织器处理后打乱的数据如何恢复原状呢?很简单,因为每一个数据的总延时都是T,如果一个数据A在交织器中延时了t1,那么数据A只需在解交织器中延时T-t1即可。

五、设计过程1.设计思路以上讨论的是交织器与解交织器的算法,那么在硬件电路上如何实现呢?由上讨论,交织器与解交织器都是利用了延时来实现的,而在硬件上实现延时一种很自然的想法就是利用移位寄存器来实现,延时T只需要T级的移位寄存器,在每个时钟的到来,将数据移位,例如数据‘1’经过5级的移位寄存器,经过5个时钟后,数据就经历了寄存器每个寄存单元而输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

- 0 -页
交织器与解交织器的Verilog设计0 引言
在数字通信中由于信道固有的噪声特性以及衰落特性,信息在有干扰
信道传输时不可避免的会发生差错。

为了提高通信系统信息传输的可靠性,一般采用纠错编码技术来提高通信系统抗干扰能力。

但是当信道发生突发差错时,会造成连续的错误,超过纠错码的纠错能力。

交织技术作为一项改善通信系统性能的方式,将数据按照一定的规则打乱,把原先连续的差错分散开来,使突发性错误转化为随机性错误,能够提高通信系统抗突发差错的能力和降低译码复杂度。

VHDL作为一种硬件设计时采用的标准语言,降低设计FPGA的难度,使整个系统的设计和调试周期缩短。

本设计利用FPGA实现交织,能大大缩减电路的体积,提高电路的稳定性。

1 卷积交织和解交织的原理
交织过程可算作一个编码过程,他把经过纠错编码的数据进行一定的排列组合,提高原有纠错编码的纠突发错误的能力。

数字通信中一般采取的同步交织有 2 种:
(1) 块交织
也叫矩阵行列转置法。

可以表述为一个二维存储器阵列 ( N × B ) 。

交织过程是数据先按行写入,再按列读出;解交织过程则相反,是数据先按列写入,再按行读出。

块交织结构简单, 但数据延时时间长而且所需的存储器比较大。

(2) 卷积交织
交织器的输入端的输入符号数据按顺序分别进入 B 条支路延时器, 每一路延时不同的符号周期。

第一路无延时,第二路延时M个符号周期,第三路延时2M个符号周期,…,第B路延时( B - 1 )M 个符号周期。

交织器的输出端按输入端的工作节拍分别同步输出对应支路经延时的数据。

卷积交织每条支路符号数据的延时节拍为 di = ( i - 1)M B , i = 1, 2, …, B 。

解交织器的延时数与交织器相反。

图1 卷积交织器和解交织器原理图
在仔细对比块交织和卷积交织两种方法之后,考虑到缩短延时和减小器件体积,小组决定采用卷积交织的方法来设计。

然而实现卷积交织的延时方法有多种,一是采用移位寄存器法,直接利用FIFO实现每条支路的延时,这种方法实现简单,但是当B与M值较大时,需要消耗大量的寄存器(图2所示);二是利用RAM来实现移位寄存器的功能,通过控制读/写地址来实现每条支路延迟。

在做课程设计的过程,我们考虑过第一种方法,因为其设计思路和做

法都相对简单,但是当需要较大的延时数时,移位寄存器变得很大,占用了大量的编译时间和芯片空间,实际中并不可取。

我们最终采用了RAM来实现移位,合理地设计读写地址按规律变化,即可实现所要的延时。

下面将阐述设计细节。

2 卷积交织器和解交织器的VHDL设计
设计要求,交织深度B = 12 , M = 17 , 即有12条数据通路。

本小组采用RAM来实现输入数据的时延,按照一定的读写地址规律同时读写RAM中的存储单元。

实现框图如图4
其中输入的数据为16位的顺序循环序列,循环范围0--1000,方便观察仿真结果;读写使能控制信号受时钟的上升沿控制;Flag端口是通道0的标志,使输入数据直接输出。

本设计中的关键点是RAM地址的分配和读写地址的产生。

所谓RAM 移位法是把RAM地址分给12支路,每一支路对RAM存储单元的读写实现类似于对移位寄存器的操作。

为了使所用资源最优化,采用电路计算得到读写地址。

交织器各通道的写地址如下图所示,而读地址则在写地址的数值上加1,通过计算可以知道,第0通道无延时;第1通道延时17*1个时钟周期;第2通道延时17*2个时钟周期......依此类推,第11通道延时17*11个时钟周期。

总共所需存储单元数为1 + 18 + .... + 188 = 1134,相应的要用到地址总线为11b。

也就是说要用到2k的RAM。

图5. 交织器写地址
总结为数学计算公式,设第i通道的基地址为bi(base address),尾地址为ci,各通道的变址为ai,则RAM的读写地址的变化规律为:第i通道读地址: rd_add = ai + bi ;
第i通道写地址: wr_add = ai + bi - 1; 当ai ≠ 0
wr_add = ci; 当ai = 0 ;
解交织器则与此相反,RAM写地址如下
图6. 解交织器写地址
生成上述的读写地址的实现框图如下所示
图7. 读写地址产生的逻辑框图
以上所述讲解了读写生成器的实现思路,可以说成功实现这个模块,交织器就基本做完了。

下面再简单阐述一下RAM的实现过程,原本可以使用Quartus自带的RAM模块,但考虑到课程设计的学习性质,决定自己实现一个RAM。

从上述分析可知,我们需要2 个2K * 16 的RAM模块,一个用于存储交织器输出的数据,一个用于存储解交织器的输出数据。

实现的方法也很简单,构造一个2048 * 16 的二维数组,16位的地址通过conv_integer从
- 1 -页。

相关文档
最新文档