ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:441.68KB ,
资源ID:8766114      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8766114.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(卷积码编码器.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

卷积码编码器.docx

1、卷积码编码器数字集成电路设计课程设计 题目:交织器解交织器学院:电子与信息学院专业: 学号: 姓名: 一、设计要求 1. 请设计一个交织器和解交织器,完成二进制比特流的交织/ 解交织功能。 2. 设计测试文件,验证设计的功能是否正确。二、设计卷积交织器目的 在数字传输系统中,因为存在噪声,信道衰落等干扰因素,会使传输的信号发生错误,产生误码。虽然数字信号的传输为了防止误码而会进行信道编码,增加传输码的冗余,例如增加监督位等来克服信号在信道传输过程中的错误,但这种检错纠错能力是有限的。例如当出现突发错误,出现大片误码时,这时信道的纠错是无能为力的。而卷积交织器可以将原来的信息码打乱,这时尽管出现

2、大面积突发性错误,这些可以通过解交织器来进行分散,从而将大面积的错误较为平均地分散到不同的码段,利于信道纠错的实现。三、卷积码编码器原理卷积码拥有良好的纠错性能,是一种被广泛应用于移动通信的信道编码系统。一个(n,k,m)卷积码编码器由k个输入,具有m阶存储的n个输出的线形时序电路实现。通常, n和k是较小的整数,且kn,但m比较大。当k1时,信息序列不再分成小块,以便可以连续处理。卷积码(n,k,m)表示码率Rk/n,编码器级数ms1,其中s是码约束长度。反向CDMA信道使用(3,1,8)卷积码,码率R1/3,约束长度为9,由于k1,n3,m8,则该卷积编码器包含单个输入端,一个8级移位寄存

3、器,三个模 2加法器和一个3向编码器输出的连续转向器。编码器每输入一位信息比特将产生三位编码输出。这些编码符号中,第一个输出符号G0是生成序列g1编码产生的符号,第二个输出符号G1是由生成序列g1编码产生的符号,最后一个输出符号G2是由生成序列g1编码产生的符号,如下图所示。该电路由一个八位寄存器、三个码生成逻辑、一个时隙发生器和一个四选一复用器构成。mux的输入为G0、G1和G2,码选择信号C1:0和clk1由时隙发生器产生,输出信号即为整个电路的输出Yout。卷积编码器的初始状态用rst异步清零信号置为0,rst=0时,电路清零。卷积编码器的初始状态全为0,初始状态之后输出的第一个编码符号

4、由生成序列g1编码产生。这里,三个生成序列分别为g1=(101101111),g1=(110110011), g1=(111001001)。即三个生成多项式分别为:C01+X+X2+X3+X5+X6+X8 (557) C11+X+X4+X5+X7+X8 (663)C21+X3+X6+X7+X8 (711)四、实验设计与实现根据以上实验要求,我们首先设想了分为几个模块,然后将各个模块进行整合实现编码器的功能,根据我们的设想编写相应的verilog程序,进行调试、实现。以下是实验的具体过程。 1.卷积码模块设计(1)3分频器(fenping)。它的功能是产生clk时钟三分之一频率的时钟信号,命名为

5、clk1,同时产生选择信号sel1:0。(2)4-1多路选择器(mux_4_1)。根据sel1:0输入的选择信号,选择4路(in0,in1,in2,in3)输入的1路来输出(out)。后来,根据老师的指导,将卷积的运算逻辑组装在这个模块里。(3)8位移位寄存器(wyjc_8)。用于记录输入的信息。每经过一个时钟上升沿(clk1)向前移位一次。2.verilog程序编写各个模块相应的代码和注释如下所示。(1)3分频器module fenping(clear,clk,clk1,count);input clk,clear;output clk1,count;wire clk,clear;reg c

6、lk1;reg 2:0 count;always (posedge clk or posedge clear)beginif(clear=1)count2:0=3b010;elsebegin/通过循环移位实现3分频count0=count2;count1=count0;count2=count1;clk1=count1;end;endendmodule(2)41多路选择器module mux_4_1(clk1,clk,sel,in,kin,out);input1:0 sel;input clk,in,clk1;input7:0 kin;output out;wire 1:0 sel;reg o

7、ut;reg 8:0k;always (posedge clk) /依次计算c0,c1,c2begincase(sel)default out=0;2b00:out=(k0+k1)+(k2+k3)+(k5+k6+k8);2b01:out=k0+k1+k4+k5+k7+k8;2b10:out=k0 +k3+k6)+k7+k8;endcaseendalways (posedge clk1) /采样部分begink7:0=kin7:0;k8=in;endendmodule(3)8位移位寄存器module wyjc_8(clear,clk,in,out);Input clear,clk,in;outp

8、ut7:0 out;reg7:0 out;wire clear,clk,in;always (posedge clk or posedge clear)beginif(clear=1)out7:0=8b0;elsebeginout7=in;out6=out7;out5=out6;out4=out5;out3=out4;out2=out3;out1=out2;out0=out1;endendendmodule(4)整合模块include “fenping.v”/将各模块加入文件include “mux_4_1.v”include “wyjc_8.v”module bianma(rst,clk,i

9、n,out,clk1);input rst,clk,in;output out;output clk1;wire clr,clk,in,clk1,rst;wire7:0 k;wire2:0 sel;reg g0,g1,g2;fenping f1(.clk(clk),.clear(clr),.clk1(clk1),.count(sel);/分频器实例化wyjc_8 w1(.clear(clr),.clk(clk1),.in(in),.out(k);/移位寄存器实例化mux_4_1 m1(.clk1(clk1),.in(in),.kin(k),.clk(clk),.sel(sel1:0),.out

10、(out);/多路选择器实例化assign clr=rst;/复位信号翻转endmodule (5)测试程序timescale 1 ns/ 1 nsmodule bianma_test1;reg clk,rst,in,code,flag;wire out,clk1;integer I,j,r_seed;reg31:0 a;reg15:0 c0,c1,c2;bianma b1(.clk1(clk1),.clk(clk),.rst(rst),.in(in),.out(out);initial clk=0;/时钟产生always #5 clk=clk;initial/复位部分beginrst=0;#

11、7 rst=1;endinitial/结束仿真#490 $finish;Initial/输入与对照分量产生begin$monitor($stime,”clk=%b,rst=%b,in=%b,out=%b,code=%b,error=%b ”,clk,rst,in,out,code,flag);a31:0=32b0;a18:0=$random % (1024*8);for(i=0;i16;i=i+1)beginc0i=ai+8 ai+6 ai+5 ai+3 ai+2 ai+1ai;c1i=ai+8 ai+7 ai+5 ai+4 ai+1ai;c2i=ai+8 ai+7 ai+6 ai+3ai;e

12、ndin=0;flag=0;#10 in=a8;for(i=0;i16;i=i+1)begin#30 in=ai+9;endendinitial/采样对比begin#20 code=0;for(j=0;j16;j=j+1)begin#5 code=c0j;#5 if(out!=code) flag=1;#5 code=c1j;#5 if(out!=code) flag=1;#5 code=c2j;#5 if(out!=code) flag=1;if(flag=1) $dispaly(“error”);endendinitial $sdf_annotate(“bianma.sdf”,b1);/延

13、时文件endmodule五、仿真与综合 1.初始波形(输入IN为随机数)图中out端输出为编码器输出,code端输出为对照输出,从仿真波形图可以看出,两者的输出波形完全一致,即编码器工作正常。2.门级电路仿真各模块和综合后仿真结果如下4张图所示。3.综合后电路信息4.综合后仿真波形(输入IN为随机数)在 control_test.v 文件中加入以下语句,以便将control.sdf 文件标注到测试文件中: initial $sdf_annotate(“control.sdf”,c1); c1 为测试文件中调用control 电路模块的标签在对门级电路control.vg 进行仿真时,在仿真命令

14、中使用-v/home2/student/lib/train/verilog/tsmc25.v将库文件引入,得到的仿真波形如下图所示。由上图可知,在其他条件不变情况下,编码器工作依然正常,但是out端(实际)的输出与code端(对照)的输出相比,有1ps的延迟。六、实验总结 本次ASIC实验课程的要求是编写一个(3,1,8)卷积码编码器,实验过程总体还算顺利,不过也难免遇到一些问题,程序的编写和修改是贯穿始终的,除此之外,首先的问题是理论知识的应用方面,因为我之前对卷积码了解不多,因此不得不查阅相关书籍仔细了解了卷积码的概念和编码过程,另外一点就是在我们进行仿真的最后阶段,输出波形和校验波形之间有一点冒险的差异,我们试图从各个方面查找问题都没有成功,最终还是得到了老师的帮助,顺利完成。实验中除了进一步锻炼了我的动手能力和解决实际问题的能力之外,还进一步让我体会到了理论联系实际的重要性,并且巩固和应用了课堂所学的verilog语言,通过实验,我对这门课有了更深入的了解,也让我更加有了学习的兴趣。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2