《通信系统中串行数据交织器的设计通信电子数据通信与网络_通信电子-数据通信与网络.pdf》由会员分享,可在线阅读,更多相关《通信系统中串行数据交织器的设计通信电子数据通信与网络_通信电子-数据通信与网络.pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、通信系统中串行数据交织器的设计 1/14 一、设计原理 1、交织器原理 交织器是通信编码中抗突发干扰的一种重要手段,将突发干扰产生的分布集中的误码分散到信息数据中,以便采用纠错编码的方法进行纠错。本项目设计一个行列交织器,其框架图图如图 1 所示,PN码发生器模拟数据源产生串行数据,按行写入一 m行 n 列的 RAM 中,写满后按列读出。为避免数据丢失,需使用两个这样的 RAM 交替读写。这里统一 m和 n 都选 4,即两个 44 RAM。图 1 串行数据交织器整体框架图 2、程序设计原理 本实验制作一个通信系统中的串行数据交织器,其设计原理图如图 1 所示。程序整体由三个子模块构成:100K
2、Hz分频模块,利用 FPGA上 50MHz的晶振分频得到,作为产生伪随机码和读写 RAM 的时钟;伪随机码发生器模块,以 16 个数通信系统中串行数据交织器的设计 2/14 为一周期,模拟数据源产生串行数据;读写 RAM 模块,按行写入一 4 行 4 列的 RAM中,写满后按列读出。为避免数据丢失,需使用两个这样的 RAM 交替读写,从而实现交织。电路图如图 2 所示:图 2 电路原理图 二、源程序代码/顶层模块 module interleaver(endout,out,clk_50M);input clk_50M;output0:0 endout,out;wire clk;wire3:0
3、k;wire0:0 pn16;divider U1(clk,clk_50M);pn U2(clk,pn16);array U3(endout,out,clk,pn16,k);干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码
4、顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 3/14 endmodule /分频器 (50MHz-100KHz)module divider(clk,clk_50M);output clk;input clk_50M;reg clk;reg23:0 cnt;always(posedge clk_50M)begin if(cnt=249)begin cnt=0;clk=clk;end else cnt=cnt+1;/计数 end
5、endmodule /pn16(伪随机码发生器,以 16 个数为一周期)module pn(clk,pn16);干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器
6、以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 4/14 input clk;output0:0 pn16;reg q0;reg q1;reg q2;reg q3;wire set1;wire SYNTHESIZED_WIRE_0;wire SYNTHESIZED_WIRE_1;assign SYNTHESIZED_WIRE_1=0;always(posedge clk)begin if(!set1)begin q0=1;end else begin q0=SYNTHESIZED_WIRE_0
7、;end end 干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交
8、织器的设计使用两个数组作通信系统中串行数据交织器的设计 5/14 always(posedge clk)begin begin q1=q0;end end always(posedge clk)begin begin q2=q1;end end always(posedge clk)begin begin q3=q2;end end assign SYNTHESIZED_WIRE_0=q3 q2;assign set1=q0|q2|q1|q3|SYNTHESIZED_WIRE_1;干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码
9、发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 6/14 assign pn16=q3;endmodule /array(使
10、用两个数组,作为两个 44RAM)module array(endout,out,clk,pn16,k);input clk;input0:0 pn16;output0:0 out,endout;output3:0 k;reg3:0 k,i;reg0:0 out,endout;reg array115:0;reg array215:0;reg1:0 j,flag;initial begin i=0;j=0;k=-1;flag=0;end 干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的
11、中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 7/14 always(posedge clk)begin if(k=15)begin k=0;end else k=k
12、+1;if(i=15)/用循环产生 44 数组,即 44 RAM begin i=0;flag=flag;end else i=i+1;if(j=3)j=0;else j=j+1;if(!flag)干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模
13、块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 8/14 begin array1i=pn16;/伪随机码写入 array1 out=array2i;/按行读出 array2中的数据给 out(未交织)if(i4)/按列读出 array2中的数据给 endout(交织后的)endout=array20+4*j;else if(i8)endout=array21+4*j;else if(i12)endout=a
14、rray22+4*j;else endout=array23+4*j;end else begin array2i=pn16;/伪随机码写入 array2 out=array1i;/按行读出array1 中的数据给out(未交织)if(i4)/按列读出 array1 中的数据给 endout(交织后的)endout=array10+4*j;else if(i8)干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序
15、整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 9/14 endout=array11+4*j;else if(i12)endout=array12+4*j;else endout=array13+4*j;end end endmodule 三、
16、仿真结果 1、分屏器模块仿真结果如图 3 所示:干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交
17、织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 10/14 图 3 分屏器模块仿真结果 2、伪随机码发生器模块仿真结果如图 4 所示:图 4 伪随机码发生器模块仿真结果 3、最终仿真输出结果如图 5、图 6 所示:干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串
18、行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 11/14 图 5 第一个周期 图 6 最终输出结果 干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成
19、分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 12/14 仿真结果分析:1、如图 5 所示,在第一个循环周期,伪随机码写入 array1,同时按行读出 array2到 out,按列读出 array2 到 endout,但由于此时 array2 里面的单元都为 0,
20、所以在第一个周期里,输出 out(未交织)和 endout(交织后)都为 0。2、如图 6 所示,结果为实现了交织功能。未交织的 out 输出为:0001 0011 0101 1110 0010 0110 1011 1100,即 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 1 0 0 交织后的 endout 输出为:01 0011 0101 1110 0011 0101 1110 0010,即 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 如
21、此可见,endout 实现了按列读出,即设计实现了交织功能。干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统
22、中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 13/14 四、实验结果 利用示波器观察交织前后的波形,如图 7 所示:图 7 实验结果 五、实验总结 本实验内容为制作一个通信系统中串行数据交织器。由于对 Verilog和Quartus II 软件、ModuleSim 仿真软件的使用较熟悉,对用 Verilog HDL语言来编写程序较熟练,因此在明白实验原理后,设计的实现就感觉较上一个实验简单。干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一
23、行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作通信系统中串行数据交织器的设计 14/14 但是,此次实验也并不是如鱼得水的。实验过程中也遇到了一些小问题。起初,对此次交织器的原理不是很清楚,对
24、其程序实现方案也不清晰。后来认真听了老师的解说,自己课后也在图书馆查阅了相关资料。经过自己的思考,最终明白了整个电路的原理。第二,刚开始搭建好电路进行观察时,示波器没有输出正确的波形。后面把 DE2板和示波器表笔换了,波形就出来了,并且同时输出了交织前和交织后的波形,说明本次设计取得了成功。通过自己课下的努力和钻研,最终较快较好地成功完成了实验,这给了我极大的兴趣和信心。从对交织器毫无预先知识的状态,到一步一步查找资料并尝试连接,确实在课下花了很多时间和心思。但看着自己制作的成果,深感一切都值得。本次实验让我深深体会到,单纯学习理论知识是不行的,只有勤于动手,将所学的知识运用到实际当中,才能真
25、正理解和掌握知识。在接下去的学习中,我将不断完善知识面,设计更为复杂的电路。干扰产生的分布集中的误码分散到信息数据中以便采用纠错编码的方法进行纠错本项目设计一个行列交织器其框架图图如图所示码发生器模拟数据源产生串行数据按行写入一行列的中写满后按列读出为避免数据丢失需使用两个这样数据交织器其设计原理图如图所示程序整体由三个子模块构成分频模块利用上的晶振分频得到作为产生伪随机码和读写的时钟伪随机码发生器模块以个数通信系统中串行数据交织器的设计为一周期模拟数据源产生串行数据读写模块电路原理图二源程序代码顶层模块通信系统中串行数据交织器的设计分频器计数伪随机码发生器以个数为一周期通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计通信系统中串行数据交织器的设计使用两个数组作