基于FPGA的交织器,深圳大学,通信系统中串行数据交织器的设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“深圳大学数据选择器”。
深 圳 大 学 实 验 报 告
课程名称:硬件描述语言与逻辑综合
实验项目名称:通信系统中串行数据交织器的设计
学院: 电子科学与技术学院
专业: 电子科学与技术
指导教师: 刘春平
报告人学号: 班级:电子(2)班
实验时间:
实验报告提交时间:
一、实验原理
交织器是通信编码中抗突发干扰的一种重要手段,将突发干扰产生的分布集中的误码分散到信息数据中,以便采用纠错编码的方法进行纠错。本项目要求设计一个行列交织器,如图所示,PN码发生器模拟数据源产生串行数据,按行写入一m行n列的RAM中,写满后按列读出。为避免数据丢失,需使用两个这样的RAM交替读写。即一个读时,另一个写。一个写时,另一个读,这样交替循环。因此,会产生一个周期的延时。这里统一要求m和n都选4.二、源程序
module jiaozhiqi(out,waveout,clk);
//输出未交织的out和交织后的waveout,输入50Mclk时钟
output out,waveout;input clk;reg [0:0]out;reg [0:0]waveout;reg A0,A1,A2,A3;reg mem_A[3:0][3:0];//4*4的二维寄存器型数组mem_A reg mem_B[3:0][3:0];//4*4的二维寄存器型数组mem_B integer i,j;reg clock,flag;reg[31:0] count;
initial//初始化各变量 begin i
//将clk分频,产生交织器所需的频率clock always @(posedge clk)
begin
end
//伪随机码发生器 if(count==1)
begin count
j=j+1;A0
if(j>3)//利用i和j控制mem_A和mem_B按行输入,按列输出
begin
end begin
i=0;flag=~flag;//每输入完16个数据,标志位发生一次变化。标志位用于控制
mem_A写mem_B读,还是mem_B写mem_A读 j=0;i=i+1;if(i>3)end begin
if(flag==0)//这个周期实现mem_A按行写,mem_B按列读
mem_A[i][j]
//mem_B按行读,即mem_B交织前的数据
waveout
end else //这个周期实现mem_B按行写,mem_A按列读
begin
mem_B[i][j]
//mem_A按行读,即mem_A交织前的数据
waveout
end end endmodule
三、实验结果与分析
刚刚开始仿真时的第一个周期,由于flag=0,所以mem_A按行写,mem_B按列读,由于mem_B之前还未写入过数据,所以out(交织前)和waveout(交织后)输出均为0.第二个周期,flag=1,输出的为前一周期写入mem_A的数据,输出的out(未交织)为0000 1111 0101 1001,即
0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 而输出的waveout(交织后)为0101 0110 0100 0111,即
0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 1 可见,交织成功。
第三个周期,flag=0,输出的为前一周期写入mem_B的数据,输出的out(未交织)为0001 1110 1011 0010,即
0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0
而输出的waveout(交织后)为0110 0100 0111 1010,即
0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 可见,交织成功。
一直这样循环下去,可见,源程序仿真通过。
四、实验演示
clk分配50MHz,out分配到GPIO 0,waveout分配到GPIO 1,然后用示波器双踪观察out与waveout,观察是否交织成功。
实验结果:
要在示波器中找到某一周期的起点不容易,但由于用的是伪随机码,有一定的规律。如上图,利用仿真器输出的波形,成功在示波器找出了某一周期起点的位置。由图可见仿真和示波器的out输出均为0101 1001 0001 1110 1011 0010 0011 1101 ······即
0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 交织后的waveout为0101 1001 0001 1110 1001 0001 1110 1011,即
0 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1 交织成功。可见,本次试验是成功的。
五、心得体会
通过本次实验,我掌握了串行数据交织器的原理,学会了串行数据交织器的设计。由于刚开始时不太懂,参考了一下网上的程序,结果老师说大家的版本都差不多,怀疑我是抄的。其实也算不上是抄,只是参考。本来我想自己写的,但见别人写得那么好了,我已经无法超越了,就把别人的改了改就拿来用了,其实网上那个版本也是有点问题的,我发现了四句是多余的,原来那个人也是未完全弄懂的啊!因此,我写了这个用二维数组来控制的,发现其实用二维数组来控制其实更加简单,程序更加简洁,可移植性也大大增强。只要肯努力,相信自己可以做得更加好!其实,velilog这东西基础真的很重要,基础不好真的很容易出错,出了错自己本人一般是很难看出来的。
刀豆文库小编为你整合推荐3篇FPGA数据采集与回放系统设计论文,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......
FPGA数据采集与回放系统设计论文在个人成长的多个环节中,大家或多或少都会接触过论文吧,论文是我们对某个问题进行深入研究的文章。怎么写论文才能避免踩雷呢?下面是小编为大家......
一种双模通讯的外系统等效器设计论文为了克服航天飞行器进行地面模拟测试时,外系统等效器通讯容易中断的问题,设计了一种基于PCI和USB通信技术的外系统等效器。系统以FPGA为中......
刀豆文库小编为你整合推荐4篇一种双模通讯的外系统等效器设计论文,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......
基于51单片机的盲文助读器系统设计研究论文引言中国是全世界盲人最多的国家之一,据统计约有900万盲人。盲人接受文字信息的途径主要有利用语音合成发声软件阅读和触摸盲文凸......