




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 学生姓名: 汤敏慎学 号:0815022209所在系部:电气信息系专业班级:08gb通信2班指导教师:崔振宇讲师日 期:二一二年5月毕 业 设 计(论 文)基于fpga的hdb3编码实现 28 (hdb3 encoding of fpga-based implementation)by (tang minshen) june 2012 学位论文原创性声明本人郑重声明:所呈交的学位论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 作者签名: 年 月 日学位论
2、文版权使用授权书本学位论文作者完全了解学院有关保管、使用学位论文的规定,同意学院保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于 1、保密 ,在 年解密后适用本授权书。 2、不保密 。 (请在以上相应方框内打“”) 作者签名: 年 月 日 导师签名: 年 月 日 摘 要 现代通信在技术一般的数字通信系统中首先将消息变为数字基带信号,称为信源编码,经过调制后进行传输,在接收端先进行解调恢复为基带信号,再进行
3、解码转换为消息。在实际的基带传输系统中,并不是所有电波均能在信道中传输,因此有基带信号的选择问题,因此对码型的设计和选择需要符合一定的原则。hdb3码因具有无直流成分,低频成分少和连0的个数不超过三个等明显优点而成为数字基带通信中最常用的码型。同时,由于硬件描述语言vhdl可读性强,可移植性强,支持对大规模设计的分解和对己已有设计的再利用等强大功能。现在已经在通信电路设计上得到广泛应用,文中结合hdb3的编码规则,给出了一种使用vhdl语言实现hdb3编码的思路和方法设计的核心部分是:在quartus的软件平台上,用vhdl语言来完成hdb3编码器的各个模块的设计并将它们合为一个整体的系统。设
4、计中所用到的知识主要是:对vhdl码型基本原理和特性的认识、对quartus 软件的熟练操作、对vhdl(超高速集成电路硬件描述语言)的掌握和应用,这些知识都是进行电子设计的基本知识和能力,只有基础知识和能力扎实了,才能更好的进行更次的电子设计,所以这个设计也是对电子设计基本能力的很好的锻练。关键字:现代通信 hdb3码 模块 vhdl quartus 软件 abstract modern communication in general digital communication system in first will change the information into number
5、word signal of base band, is called as letter source coding , transmit after passing modulation, in take over end advanced trip demodulation recovery is the signal of base band, it is news to carry out decode conversion again. in the actual transmission system of base band,its not all electric waves
6、 can transmit in channel , therefore have the option of the signal of base band problem, therefore for option and the design of pattern of sling-load, need to accord with certain principle.the hdb3 code, for in no direct current components, less lower frequency components and no more than three cont
7、inuous zreos, has become the most common-use code in digit-baseband communication, because of its strong readability, portability, reuse of the existing design and support in resolvability of the large scale design, the hardware describing language vhdl has been widely used in communication circuit
8、design. combining the rules of coding the hdb3, this paper gives a new method using the vhdl language to code the hdb3, the key part of my design is: in quartus software platform on, complete the design of every modular of hdb3 volume with vhdl language ( modular include: encoder and decoder) and wi
9、ll them suit for a overall system. the knowledge that used in design is mainly: it is for the knowledge of the vhdl basic principle and property of pattern of sling-load , for quartus the skilled operation of software , for vhdl ( exceed the hardware of integrated circuit description language ) gras
10、p and apply , these knowledges are the basic knowledge and ability that carries out electronic design , has only basic knowledge and has strong ability , talent is better to carry out the electronic design of higher level, so this design also is a very good exercise for electronic design basic abili
11、ty. keyword: modern communication hdb3 code modular vhdl quartu 目 录摘 要iabstractii1 可编程逻辑器件11.1 简介11.2 pld的发展历程11.3 pld的特点21.4 固定逻辑与可编程逻辑21.5 可编程逻辑器件的两种类型:cpld和fpga31.6 pld的编程语言.31.6.1 vhdl语言介绍31.6.2 语言特性、功能与特点41.7 fpga的设计流程51.8 quartus ii 概述72 hdb3码介绍92.1 数字基带信号92.2 nrz,ami,hdb3码之间的对应关系92.3 hdb3码的编码
12、规则103 用vhdl语言设计hdb3编码器123.1 程序输入输出口定义123.2 hdb3码编码器设计程序和思路123.3 系统设计思路小结174结 论194.1 仿真波形194.2 实验结论20参考文献21致 谢22附 录23 1 可编程逻辑器件1.1 简介可编程逻辑器件 英文全称为:programmable logic device 即 pld。pld是做为一种通用集成电路产生的,他的逻辑功能按照用户对器件编程来确定。一般的pld的集成度很高,足以满足设计一般的数字系统的需要。这样就可以由设计人员自行编程而把一个数字系统“集成”在一片pld上,而不必去请芯片制造厂商设计和制作专用的集成
13、电路芯片了。1.2 pld的发展历程早期的可编程逻辑器件只有可编程只读存贮器(prom)、紫外线可按除只读存贮器(eprom)和电可擦除只读存贮器(eeprom)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(pld),它能够完成各种数字逻辑功能。典型的pld由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以,pld能以乘积和的形式完成大量的组合逻辑功能。这一阶段的产品主要有pal(可编程阵列逻辑)和gal(通用阵列逻辑)。 pal由一个可编程的“与”平面和一个固定的“或”平面构成,或门
14、的输出可以通过触发器有选择地被置为寄存状态。 pal器件是现场可编程的,它的实现工艺有反熔丝技术、eprom技术和eeprom技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(pla),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 pla器件既有现场可编程的,也有掩膜可编程的。 在pal的基础上,又发展了一种通用阵列逻辑gal (generic array logic),如gal16v8,gal22v10 等。它采用了eeprom工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。 这些早期的p
15、ld器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。为了弥补这一缺陷,20世纪80年代中期。 altera和xilinx分别推出了类似于pal结构的扩展型 cpld(complex programmab1e logic dvice)和与标准门阵列类似的fpga(field programmable gate array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。 这两种器件兼容了pld和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它asic(application specific ic)相比,
16、它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、pld和中小规模通用数字集成电路的场合均可应用fpga和cpld器件。1.3 pld的特点pld与一般数字芯片不同的是:pld内部的数字电路可以在出厂后才规划决定,有些类型的pld也允许在规划决定后再次进行变更、改变,而一般数字芯片在出厂前就已经决定其内部电路,无法在出厂后再次改变,事实上一般的模拟芯片、混讯芯片也都一样,都是在出厂后就无法再对其内部电路进行调修。1.4 固定逻辑与可编程逻辑 逻
17、辑器件可分类两大类 - 固定逻辑器件和可编程逻辑器件。 一如其名,固定逻辑器件中的电路是永久性的.它们完成一种或一组功能,一旦制造完成,就无法改变。 另一方面,可编程逻辑器件(pld)是能够为客户提供范围广泛的多种逻辑能力、特性、速度和电压特性的标准成品部件,而且此类器件可在任何时间改变,从而完成许多种不同的功能。对于固定逻辑器件,根据器件复杂性的不同,从设计、原型到最终生产所需要的时间可从数月至一年多不等。 而且,如果器件工作不合适,或者如果应用要求发生了变化,那么就必须开发全新的设计。设计和验证固定逻辑的前期工作需要大量的“非重发性工程成本”,或nre。 nre表示在固定逻辑器件最终从芯片
18、制造厂制造出来以前客户需要投入的所有成本,这些成本包括工程资源、昂贵的软件设计工具、用来制造芯片不同金属层的昂贵光刻掩模组,以及初始原型器件的生产成本。 这些nre成本可能从数十万美元至数百万美元。对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计。然后,可快速将设计编程到器件中,并立即在实际运行的电路中对设计进行测试。 原型中使用的pld器件与正式生产最终设备(如网络路由器、dsl调制解调器、dvd播放器、或汽车导航系统)时所使用的pld完全相同。这样就没有了nre成本,最终的设计也比采用定制固定逻辑器件时完成得更快。采用pld的另一个关键优点是在设计阶段中客户可
19、根据需要修改电路,直到对设计工作感到满意为止。这是因为pld基于可重写的存储器技术-要改变设计,只需要简单地对器件进行重新编程。一旦设计完成,客户可立即投入生产,只需要利用最终软件设计文件简单地编程所需要数量的pld就可以了。 1.5 可编程逻辑器件的两种类型:cpld和fpga 可编程逻辑器件的两种主要类型是现场可编程门阵列(fpga)和复杂可编程逻辑器件(cpld)。 在这两类可编程逻辑器件中,fpga提供了最高的逻辑密度、最丰富的特性和最高的性能。 现在最新的fpga器件,如xilinx virtex系列中的部分器件,可提供八百万系统门(相对逻辑密度)。 这些先进的器件还提供诸如内建的硬
20、连线处理器(如ibm power pc)、大容量存储器、时钟管理系统等特性,并支持多种最新的超快速器件至器件(device-to-device)信号技术。 fpga被应用于范围广泛的应用中,从数据处理和存储,以及到仪器仪表、电信和数字信号处理等。 与此相比,cpld提供的逻辑资源少得多, 最高约1万门。 但是,cpld提供了非常好的可预测性,因此对于关键的控制应用非常理想。 而且如xilinx coolrunner系列cpld器件需要的功耗极低.1.6 pld的编程语言.有关之前所谈到的“pal”,若要以手工的方式来产生jedec档实是过于复杂,所以多半改用电脑程序(也称:计算机程序)来产生,
21、这种程序(程序)称为“逻辑编译器,logic compiler”,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码(也称:源代码)也得用特定的编程语言(也称:程序语言、编程语言)来撰写,此称之为hardware description language(硬件描述语言),简称:hdl。而且hdl并非仅有一种,而是有许多种,如abel、ahdl、confluence、cupl、hdcal、jhdl、lava、lola、myhdl、palasm、rhdl等都是,但目前最具知名也最普遍使用的是vhdl与verilog。1.6.1 vhdl语言介绍vhdl的全名是very-high-sp
22、eed integrated circuit hardware description language,诞生与1982年。1987年底vhdl被ieee和美国国防部确认为标准硬件描述语言。自ieee发布了hdl标准版本后,各eda公司相继推出了自己的vhdl实际环境,或宣布自己的程序可以和vhdl接口。此后vhdl在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,ieee对vhdl进行了修正,从更高的抽象层次和系统描述能力扩展vhdl的内容。现在,vhdl和verilog作为ieee的工业硬件描述语言,又得到了众多eda公司的支持,在电子工程领域,已成为事实
23、上的通用硬件描述语言。 vhdl主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,vhdl的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。vhdl的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是vhdl系统设计的基本点。1.6.2 语言特性、功能与特点联性的语法和形式虽类似与一般程序语言,但是涵盖许多
24、与硬件关联的语法构造。其特有的层次性由上而下的结构vhdl语言可描述一个数字电路的输入,输出以及相互之间的行为和功能。而其硬件关式语法结构适合大型设计项目的团队合作。在主要的系统结构,组件及相互间的连接方式决定以后,就能将工作分包下去,各自独立进行,例如使用主程序外的组件,函数以及程序内的块程序。1.支持多种电路与多种设计方法vhdl语言能够支持自顶向下和基于库的设计方法,支持组合逻辑电路,同步时序逻辑电路和异步时序逻辑电路等电路的设计,大多数eda工具都支持vhdl语言。2.支持硬件电路的层次化描述vhdl语言具有支持多层次描述系统硬件功能的能力,可以从系统的行为功能(数学模型)直到门级电路
25、逐层进行描述。另外,高层次的行为描述可以与底层次的寄存器描述和结构描述混合使用。3.能实现与工艺无关编程采用vhdl语言设计硬件电路时,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺。在工艺更新时无须原设计程序,只需改变相应的映射工具。由此可见,修改电路和修改工艺相互之间不会产生影响。4.易于共享和复用作为ieee标准的vhdl语言,语法严格,设计成果便于复用和交流。一个大规模的数字系统设计不可能从门级电路开始逐步进行设计,而是一些模块电路的有机叠加。这些模块电路可以预先设计或者使用以前设计中的存档模块。这些模块电路可以采用vhdl语言进行描述且存放于库中,便
26、于在以后设计中复用。这样可以减小数字系统设计的工作量,缩短开发周期1.7 fpga的设计流程fpga的设计流程就是利用eda开发软件和编程工具对fpga芯片进行开发的过程。fpga的开发流程一般如图1所示,包括电路设计、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真等主要步骤。图1 fpga开发的一般流程1 电路功能设计 在系统设计之前,首先要进行的是方案论证、系统设计和fpga芯片选择等准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的各种资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。一般都采用自顶向下的设计方法,把系统分成若干个基本单
27、元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用eda元件库为止。2 设计输入设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给eda工具的过程。常用的方法有硬件描述语言(hdl)和原理图输入方法等。原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。这种方法虽然直观并易于仿真,但效率很低,且不易维护,不利于模块构造和重用。更主要的缺点是可移植性差,当芯片升级后,所有的原理图都需要作一定的改动。目前,在实际开发中应用最广的就是hdl语言输入法,利用文本描述设计,可以分为普通
28、hdl和行为hdl。普通hdl有abel、cur等,支持逻辑方程、真值表和状态机等表达方式,主要用于简单的小型设计。而在中大型工程中,主要使用行为hdl,其主流语言是verilog hdl和vhdl。这两种语言都是美国电气与电子工程师协会(ieee)的标准,其共同的突出特点有:语言与芯片工艺无关,利于自顶向下设计,便于模块的划分与移植,可移植性好,具有很强的逻辑描述和仿真功能,而且输入效率很高。3 功能仿真功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和hdl等建立波形文件和测试向量(即将所关心
29、的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。常用的工具有model tech公司的modelsim、sysnopsys公司的vcs和cadence公司的nc-verilog以及nc-vhdl等软件。虽然功能仿真不是fpga开发过程中的必需步骤,但却是系统设计中最关键的一步。4 综合 所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供fpga布局布线软件进行实现。就目前的层次来看,综合优化(synthesis)是指将设计输入编译成由与门
30、、或门、非门、ram、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。真实具体的门级电路需要利用fpga制造商的布局布线功能,根据综合后生成的标准门级结构网表来产生。为了能转换成标准的门级结构网表,hdl程序的编写必须符合特定综合器所要求的风格。由于门级结构、rtl级的hdl程序的综合是很成熟的技术,所有的综合器都可以支持到这一级别的综合。常用的综合工具有synplicity公司的synplify/synplify pro软件以及各个fpga厂家自己推出的综合开发工具。5 综合后仿真 综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中
31、去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持综合后仿真。6 实现与布局布线实现是将综合生成的逻辑网表配置到具体的fpga芯片上,布局布线是其中最重要的过程。布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。目前,fp
32、ga的结构非常复杂,特别是在有时序约束条件时,需要利用时序驱动的引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源的使用情况。由于只有fpga芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。7 时序仿真与验证 时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块
33、进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非常有必要的。在功能仿真中介绍的软件工具一般都支持综合后仿真。1.8 quartus ii 概述 quartus ii 是altera公司的综合性pld开发软件,支持原理图、vhdl、veriloghdl以及ahdl(altera hardware description language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整pld设计流程。quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行
34、速度快,界面统一,功能集中,易学易用等特点。quartus ii支持altera的ip核,包含了lpm/megafunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方eda工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方eda工具。此外,quartus ii 通过和dsp builder工具与matlab/simulink相结合,可以方便地实现各种dsp应用系统;支持altera的片上可编程系统(sopc)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。maxplus ii 作为altera的上一
35、代pld设计软件,由于其出色的易用性而得到了广泛的应用。目前altera已经停止了对maxplus ii 的更新支持,quartus ii 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。altera在quartus ii 中包含了许多诸如signaltap ii、chip editor和rtl viewer的设计辅助工具,集成了sopc和hardcopy设计流程,并且继承了maxplus ii 友好的图形界面及简便的使用方法。altera quartus ii 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 2 hdb3码介绍2.1
36、 数字基带信号 数字基带信号的传输是数字通信系统的重要组成部分之一。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。为使基带信号能适合在基带信道中传输,通常要经过基带信号变化,这种变化过程事实上就是编码过程。于是,出现了各种各样常用码型。不同码型有不同的特点和不同的用途。作为传输用的基带信号归纳起来有如下要求:1 希望将原始信息符号编制成适合与传输用的码型;2 对所选码型的电波形,希望它适宜在信道中传输。可进行基带传输的码型较多。ami码ami码称为传号交替反转码。其编码规则为代码中的0仍为传输码0,而把代码中1交替地变化为传输码的+1-1+1-1,、。 举例如下。
37、消息代码:0 1 1 1 0 0 1 0 、ami 码:0 +1 -1 +1 0 0 -1 0 、或 0 -1 +1 -1 0 0 +1 0 、ami码的特点:无直流成分且低频成分很小,因而在信道传输中不易造成信号失真。编码电路简单,便于观察误码状况。由于它可能出现长的连0串,因而不利于接受端的定时信号的提取。hdb3码 这种码型在数字通信中用得很多,hdb3码是ami码的改进型,称为三阶高密度双极性码。它克服了ami码的长连0传现象。2.2 nrz,ami,hdb3码之间的对应关系 假设信息码为0000 0110 0001 0000,对应的nrz码、ami码,hdb3码如图2-1所示。信息代
38、码 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0ami波形ami代码 0 0 0 0 0 1 -1 0 0 0 0 1 0 0 0 0nrz波形hdb3代码 b 0 0 v 0 -1 1 -b 0 0 -v 1 0 0 0 vhdb3波形 图2-1 nrz ,ami,hdb3码型图分析表现,ami码及hdb3码的功率谱不含有离散谱fs成份(fs1/ts,等于位同步信号频率)。在通信的终端需将他们译码为nrz码才能送给数字终端机或数/模转换电路。在做译码时必须提供位同步信号。工程上,一般将ami或hdb3码数字信号进行整流处理,得到占空比为0.5的单极性归零码(rz|0.5ts
39、)。由于整流后的ami,hdb3码中含有离散谱fs,故可用一选频网络得到频率为fs的正弦波,经整形、限幅、放大处理后即可得到位同步信号。 2.3 hdb3码的编码规则 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符号开
40、始再交替变化。举例如下:代码 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 hdb3码 +1 0 -1 0 +1 -1 0 0 0 -1 0 +1 -1 +1 0 0 +1 -1v、b -v +b +vhdb3码的特点如下:基带信号无直流成分,且只有很小的低频成分;连0串符号最多只有3个,利于定时信息的提取;不受信源统计特性的影响。3 用vhdl语言设计hdb3编码器3.1 程序输入输出口定义 hdb3编码模块输入输出端口定义: 输入口:din hdb3编码模块数据输入端口。clkin hdb3编码模块时钟输入端口。 输出口:dout1.0 hdb3编码数据输出端口。
41、 hdb3编码模块图形如下: dout规则如下表所示:dout1dout0hdb300001-1101 3.2 hdb3码编码器设计程序和思路library ieee;use ieee.std_logic_1164.all;entity hdb3coding isport(clkin: instd_logic;din: instd_logic;dout: outstd_logic_vector(1 downto 0);end hdb3coding;architecture a of hdb3coding is constant pos : std_logic_vector := 10; con
42、stant neg : std_logic_vector := 01; constant zero : std_logic_vector := 00;signal t_out : std_logic_vector(1 downto 0);signal wait_out4 : std_logic_vector(1 downto 0);-输出缓存signal wait_out3 : std_logic_vector(1 downto 0);signal wait_out2 : std_logic_vector(1 downto 0);signal wait_out1 : std_logic_vec
43、tor(1 downto 0);beginprocess (clkin)variable last_v_sign : integer range 0 to 1 ;-最后一个v的符号variable last_sign : integer range 0 to 1 ;-最后一个非0数的符号variable zero_number : integer range 0 to 3 ;-连0的个数beginif clkinevent and clkin=1 thent_out=wait_out4;if din = 1 thenzero_number := 0;if last_sign = 1 thenl
44、ast_sign := 0;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = neg;elsif last_sign = 0 thenlast_sign := 1;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = pos;end if;elsif din = 0 thenif zero_number = 3 thenzero_number := 0;if last_v_sign = l
45、ast_sign thenif last_sign = 1 thenlast_v_sign := 0;last_sign := 0;wait_out4 = neg;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = neg;elsif last_sign =0 thenlast_v_sign := 1;last_sign := 1;wait_out4 = pos;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = pos;end if;elsif last_v_sign /=
46、 last_sign thenif last_sign = 0 thenlast_v_sign := 0;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = neg;elsif last_sign = 1 thenlast_v_sign := 1;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = pos;end if;end if;elsif zero_number /= 3 thenz
47、ero_number := zero_number+1;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1;wait_out1 = zero;end if;end if;end if;end process;dout =t_out;end a; 开始din=1din=0ls=1ls=0ls:=0ls:=1bc1bc1wo1=negwo1=poszn=3zn:=zn+1zn/=3bc1ls=0ls=0ls=1lvs/=lslvs=lszn:=0wo1=zerolvs:=1lvs:=0ls:=1ls:=0ls=1wo4
48、:=negbc1bc1lvs:=1lvs:=0 bc2wo4:=poswo1:=negwo1:=posbc2wo1:=negwo1:=pos ls对应程序中的 variable last_sign : integer range 0 to 1;表示最后一个非0数的符号 lvs 对应程序中的 variable last_v_sign : integer range 0 to 1 ;表示最后一个v的符号 zn对应程序中的 variable zero_number : integer range 0 to 3 ;表示连0的个数 bc1对应程序中的 wait_out4 = wait_out3; wai
49、t_out3 = wait_out2; wait_out2 = wait_out1; bc2对应程序中的 wait_out3 = wait_out2; wait_out2 = wait_out1; wo1,wo4对应程序中的wait_out1;和wait_out4;上面的流程图为程序的设计思路和逻辑算法。3.3 系统设计思路小结通过一步步有条不紊的分析和思考,更重要的是在设计中,根据实际情况,对设计初期的思想做不断完善和改进,因为在设计之前的思路,只能说是一个大体的方向,很多时候,实际的操作和设计要细致和复杂的多,或者原来的想法根本就行不通,得从实际设计的角度一步步来完成了这样一个系统设计。总
50、结一下实际操作的设计过程,可得到如下设计流程图:调试达到要求、完成设计仿真不通过系统功能的硬件测试对系统仿真测试、选择合适芯片并定义管脚应用vhdl进行编程分析hdb3码编码器功能学习vhdl语言设计确定设计方案 4结 论4.1 仿真波形输入代码 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 理论输出hdb3码 +1 0 -1 0 +1 -1 0 0 0 -1 0 +1 -1 +1 0 0 +1 -1 v、b -v +b +v仿真波形图因为fpga无法识别负电平程序用10表示+1 ,00表示0,01表示-1.换算成十进制码机分别是2,0和1.因为程序t_out=wai
51、t_out4;if din = 1 thenzero_number := 0;if last_sign = 1 thenlast_sign := 0;wait_out4 = wait_out3;wait_out3 = wait_out2;wait_out2 = wait_out1所以仿真开始后会有五个周期的延时,由于ami和hdb3编码特性,系统预定前一个消息码为+1,所以理论输出在第六个周期开始。4.2 实验结论eda技术本身是一种工业生产技术,在实践中运用基于硬件描述语言的可编程芯片开发技术可对通信系统中的相关电路进行硬件描述,然后用cpldfpga实现数字通信系统,同时结合电子设计自动化和电路仿真技术即可缩小产品的设计周期,降低可能发生的错误,提高通信产品的开发效益。实践表明,运用fpga来实现nrz码到hdb3码的转换比采用专用集成电路不仅给调试带来了方便,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版高品质商品房预售协议合同范本解读
- 2025版天强建设工程有限公司承接XX学校教学楼及宿舍楼工程合同
- 2025版通信网络优化通信劳务分包合同规范文本
- 2025版全新民间借款合同利息计算及下载服务
- 2025版泰和泰大豆短量合同审查与诉讼代理服务合同
- 2025年度生猪屠宰与屠宰废弃物处理设施建设合同
- 2025年度多人持股企业股权转让及后续分红权益分配合同
- 2025标准私人别墅购置合同
- 2025版金融创新产品融资咨询与居间服务协议
- 2025年新能源汽车充电桩股份投资与运营管理协议
- 腰椎融合术后护理课件
- 炸药安全课件
- 恙虫病护理课件
- 新入职员工遵纪守法培训
- 中学新生入学培训
- 肿瘤科中医护理适应技术
- 专题:完形填空(含解析)六年级英语下册期末复习考点培优专项鲁教版(五四学制)(含答案解析)
- 口腔科护士核心职责与操作规范
- 死亡病例讨论病例汇报
- 人教版(2024)八年级(下)期末物理试卷(含解析)
- 期末真题演练卷(试题) 数学七年级下册北师大版(2024版)
评论
0/150
提交评论