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

合集下载

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

一种块交织的交织及解交织方法
如果奇数块的数据是按行写入 交织器或解 交织器 ,则 奇 数块的数据是按列读出交织器或解 交织器,偶数块 的数据 是 按列写入交织器或解交织器, 按行读 出交织器或解交织器; 如 果奇数块的数据是按列写入交织器或解交织器,则奇数块 的 数据是按行读出交 织器或解交织器,偶数块 的数据是 按行写 入交织器或解交织器,按列读 出交织器或解 交织器 。在一整 个交织或解交织块的数据写满后,读出当前块 的数据 与写入 下一块的数据基本 同时进行, 只要有数据被读 出, 被读 出的数 据对应的存储器都可 以用来写入下一块的数据。 对最后一行和最后一列存在填不满的情况进行特殊 处理 , 写入一整个交织或解交织块数据后即认 为交织器 或解 交织器 填满 , 读 出时 也只读 出有写入部分 的数据 。 在数据写入交织器或解交织器前,先将 数据 写入 一块 小 缓存 。小缓存 的大小可 以根据 需求选取, 为 了控制 的方便 , 如 果是要按行写入按列读 出, 就选取 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)。

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

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

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

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

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

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

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

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

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

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

交织器与解交织器的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来实现移位寄存器的功能,通过控制读/写地址来实现每条支路延迟。

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

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

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

二、实验内容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 。

地面数字视频广播中内交织器与解内交织器设计

实现方案就是利用寄存器将输入块缓存 ,然后按照

V个 比特交织器 的输 出构成 了一个 V 比特 字
源消耗少 , 稳定性高 , 具有 良好的性能 。
织器的输出组成每符号 v比特字的符号流 , 经过符 号交织后送到星座映射模块。解内交织原理与 内交 织相同 , 只是流程正好相反 , 本文接下来只讨论 内交
织 原理 。
2 内交织解 内交织原 理
所谓交织 , 就是在发送端通过交织器 , 将输人数
_ l j器
制技术 。 能有效抵抗多径干扰 , 在世界各 国得到十分 广泛的应用。 V — D B T为应对传输过程中由于信道噪 声及各种差错事件而引发 的随机错 误和突发错误 , 采用内外码级联的先进信道编码及交织技术 。与一
图 1 D B T系 统 内 交 织 原 理 图 V—
l ● ^ . ^… 、● ,

^; m ^ ^ ^ ^ ^
维普资讯
衄 arC C 成i 巾Itr h集e路 iedu ng i 国ac n 电t t
的输入序列为
Be=( 0b 1 , b 15 () b , ,, …, 2) b2 ( ) 1
1 H() (+2 o 2 3 3 = w 4)m d 16 W I l 乩() (+ 1 o 2 4 w =w 2)m d 16 I H () (+4 o 2 5 sw=w 8)m d 16
3 1符号解 交织设 计方案 .
由上文分析可知:内交织与解 内交织的实质就
是将输入数据块 的顺序打乱后再输 出。其最简单的
设 计
●— — — — — — — __J

分接器后 , 先进行 V路 16比特块交织 , 2 再进行 N 一 个 V比特字的符号块交织 , 最后输 出到星座映射 电

块交织及解交织实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

利用FPGA技术实现数字通信中的交织器和解交织器


-) 中 构 造 计 数 器 的 方 式 来 直 接 产 生 。 下 面 介 绍 一 下 地 址 序 列 的 产 生 方 法 。 将 ## 位 地 址 分 成 两 部 分 : 高 + 位和底 < 位, 在物理实现上构造 + 位和 < 位计数器各
一个, 然后级联起来。 对于交织器的读地址序列, 具体 实现时, 用 数 据 输 入 时 钟 18=80>?7@ 驱 动 + 位 计 数 器 计 数, + 位计数器记满同步清 " 时产生脉冲驱动 < 位计 数器计数, < 位 计 数 器 计 到 !#< 后 同 步 清 " 。交 织 器 的 写地址序列产生稍复杂, 但同样可用两计数器的级联 产生。 解交织器的最小时延问器, 数据缓冲区的读相 对于写必须有一个延时, 这个延时即为交织器和解交 织器的时延。为了尽量减小系统的时延, 应使交织器 和解交织器的时延降至最小。 则每个缓冲区 首先分析交织器, 设数据周期为 !, 单 元 的 读 或 写 地 址 的 保 持 时 间 也 为 ! 。考 察 图 ! 模 型 中 从 第 A 行 的 交 错 后 的 第 一 个 元 素 ) 到 第 A B# 行 的 元素 * 所用的时间, 若 按 写 操 作 进 行 需 !#C D ! , 按读 操 作 进 行 需 E !< D < B # F ! G !!5 ! H !#C ! 。 这 表 明 若 读 、 写 同时从 " 地址开始, 则缓冲区那的每个存储单元的写 操作都在读操作之前, 从而保证每个读出的数据都有 效。这里对于交错所产生的左下角区域元素, 交织器
《电子技术应用》!""" 年第 #" 期
四通工控 %&’ 软起动器经销商((#() )$)$)#** )$)$)#*+
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交织器与解交织器的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从std_logic_vector[15..0]转为integer,作为数组的下标,这样就把数据存入了数组对应的存储单元,实现了RAM的功能。

最后从全局的角度看下我们设计的整个交织\解交织的系统,系统框图如下
图8. 交织\解交织系统总体框图
3 设计仿真结果
通过”seq.vhd”、”w_r_addcreat.vhd”、”ram.vhd”、”decode_add_creat.vhd”这4个文件生成5个模块电路,在quartus中连接好后,再将图形文件转化成一个vhd文件”inter.vhd”,然后在ModelSim中进行仿真,仿真波形如下所示
图9. 交织器输出读、写地址
从仿真结果可以看到交织器写地址依次输出0、1、19、54、106、175、261、364、484、621、775、946、0、2、20、55......一直这样循环重复下去,而读地址则滞后一位(第0通道除外),与设计初衷一致。

图10. 0-1000顺序序列发生
上图为顺序序列的仿真结果,可以看到,seq_out输出从0数到1000反复循环,这样设置的目的是便宜观察解交织器的输出结果,可以推想到若输入的序列是随机的,解交织器也可以同样地还原出来。

图11. 解交织器输出读、写地址
从仿真结果可以看到解交织器写地址依次输出0、188、359、513、650、770、873、959、1028、1080、1115、1133、1、189....一直这样循环重复下去,而读地址则滞后一位,与设计初衷一致。

图12. 交织\解交织数据输出(初始图)
图13. 交织\解交织数据输出(解交织有数据输出)
从交织\解交织输出数据波形图可以看出,在交织器RAM数据未填充完
成前,解交织出的数据都是随机的,然后在延时12 * (12-1)*17 =2244个时钟周期之后,解交织出正确的数据。

仿真结果与设计初衷一致。

至此,设计和仿真都完成了。

4 课程设计总结
经过小组队长的组织协调和各成员积极配合,我们的课程设计在进行了3天的努力攻关之后,终于圆满地达到了所有技术指标。

我们从不知交织器为何物到最终设计出来,期间遇到过无数的挑战和烦恼。

举个例子,在写vhd程序的时候,由于分不清variable和signal的区别,我在定义的时候都是随便用的,结果就是编译虽然通过了,但仿真时出现许多莫名其妙的时序错误,本来判断好一个信号将被赋值却不知为何要等到下个时钟才能做出判断,这个问题曾纠结了我们队半天之久。

由于不知道问题出在哪,队长决定从头把VHDL的课本看一遍,在翻到讲述信号的章节时,一句话让队长我恍然大悟,”信号幅值有延迟,信号的赋值在进程结束后才生效”,我欣喜若狂,立马把程序重新写了一遍,顺利地解决了这个时序错乱的问题。

还有我在用Quartus编译时发现他对RAM的编译速度实在太慢,在查询相关资料后发现Quartus的编译过程中还要对程序进行综合,生成各种门电路,RAM由于写得较大,门电路很多,编译效率自然很低。

由于我们现在只处于仿真的初级过程,于是决定更换ModelSim进行编译,果不其然,速度快了很多。

后期我们又联合地使用两个工具,利用Quartus的强大自动生成vhd文件,画图等,利用ModelSim强大的仿真能力进行功能仿真,很好地运用了Altera公司的两大利器。

像这样的遇到问题-->解决问题的过程还有很多,但不管怎样,我们终于克服了重重困难障碍,完美实现了交织\解交织器的功能,对数字系统设计的流程有了进一步的了解。

通过这一次VHDL课程设计,我们提高了查阅资料、小组合作分工、共同排艰克难的能力,将课上所学知识运用到了实际,可谓收获良多。

最后感谢姜老师和实验课师兄的指导帮助,感谢你们的辛勤付出,希望我们小组的课程设计可以得到你们的认可,谢谢。

相关文档
最新文档