学位论文--hdb3编码器的设计_第1页
学位论文--hdb3编码器的设计_第2页
学位论文--hdb3编码器的设计_第3页
学位论文--hdb3编码器的设计_第4页
学位论文--hdb3编码器的设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE2湖南文理学院课程设计报告课程名称:HDB3编码器设计系部:电气与信息工程学院专业班级:学生姓名:指导教师: 完成时间:报告成绩:评阅意见:评阅意见:评阅教师日期

目录目录 1一、系统设计 21.1课题目标及总体方案 21.2 HDB3码简介 31.2.1数字基带信号 31.2.2NRZ,AMI,HDB3码之间的对应关系 31.2.3HDB3码的编码规则 4二、软件模块设计 52.1QuartusⅡ简介 52.2 整体系统实现方法 52.3 插“V”模块的实现 62.4插“B”模块的实现 72.5 单双极性变换模块的实现 8三、实验结果及讨论 10四、心得体会 11五、参考文献 12六、附录 136.1实验源程序及注释 13一、系统设计1.1课题目标及总体方案数字基带信号的传输是数字通信系统的重要组成部分。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。采用AMI码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。而HDB3码因其无直流成份、低频成份少和连0个数最多不超过三个等特点,而对定时信号的恢复十分有利。针对数字基带传输系统中HDB3信号的特点,采用基于CPLD/FPGA的VerilogHDL语言,在QuartusⅡ的环境中,实现HDB3数字基带信号的编码器设计。总体设计流程图如下图1:仿真不通过仿真不通过回顾VerilogHDL语言设计分析HDB3码编码器功能确定设计方案应用VHDL进行编程对系统仿真测试、选择合适芯片并定义管脚系统功能的硬件测试调试达到要求、完成设计图1总体设计流程图 HDB3码简介1.2.1数字基带信号数字基带信号的传输是数字通信系统的重要组成部分之一。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。为使基带信号能适合在基带信道中传输,通常要经过基带信号变化,这种变化过程事实上就是编码过程。于是,出现了各种各样常用码型。不同码型有不同的特点和不同的用途。作为传输用的基带信号归纳起来有如下要求:1希望将原始信息符号编制成适合与传输用的码型;2对所选码型的电波形,希望它适宜在信道中传输。可进行基带传输的码型较多。AMI码AMI码称为传号交替反转码。其编码规则为代码中的0仍为传输码0,而把代码中1交替地变化为传输码的+1-1+1-1,、、、。举例如下。消息代码:01110010、、、AMI码:0+1-1+100-10、、、或0-1+1-100+10、、、AMI码的特点:无直流成分且低频成分很小,因而在信道传输中不易造成信号失真。编码电路简单,便于观察误码状况。由于它可能出现长的连0串,因而不利于接受端的定时信号的提取。HDB3码这种码型在数字通信中用得很多,HDB3码是AMI码的改进型,称为三阶高密度双极性码。它克服了AMI码的长连0传现象。1.2.2NRZ,AMI,HDB3码之间的对应关系假设信息码为0000011000010000,对应的NRZ码、AMI码,HDB3码如下图2所示。图2HDB3波形图图2HDB3波形图1.2.3HDB3码的编码规则 HDB3码的编码规则:将消息代码变换成AMI码;检查AMI码中的连0情况,当无4个以上的连0传时,则保持AMI的形式不变;若出现4个或4个以上连0时,则将1后的第4个0变为与前一非0符号(+1或-1)同极性的符号,用V表示(+1记为+V,-1记为-V检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,则再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化。举例如下:代码101011000001100001HDB3码+10-10+1-1000-10+1-1+100+1-1V、B-V+B+VHDB3码的特点如下:基带信号无直流成分,且只有很小的低频成分;连0串符号最多只有3个,利于定时信息的提取;不受信源统计特性的影响。二、软件模块设计2.1QuartusⅡ简介QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。整体系统实现方法HDB3码编码器模型如图3所示:图3HDB3码编码器模型HDB图3HDB3码编码器模型HDB3码代码输入输输入

插“V”插“B”单/双极性变换 整个HDB3编码器主要包含3个功能部分:插“V”、插“B”和单极性码转变成双极性码。各部分之间采用同步时钟作用,并且带有一个异步的复位(清零)端口。下面将详细介绍各个部分的设计流程。除以上3个编码功能模块外,还有顶层主函数模块(包含分频)及信号产生模块(本程序选用m序列),在此不再赘述,详见附录源程序。插“V”模块的实现

插“V”模块的功能实际上就是对消息代码里的四连0串的检测即当出现四个连0串的时候,把第四个“0”变换成为符号“V”(“V”可以是逻辑“1”——高电平),而在其他情况下,则保持消息代码的原样输出。同时为了减少后面工作的麻烦,在进行插“V”时,用“11”标识它,“1”用“01”标识,“插“V”符号的设计思想很简单:首先判断输入的代码是什么(用一个条件语句判断),如果输入的是“0”码,则接着判断这是第几个“0”码,则把这一位码元变换成为“V”码。在其他条件下,让原代码照常输出。插“V”模块的程序框图如图4所示。图4插图4插“V”模块的程序框图2.4插“B”模块的实现插“B”模块的功能是保证附加“V”符号后的序列不破坏“极性交替反转”造成的无直流特性,即当相邻“V”符号之间有偶数个非0符号的时候,把后一小段的第1个“0”变换成一个非破坏符号——“B”符号。插“B”图5插图5插“B”模块的程序框图单双极性变换模块的实现根据HDB3的编码规则,我们可以知道,“V”的极性是正负交替的,余下的“1”和“B”看成一体且是正负交替的,同时满足“V”的极性与前面的非零码极性一致。由此我们可以将其分别进行极性变换来实现。从前面的程序知道,“V”、“B”、“1”已经分别用双相码“11”、“10”、“01”标识,“0”用“00”标识,所以通过以下的程序可以很容易实现。如下图6为实现极性变换功能的流程图。图6实现极性变换功能的流程图图6实现极性变换功能的流程图“01”:标识为+1;“11”:标识为-1;“B”符号的极性与前一非零符号相反,“V”极性符号与前一非零符号一致。因此将“V”单独拿出来进行极性变换(由前面已知“V”已经由“11”标识,所以很好与其他的代码区别),余下的“1”和“B”看成一体进行正负交替,这样就完成了HDB3的编码。三、实验结果及讨论经过多次的排查和修改,以及总结,使用编译器编译,编译器提示编译文件正确,再下载到EPM240T100C5芯片中进行调试,示波器显示波形与仿真波形一致,达到了本次课设设计的目标。QuartusⅡ软件仿真波形如下图7:图7系统仿真波形图图7系统仿真波形图输出为4位,高2位为符号位(01=+111=-100=0),低2位为数值位(00=001=111=v10=B)上图中code_out是十进制显示,例如“7”,即“0111”,实则“+V四、心得体会分频的时候分的尽量大一些,我们的是2的8次方分频,导致的结果是仿真的时候需要设定很大的时间,也就导致了仿真时间的加长。此次专业综合课程设计,让我受益匪浅。课设之初,我们认真查找、学习了关于HDB3编译码和QuartusⅡ软件的资料和文献作为课程设计的知识储备。经过自己的努力,在老师耐心细致的指导和同学的帮助下,我顺利完成了课程设计,也掌握了专业综合系统设计的基本方法,达到了预期的目的。本次课程设计是为了培养我们的动手能力,学好专业知识,光满足于课本是不够的。正所谓“纸上得来终觉浅,绝知此事要躬行”,实践才能出真知。我体会到成功就是在不断摸索着前进中实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。另外,我要感谢学院给了我这次学习和研究的机会,我还要感谢王立老师的悉心辅导和同学的帮助,我学到了很多东西,感受颇深。有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,解决不了的问题。除此之外,我也发现了自己的不足,语言表达能力还不够强,编程能力还不足,有些预先的想法都未能实现。我相信通过查阅相关资料,不断开阔眼界,并在以后的实践中不断磨练自己,能力一定会有提高。五、参考文献[l]通信原理.樊昌信,曹丽娜.国防工业出版社,2007[2]AlteraCPLDMAXII240_570学习板使用指南[3]段吉海,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计.电子工业出版社,2004[4]肖明波译.通信系统仿真原理与无线应用.机械工业出版社.2005

六、附录6.1实验源程序及注释//V模块程序输出与输入之间关系:01=111=v00=0moduleinsert_v(clk,code_in,code_out);inputclk,code_in;outputcode_out;reg[1:0]code_out;reg[2:0]count=0;//记录0的个数always@(posedgeclk)beginif(code_in==0)begincount<=count+1;if(count==3)//连续出现4个0,输出为V,并清零countbegincode_out<='b11;count<=0;endelsecode_out<='b00;endelseif(code_in==1)begincode_out<='b01;count<=0;endelsecode_out<='b00;endendmodule//B模块程序输出与输入之间关系:00=001=111=v10=Bmoduleinsert_B(clk,code_in,code_out);inputclk;input[1:0]code_in;//B模块的输入为V模块的输出output[1:0]code_out;//B模块的输出为两位reg[1:0]code_out;regcount=0;//count记录两次000V之间1的个数的奇偶,若为奇数个,不变,否则变为B00Vreg[1:0]s1=0,s2=0,s3=0;//移位寄存器regfirstV=0;//表示是否出现了000Valways@(posedgeclk)begins1<=code_in;//每次在时钟上升沿的时候以为移位寄存器移一位s2<=s1;s3<=s2;if(code_in=='b00)//输入为0,输出不变code_out<=s3;elseif(code_in=='b01)//输入为1,输出不变,奇偶改变begincount<=count+1;code_out<=s3;endelseif(code_in=='b11)//输入为Vbeginif(firstV==0)//判断之前是否出现了000VbeginfirstV<=1;//没出现,则输出不变,并记录此次Vcode_out<=s3;endelsebegin//之前出现了000V,判断出现1的奇偶性if(count==0)code_out<='b10;//1的个数为偶数,输出B,否则输出不变elsebegincount<=0;code_out<=s3;endendendelsecode_out<='b00;endendmodule//单双极性变换模块:01=+111=-100=0modulepolarity(clk,code_in,code_out);inputclk;input[1:0]code_in;//输入为B模块的输出output[3:0]code_out;//输出为4位,高两位表示极性reg[3:0]code_out;regflag;//判断是否需要极性转换always@(posedgeclk)beginif(code_in=='b00)//输入为0码时,则输出信号为0000code_out<={2'b00,code_in};elseif(code_in=='b11)//输入为V时,flag不变,即极性不变beginif(flag==1)code_out<={2'b11,code_in};elsecode_out<={2'b01,code_in};endelseif(code_in=='b01||code_in=='b10)//输入为1或B码时,flag3取反,即极性改变beginif(flag==1)begincode_out<={2'b01,code_in};f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论