基于FPGA的交织器-深圳大学-通信系统中串行数据交织器的设计(共9页).docx

上传人:飞****2 文档编号:14558196 上传时间:2022-05-05 格式:DOCX 页数:9 大小:172.41KB
返回 下载 相关 举报
基于FPGA的交织器-深圳大学-通信系统中串行数据交织器的设计(共9页).docx_第1页
第1页 / 共9页
基于FPGA的交织器-深圳大学-通信系统中串行数据交织器的设计(共9页).docx_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《基于FPGA的交织器-深圳大学-通信系统中串行数据交织器的设计(共9页).docx》由会员分享,可在线阅读,更多相关《基于FPGA的交织器-深圳大学-通信系统中串行数据交织器的设计(共9页).docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上深 圳 大 学 实 验 报 告 课程名称: 硬件描述语言与逻辑综合 实验项目名称: 通信系统中串行数据交织器的设计 学院: 电子科学与技术学院 专业: 电子科学与技术 指导教师: 刘春平 报告人 学号: 班级: 电子(2)班 实验时间: 实验报告提交时间: 一、 实验原理交织器是通信编码中抗突发干扰的一种重要手段,将突发干扰产生的分布集中的误码分散到信息数据中,以便采用纠错编码的方法进行纠错。本项目要求设计一个行列交织器,如图所示,PN码发生器模拟数据源产生串行数据,按行写入一m行n列的RAM中,写满后按列读出。为避免数据丢失,需使用两个这样的RAM交替读写。即一个读

2、时,另一个写。一个写时,另一个读,这样交替循环。因此,会产生一个周期的延时。这里统一要求m和n都选4.二、源程序module jiaozhiqi(out,waveout,clk); /输出未交织的out和交织后的waveout,输入50M clk时钟 output out,waveout;input clk; reg 0:0out; reg 0:0waveout; reg A0,A1,A2,A3;reg mem_A3:03:0;/4*4的二维寄存器型数组mem_Areg mem_B3:03:0;/4*4的二维寄存器型数组mem_Binteger i,j; reg clock,flag; reg

3、31:0 count; initial/初始化各变量 begini=0; j=0; A0=1; A1=0; A2=0; A3=1; flag=0; count=0; clock=0; end /将clk分频,产生交织器所需的频率clock always (posedge clk) begin if(count=1) begin count=0; clock=clock;end else count=count+1;endalways (posedge clock) /伪随机码发生器 begin A0=A0A3; A1=A0; A2=A1; A33) /利用i和j控制mem_A和mem_B按行输

4、入,按列输出beginj=0;i=i+1;endif(i3)begini=0;flag=flag;/每输入完16个数据,标志位发生一次变化。标志位用于控制 mem_A写mem_B读,还是mem_B写mem_A读endif(flag=0)/这个周期实现mem_A按行写,mem_B按列读beginmem_Aij=A3; /mem_A按行写out=mem_Bij; /mem_B按行读,即mem_B交织前的数据waveout=mem_Bji;/mem_B按列读,即mem_B交织后的数据end else/这个周期实现mem_B按行写,mem_A按列读beginmem_Bij=A3; /mem_B按行写o

5、ut=mem_Aij; /mem_A按行读,即mem_A交织前的数据waveout=mem_Aji;/mem_A按列读,即mem_A交织后的数据endend endmodule三、 实验结果与分析刚刚开始仿真时的第一个周期,由于flag=0,所以mem_A按行写,mem_B按列读,由于mem_B之前还未写入过数据,所以out(交织前)和waveout(交织后)输出均为0.第二个周期,flag=1,输出的为前一周期写入mem_A的数据,输出的out(未交织)为0000 1111 0101 1001,即0 0 0 01 1 1 10 1 0 11 0 0 1 而输出的waveout(交织后)为01

6、01 0110 0100 0111,即0 1 0 10 1 1 00 1 0 00 1 1 1 可见,交织成功。 第三个周期,flag=0,输出的为前一周期写入mem_B的数据,输出的out(未交织)为0001 1110 1011 0010,即 0 0 0 11 1 1 01 0 1 10 0 1 0 而输出的waveout(交织后)为0110 0100 0111 1010,即0 1 1 00 1 0 00 1 1 11 0 1 0 可见,交织成功。一直这样循环下去,可见,源程序仿真通过。四、实验演示clk分配50MHz,out分配到GPIO 0,waveout分配到GPIO 1,然后用示波器

7、双踪观察out与waveout,观察是否交织成功。实验结果:要在示波器中找到某一周期的起点不容易,但由于用的是伪随机码,有一定的规律。如上图,利用仿真器输出的波形,成功在示波器找出了某一周期起点的位置。由图可见仿真和示波器的out输出均为0101 1001 0001 1110 1011 0010 0011 1101 即0 1 0 11 0 1 1 1 0 0 10 0 1 0 0 0 0 10 0 1 11 1 1 01 1 0 1交织后的waveout为0101 1001 0001 1110 1001 0001 1110 1011,即0 1 0 11 0 0 11 0 0 10 0 0 10

8、 0 0 11 1 1 01 1 1 01 0 1 1交织成功。可见,本次试验是成功的。五、心得体会通过本次实验,我掌握了串行数据交织器的原理,学会了串行数据交织器的设计。由于刚开始时不太懂,参考了一下网上的程序,结果老师说大家的版本都差不多,怀疑我是抄的。其实也算不上是抄,只是参考。本来我想自己写的,但见别人写得那么好了,我已经无法超越了,就把别人的改了改就拿来用了,其实网上那个版本也是有点问题的,我发现了四句是多余的,原来那个人也是未完全弄懂的啊!因此,我写了这个用二维数组来控制的,发现其实用二维数组来控制其实更加简单,程序更加简洁,可移植性也大大增强。只要肯努力,相信自己可以做得更加好!其实,velilog这东西基础真的很重要,基础不好真的很容易出错,出了错自己本人一般是很难看出来的。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁