刘静基于VHDL的HDB3编解码器设计.docx
《刘静基于VHDL的HDB3编解码器设计.docx》由会员分享,可在线阅读,更多相关《刘静基于VHDL的HDB3编解码器设计.docx(58页珍藏版)》请在冰豆网上搜索。
刘静基于VHDL的HDB3编解码器设计
编号:
审定成绩:
重庆邮电大学
毕业设计(论文)
设计(论文)题目:
基于VHDL的HDB3编解码器设计
学院名称:
通信与信息工程学院
学生姓名:
刘静
专业:
电子信息工程
班级:
0120707
学号:
07020706
指导教师:
徐国炯
答辩组负责人:
贺利芳
填表时间:
2011年6月
重庆邮电大学教务处制
摘要
数字基带信号的传输是数字通信系统的一个重要组成部分,其传输质量直接决定着整个通信系统的性能。
HDB3码具有无直流成分、低频成分少和连0个数最多不超过3个等特点,从而对定时信号的恢复十分有利,并且这种码型也通过正负极性交替消除传输信号中的直流成分,可降低功耗的优点,使其成为数字基带信号传输中最常用的传输码型之一。
本次毕业设计的主要内容就是运用MAX+PLUSⅡ软件提供的文本编辑方式,利用VHDL语言进行编程,实现HDB3编解码器的设计。
它所要达到的要求就是能从软件方面来实现HDB3编解码器的基本功能,并验证他的正确性。
文中首先分别介绍了可编程逻辑器件、VHDL语言、HDB3和MAX+PLUSⅡ软件的应用、概述和特点,对HDB3码的编/解码规则进行了重点讲解。
其次,通过对应的方式分别对HDB3编/解码器实现的基本原理进行了详细的介绍,同事描述了对模块功能流程图的设计思想。
再次,使用VHDL语言来实现各个模块的流程图并得到HDB3编/解码的方针波形。
最后,描述了编/解码器的合成原理,并在MAX+PLUSⅡ的软件平台上得出仿真波形并进行分析,验证它的正确性。
【关键字】HDB3码VHDLMAX+PLUSⅡ软件
ABSTRACT
Digitalbasesignal’stransmissionisanimportantpartofadigitalcommunicationsystem.Itstransmissionqualitydirectlydeterminestheperformanceoftheentirecommunicationsystem.HDB3codehasnoDCcomponent,lowfrequencycomponents,andevenfewerthenumber0uptomorethan3andsoon,thustherecoveryisveryfavorablefortimingsignals.ThispatternisalsotransmittedthroughtheeliminationofalternatingpolarityDCsignalcomponents;theadvantageistoreducepowerconsumption.Makingitisoneofamostcommonpatternofdigitalbasebandsignal’stransmissioninthetransmission.
ThemiantaskofthegraduationprojectisusingMAX+PLUSⅡ’stexteditingsoftwareandVHDLlanguage’sprogramtodesignaHDB3codec.ItisrequiringachievingtherequirementthatusesoftwaretoachievethebasicfunctionsofHDB3codecandverifyitscorrectness.First,thispaperintroducethelogicdevices,VHDLlanguage,HDB3andMAX+PLUSⅡsoftware’sapplications,outlinesandfeatures.ThemostimportantpartisHDB3code’sencodinganddecoding.Second,usescorrespondingwaytodetaildescribeHDB3’sencoderanddecoderrespectively.Inthesametime,describeathinkingoffunctionflowchart.Again,usingtheVHDLlanguagetoachieveaflowchartofeachmoduleandgetHDB3’sencodinganddecodingwaveform.Finally,describingthesynthesisprincipleofencoderanddecoder.ObtainthesimulationwaveforminMAX+PLUSⅡ’ssoftwareplatformandverifyitscorrectness.
【Keyword】HDB3codeVHDLMAX+PLUSⅡ
前言
现代通信借助于电和光来传输信息,数字终端产生的数字信息是以“1”和“0”2种代码(状态)位代表的随机序列,可以用不同形式的电信号表示,从而构造不同形式的数字信号。
在数字基带传输系统中,含有丰富直流和低频的信号可能产生严重畸变,不适合在信道中传输。
另外,系统需要从接收到的基带信号中提取出定时信息。
HDB3码是在AMI码的基础上改进的一种双极性归零码,它保持了AMI码的极性反转特性,除具有AMI码功率谱中无直流分量,只有很少的低频分量的优点外,还减少了连“0”串的长度,从而克服了AMI码当信息中出现连“0”码时定时时钟提取困难的缺点,有利于定时信号的恢复。
国际电报电话咨询委员会(CCITT)已建议把HDB3码作为PCM终端设备一次群到三次群的接口码型。
Altera公司生产的MAX+PLUSⅡ是专为可编程逻辑器件(PLD)的研制和应用而开发的设计软件,具有设计输入、编译处理、性能分析、模拟仿真、功能验证以及器件编程的强大功能,深受广大工程师的欢迎。
本文就是采用MAX+PLUSⅡ提供的VHDL编辑一段程序,实现将不归零码(NRZ)转换成HDB3码,最后再将HDB3码转换成原始输入的NRZ码,对其进行编辑、仿真、验证,得出相应的波形。
即利用VHDL语言对数据传输系统中的HDB3码的编/解码器进行了设计。
第一章绪论
第一节可编程逻辑器件概述
一、可编程逻辑器件的发展历程
从20世纪60年代开始,数字集成电路经历了小规模集成电路(SSI-SmallScaleInteration,几十到几百门),中规模集成电路(MSI-MediumScaleIntegration,几百到几千门),大规模集成电路(LSI-LargeScaleIntegration,几千到几万门),超大规模集成电路(VLSI-VeryLargeScaleIntegration,几百万门以上)等几个发展阶段。
在此期间先后出现了各种不同类型的数字集成电路,从大的方面可以将它们分为三种类型。
1、标准逻辑器件
即中小规模集成电路,如TTL工艺的54/74系列和CMOS工艺的CD4000系列的各种逻辑门,触发器,译码器,多路转换器,计数器和寄存器等逻辑器件就属于这一类。
标准器件的生产批量大,成本低,价格便宜。
由于其功能完全确定,版图设计时可将精力投入到提高性能上,因此这种器件的工作速度一般都很快。
它是传统数字系统设计中使用的主要器件,但集成度不高,用它设计的系统器件多,功耗大,而且印刷电路版走线复杂,焊点多,致使系统的可靠性降低。
应为用户无法修改这类器件的功能,使得修改设计时比较麻烦,改动系统中的一个器件往往就需要重新设计印刷电路。
2、由软件配置的集成电路器件
20世纪70年代以后陆续推出了由软件配置的微处理器(CPU)和单片机等逻辑器件,它们较好的弥补了上述标准逻辑器件的缺陷。
这类器件集成度高,逻辑功能可由软件自由配置,因而由它们构成的数字系统灵活性大大增强。
但这类器件的工作速度比较底,不能直接用于速度要求特别严格的场合。
另外,这类逻辑器件通常需要有若干标准逻辑器件搭成的外围电路才可以工作,所以硬件规模也较大。
3、专用集成电路ASIC
ASIC(ApplicationSpecificIntergratedCircuits)的出现在一定程度上克服了上述两种逻辑器件的某些缺点。
ASIC是为了满足一种或几种特定功能而设计并制造的集成电路芯片,他的密度一般都很高,一片ASIC芯片就能取代一块有若干中小规模集成电路芯片搭成的印刷电路板,甚至一个完整的数字电路系统也能用一片ASIC芯片实现。
因此,使用ASIC能大大减小系统的硬件规模,降低系统功耗,提高系统可靠性,保密性和工作速度。
ASIC按制造方法又可分为全定制(FullCustom)产品,半定制(Semi-custom)产品和可编程逻辑器件(PLD)。
(1)全定制产品
全定制的ASIC芯片的各层掩膜都是按特定的电路功能专门制造的。
设计人员从晶体管的版图尺寸,位置和互连线开始设计,以求达到芯片面积利用率高,速度快,功耗低的最优性能。
要经过电路设计,逻辑模拟,版图设计和集成电路的各道生产工序才能制造出符合要求的专用集成电路芯片。
它的设计制作成本高,周期长,还带有较大的风险性,一旦设计失误就会浪费大量自己与设计时间,因此全定制的专用集成电路只在特大批量生产的情况下才适用。
(2)半定制产品
半定制产品是一种约束性设计方式。
约束的主要目的是简化设计,缩短设计周期和提高芯片成品率。
半定制ASIC芯片上的单元电路是由器件生产厂家预先作好的,只剩下金属连接层的掩摸有待按用户的具体要求进行设计与制造。
母片通用性较强,可以大批量生产,因而成本较低。
设计半定制ASIC芯片时,用户根据设计要求及所选母片的结构设计出连线版图,在交器件生产厂家布金属连接线。
最常见的半定制ASIC有门阵列,门海和标准单元等。
半定制ASIC与全定制ASIC相比,当生产量不是很大时,它的设计和生产周期较短,成本低,风险也小。
(3)可编程逻辑器件
以上两种ASIC的设计和制造都离不开器件生产厂家,用户主动性较差。
随着微电子技术的发展,设计师们更愿意自己设计专用集成电路芯片,并尽可能缩短设计周期,最好是在实验室里就可以设计出合适的ASIC芯片,并且立即投入实际应用之中,在使用中也能比较方便的对设计进行修改。
可编程逻辑器件就是为了满足这一需求应运而生的。
PLD芯片上的电路和金属引线都是事先由器件生产厂家作好的,但其逻辑功能在出厂时并没有确定,可由用户根据需要借助于PLD开发工具通过对其“编程”的办法来确定。
因此设计师们不通过器件生产厂家就能自己设计出符合要求的各种ASIC芯片。
PLD器件兼有逻辑器件速度快、微处理器灵活性好和定制与半定制ASIC集成度高的优点,且大都可多次重复编程,为设计和开发带来很大方便,是实现新型数字系统的理想器件。
二、可编程逻辑器件的特点
PLD的特点是在进行系统设计时体现出来的,使用PLD设计数字系统会带来许多好处,归结起来主要有以下几点。
1集成度高
PLD器件集成度高,一片PLD可代替几片、几十片乃至上百片中小规模的数字集成电路芯片。
用PLD器件实现数字系统时用的芯片数量减少,占用印刷线路板面积小,整个系统的硬件规模明显减小。
例如,一个由2片“或”门74LS32、4片“与”门74LS08和4片D触发器74LS74组成的电子游戏机控制电路,用1片GAL16V8即可代替。
2可靠性好
使用PLD器件减少了实现系统所需要的芯片数目,在印刷线路板上的引线以及焊接点数量也随之减少,所以系统的可靠性得以提高。
3工作速度快
PLD器件的工作速度快,使用PLD后实现系统所需要的电路级数又少,因而整个系统的工作速度会得到提高。
4提高系统的灵活性
在系统的研制阶段,由于设计错误或任务的变更而修改设计的事情经常发生,使用不可编程的器件时,修改设计就要更换或增减器件,这是一件相当麻烦的事,有时还不得不更换印刷线路板。
使用PLD器件后情况就大为不同:
由于PLD器件引脚比较灵活,又有可擦除可编程能力,因此对原设计进行修改时,只需要修改原设计文件再对PLD芯片重新编程即可,而不需要修改电路布局,更不需要重新加工印刷线路板,这就大大提高了系统的灵活性。
5缩短设计周期
PLD器件集成度高,使用时印刷线路板电路布局布线简单;性能灵活,使用它修改设计方便;开发工具先进,自动化程度高。
因此,使用PLD可大大缩短系统的设计周期,加快产品投放市场的速度,提高产品的竞争能力。
6增加系统的保密性能
很多PLD器件都具有加密功能,在系统中广泛使用PLD期间可有效防止产品被他人非法仿制。
7降低成本
使用PLD器件实现数字系统设计时,如果仅从器件本身的价格考虑,有时还看不出它的优势,但影响系统成本的因素是很多方面,综合考虑,使用PLD的成本优越性是很明显的。
首先,使用PLD器件修改设计方便,设计周期缩短,使系统的研制开发费用降低;其次,使用PLD器件可使印刷线路板面积和需要的插件减少,从而使系统的制造费用降低;再次,使用PLD器件能使系统的可靠性提高,维修工作量减少,进而使系统的维修服务费用降低。
总之,使用PLD进行系统设计能节约成本。
三、可编程逻辑器件的一般设计流程
可编程逻辑器件的设计过程是利用EDA开发软件和编程工具对器件进行开发的过程。
可编程逻辑器件的一般设计流程如图1.1所示,包括设计准备,设计输入,功能仿真,设计处理,时序仿真和器件编程及测试等七个步骤。
图1.1可编程逻辑器件的一般设计流程
1、设计准备
在系统设计之前,首先要进行的是方案论证,系统设计和器件选择等准备工作。
设计人员需要根据任务要求,如系统的功能和复杂度,对工作速度和器件本身的资源、成本及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。
一般采用自顶向下的设计方法。
2、设计输入
设计输入是设计人员将所设计的系统或电路以开发软件要求的某种形式表示出来,并送入计算机的过程。
设计输入通常有以下几种形式:
(1)原理图输入方式
原理图输入方式是一种最直接的设计描述方式,要设计什么,就从软件系统提供的元件库中调出来,画出原理图。
这种方式要求设计人员有丰富的电路知识及对PLD的结构比较熟悉。
其主要优点是容易实现仿真,便于信号的观察和电路的调整;缺点是效率低,特别是产品有所改动,需要选用另外一个公司的PLD器件时,就需要重新输入原理图,而采用硬件描述语言输入方式就不存在这个问题。
(2)VHDL(硬件描述语言)输入方式
硬件描述语言是用文本方式描述设计,它分为普通硬件描述语言和行为描述语言。
普通硬件描述语言有ABEL、CUR和LFM等,它们支持逻辑方程。
真值表、状态机等逻辑表达方式,主要用于简单PLD的设计输入。
行为描述语言是目前常用的高层硬件描述语言,主要有VHDL和VerilogHDL两个IEEE标准。
其突出优点有:
语言与工艺的无关性,可以使设计人员在系统设计、逻辑验证阶段便确立方案的可行性;语言的公开可利用性,便于实现大规模系统的设计;具有很强的逻辑描述和仿真功能,而且输入效率高,在不同的设计输入库之间的转换非常方便,用不着对底层的电路和PLD结构的熟悉。
(3)波形输入方式
波形输入方式主要是用来建立和编辑波形设计文件,以及输入仿真向量和功能测试向量。
3、功能仿真
功能仿真在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延时信息,仅对初步的功能进行检测。
仿真前,要先利用波形编辑器和硬件描述语言等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。
如果发现错误,则返回设计输入中修改逻辑设计。
4、设计处理
设计处理是器件设计中的核心环节。
在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合优化和适配,最后产生编程用的编程文件。
(1)语法检查和设计规则检查
(2)逻辑优化和综合
(3)适配和分割
(4)布局和布线
5、时序仿真
时序仿真又称后仿真或延时仿真。
由于不同器件的内部延时不一样,不同的布局布线方案也给延时造成不同的影响,因此在设计处理以后,对系统和各模块进行时序仿真,分析其时序关系,估计设计的性能,以及检查和消除竞争冒险等是非常有必要的。
实际上这也是与实际器件工作情况基本相同的仿真。
6、器件编程测试
时序仿真完成后,软件就可产生供器件编程使用的数据文件。
对EPLD/CPLD来说,是产生熔丝图文件,即JED文件。
对于FPGA来说,是产生位流数据文件(BitstreamGeneration),然后将编程数据放到对应的具体可编程器件中去。
器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。
普通的EPLD/CPLD器件和一次性编程的FPGA需要专用的编程器完成器件的编程工作。
基于SRAM的FPGA可以由EPROM或其它存储体进行配置。
在线可编程的PLD器件不需要专门的编程器,只要一根编程下载电缆就可以了。
器件在编程完毕后,可以用编译时产生的文件对器件进行校验、加密等工作。
对于支持JTAG技术,具有边界扫描测试BST(Bandary-ScanTesting)能力和在线编程能力的器件来说,测试起来就更加方便。
四、现代数字系统的设计方法
传统的数字系统设计一般是采用“自下而上”方法进行,即由器件搭成电路板,由电路板搭成数字系统。
系统常用的“积木块”是固定功能的标准集成电路,如74/54系列(TTL)、4000/4500系列(CMOS)芯片和一些固定功能的大规模集成电路。
设计者根据需要选择合适的器件,由器件组成电路板,最后完成系统设计。
传统的数字系统设计只能对电路板进行设计,通过设计电路板来实现系统功能。
进入到20世纪90年代以后,EDA(电子设计自动化)技术的发展和普及给数字系统的设计带来了革命性的变化。
在器件方面,可编程逻辑器件飞速发展。
利用EDA工具,采用可编程逻辑器件,正在成为数字系统设计的主流。
采用可编程逻辑器件通过对器件内部的设计来实现系统功能,是一种基于芯片的设计方法。
设计者可以根据需要定义器件的内部逻辑和管脚,将电路板设计的大部分工作放在芯片的设计中进行,通过对芯片设计实现数字系统的逻辑功能。
灵活的内部功能块组合、管脚定义等,可大大减轻电路设计和电路板设计的工作量和难度,有效地增强设计的灵活性,提高工作效率。
同时采用可编程逻辑器件,设计人员在实验室可反复编程,修改错误,以期尽快开发产品,迅速占领市场。
基于芯片的设计方法可以减少芯片的数量,缩小系统体积,降低能源消耗,提高系统的性能和可靠性。
采用可编程逻辑器件芯片和EDA软件,在实验室里就可以完成数字系统的设计和生产。
可以实现无芯片EDA公司,专业从事IP模块生产。
也可以实现无生产线集成电路设计公司的运作。
可以说,当今的数字系统设计已经离不开可编程逻辑器件和EDA设计工具。
第二节VHDL语言概述
一、VHDL语言介绍
VHDL的全名是very-high-speedintegratedcircuithardwaredescriptionlanguage,中文译为超高速集成电路的硬件描述语言,是一种用形式化方法来描述数字电路和设计数字逻辑的语言,主要目的是用来编写设计文件并建立硬件电路(器件)的逻辑模型。
诞生与1982年。
1987年底VHDL被IEEE和美国国防部确认为标准硬件描述语言。
自IEEE发布了HDL标准版本后,各EDA公司相继推出了自己的VHDL实际环境,或宣布自己的程序可以和VHDL接口。
此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
1993年,IEEE对VHDL进行了修正,从更高的抽象层次和系统描述能力扩展VHDL的内容。
现在,VHDL和VERILOG作为IEEE的工业硬件描述语言,又得到了众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
二、语言特性、功能与特点
联性的语法和形式虽类似与一般程序语言,但是涵盖许多与硬件关联的语法构造。
其特有的层次性——由上而下的结构VHDL语言可描述一个数字电路的输入,输出以及相互之间的行为和功能。
而其硬件关式语法结构适合大型设计项目的团队合作。
在主要的系统结构,组件及相互间的连接方式决定以后,就能将工作分包下去,各自独立进行,例如使用主程序外的组件,函数以及程序内的块程序。
1、支持多种电路与多种设计方法
VHDL语言能够支持自顶向下和基于库的设计方法,支持组合逻辑电路,同步时序逻辑电路和异步时序逻辑电路等电路的设计,大多数EDA工具都支持VHDL语言。
2、支持硬件电路的层次化描述
VHDL语言具有支持多层次描述系统硬件功能的能力,可以从系统的行为功能(数学模型)直到门级电路逐层进行描述。
另外,高层次的行为描述可以与底层次的寄存器描述和结构描述混合使用。
3、能实现与工艺无关编程
采用VHDL语言设计硬件电路时,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺。
在工艺更新时无须原设计程序,只需改变相应的映射工具。
由此可见,修改电路和修改工艺相互之间不会产生影响。
4、易于共享和复用
作为IEEE标准的VHDL语言,语法严格,设计成果便于复用和交流。
一个大规模的数字系统设计不可能从门级电路开始逐步进行设计,而是一些模块电路的有机叠加。
这些模块电路可以预先设计或者使用以前设计中的存档模块。
这些模块电路可以采用VHDL语言进行描述且存放于库中,便于在以后设计中复用。
这样可以减小数字系统设计的工作量,缩短开发周期。
5、VHDL语言优点
1具有强大的功能,覆盖面广,描述能力强,方法灵活,可用于从门级、电路级直至系统级的描述、仿真和综合。
2有良好的可读性,便于文档管理,理解和交流。
3有很强的可移植性,可以在不同的设计环境和系统平台中使用。
4支持对大规模设计的分解和已有设计的再利用。
三、VHDL的基本结构
VHDL将所设计的任意复杂的电路系统均看成一个设计单元,可以用一个程序文件来表示。
一个完整的VHDL程序通常包含实体(entity)、构造体(architecture)、配置(configuration)、程序包(package)和库(library)5个部分。
下面就5个部分进行简单介绍。
1实体:
实体是声明其它实体或其它设计的接口,即定义本设计的输入\输出端口。
2构造体:
构造体是用来定义实体的实现,即电路的具体描述。
3配置:
配置是为实