资源描述
目录引言11 绪论11.1可编程逻辑器件概述11.1.1 可编程逻辑器件的发展历程11.1.2 可编程逻辑器件的特点21.1.3 可编程逻辑器件的一般设计流程41.1.4 现代数字系统的设计方法61.2 VHDL语言概述71.2.1 VHDL语言介绍71.2.2语言特性、功能与特点71.2.3 TOP-DOWN的设计思想简介81.3 Quartus II的介绍91.3.1 Quartus II的产生与发展91.3.2 Quartus II功能概论101.3.3 Quartus II的应用102 HDB3码介绍212.1 数字基带信号212.2 NRZ,AMI,HDB3码之间的对应关系212.3 HDB3码的编/译码规则223 用VHDL语言设计HDB3编码器243.1 HDB3编码器实现的基本原理243.2 HDB3编码器的设计过程243.3 HDB3编码器仿真波形304 用VHDL语言设计HDB3译码器314.1 HDB3解码器实现的基本原理314.2 HDB3解码器的设计过程324.3 HDB3解码器仿真波形335总结355.1 系统设计思路小结355.2 毕设存在的问题及不足365.3 毕设后的感想36致谢37参考文献38附录:基于VHDL语言的HDB3码编/解码器设计程序39摘要现代通信在技术一般的数字通信系统中首先将消息变为数字基带信号,称为信源编码,经过调制后进行传输,在接收端先进行解调恢复为基带信号,再进行解码转换为消息。在实际的基带传输系统中,并不是所有电波均能在信道中传输,因此有基带信号的选择问题,因此对码型的设计和选择需要符合一定的原则。HDB3(High Density Binary3)码是AMI码的一种改进型。HDB3码保持了AMI码的优点,克服了AMI码在遇到连“0”长时难以提取定时信息的困难,因而获得广泛应用。CCITT已建议把HDB3码作为PCM终端设备一次群到三次群的接口码型。我本次毕业设计的主要内容就是基于VHDL语言的HDB3编/解码器的设计,它所要达到的要求就是能从软件方面来实现HDB3编/解码器的基本功能,并能协调整个设计,使之达到预想的要求。设计的核心部分是:在Quartus的软件平台上,用VHDL语言来完成HDB3编/解码器的各个模块的设计并将它们合为一个整体的系统。设计中所用到的知识主要是:对VHDL码型基本原理和特性的认识、对Quartus 软件的熟练操作、对VHDL(超高速集成电路硬件描述语言)的掌握和应用,这些知识都是进行电子设计的基本知识和能力,只有基础知识和能力扎实了,才能更好的进行更高层次的电子设计,所以这个设计也是对电子设计基本能力的很好的锻练。关键字:现代通信 HDB3码 模块 VHDL Quartus 软件 AbstractModern communication in general digital communication system in first will change the information into number 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 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. HDB3 ( High Density Binary 3 ) code is a kind of improvement of AMI code type. HDB3 code has maintained the advantage of AMI code, have surmounted AMI code in meet company the length of 0 is hard to draw the difficulty of timing information, thus get extensive application. CCITT had suggested that regard HDB3 code as PCM terminal equipment primary group to the interface pattern of sling-load of three crowd. So my major content of graduated design is designing based on the HDB3 volume / decoder of VHDL language , the requirement that it will reach is the basic skill that can realize HDB3 volume / decoder funcation in software can, and can coordinate entire design , make sure it reach the requirement that anticipated. The key part of my design is: In Quartus software platform on, complete the design of every modular of HDB3 volume / decoder with VHDL language ( modular include: Encoder and decoder) and will 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 ) grasp 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 ability. Keyword: Modern communication HDB3 code modular VHDL Quartu 40引言 现代通信借助于电和光来传输信息,数字终端产生的数字信息是以“1”和“0”2种代码(状态)位代表的随机序列,他可以用不同形式的电信号表示,从而构造不同形式的数字信号。在一般的数字通信系统中首先将消息变为数字基带信号,称为信源编码,经过调制后进行传输,在接收端先进行解调恢复为基带信号,再进行解码转换为消息。在实际的基带传输系统中,并不是所有电波均能在信道中传输,因此有基带信号的选择问题,因此对码型的设计和选择需要符合一定的原则。考虑到当数字信号进行长距离传输时要求线路传输码型的频谱不含直流分量,并且只有很少的低频分量和高频分量。其次,传输码型中应含有定时时钟信息,以利于收端定时时钟的提取,在基带传输系统中,定时信息是在接收端再生原始信息所必需的。再次,实际传输系统常希望在不中断通信的前提下,能监视误码,如果传输码型有一定的规律性,那么就可以根据这一规律性来检测传输质量,以便做到自动监测,因此,传输码型应具有一定的误码检测能力。当然,对传输码型的选择还需要编码和解码设备尽量简单等要求,但以上的几点是最主要的考虑因素。以上要求导致了HDB3码的出现并获广泛应用。HDB3码因具有无直流成分,低频成分少和连0个数最多不超过三个等明显的优点,对定时信号的恢复十分有利, CCITT已建议把HDB3码作为PCM终端设备一次群到三次群的接口码型。本设计就是用VHDL语言实现HDB3码的编/解码器功能。基于VHDL语言的HDB3码编/解码器设计1 绪论1.1可编程逻辑器件概述1.1.1 可编程逻辑器件的发展历程从20世纪60年代开始,数字集成电路经历了小规模集成电路(SSI-SmallScale Interation,几十到几百门),中规模集成电路(MSI-Medium ScaleIntegration,几百到几千门),大规模集成电路(LSI-Large Scale Integration,几千到几万门),超大规模集成电路(VLSI-Very Large Scale Integration,几百万门以上)等几个发展阶段。在此期间先后出现了各种不同类型的数字集成电路,从大的方面可以将它们分为三种类型。1.标准逻辑器件 即中小规模集成电路,如TTL工艺的54/74系列和CMOS工艺的CD4000系列的各种逻辑门,触发器,译码器,多路转换器,计数器和寄存器等逻辑器件就属于这一类。 标准器件的生产批量大,成本低,价格便宜。由于其功能完全确定,版图设计时可将精力投入到提高性能上,因此这种器件的工作速度一般都很快。它是传统数字系统设计中使用的主要器件,但集成度不高,用它设计的系统器件多,功耗大,而且印刷电路版走线复杂,焊点多,致使系统的可靠性降低。应为用户无法修改这类器件的功能,使得修改设计时比较麻烦,改动系统中的一个器件往往就需要重新设计印刷电路。 2.由软件配置的集成电路器件 20世纪70年代以后陆续推出了由软件配置的微处理器(CPU)和单片机等逻辑器件,它们较好的弥补了上述标准逻辑器件的缺陷。这类器件集成度高,逻辑功能可由软件自由配置,因而由它们构成的数字系统灵活性大大增强。但这类器件的工作速度比较底,不能直接用于速度要求特别严格的场合。另外,这类逻辑器件通常需要有若干标准逻辑器件搭成的外围电路才可以工作,所以硬件规模也较大。3.专用集成电路ASIC(Application Specific Intergrated Circuits)ASIC的出现在一定程度上克服了上述两种逻辑器件的某些缺点。ASIC是为了满足一种或几种特定功能而设计并制造的集成电路芯片,他的密度一般都很高,一片ASIC芯片就能取代一块有若干中小规模集成电路芯片搭成的印刷电路板,甚至一个完整的数字电路系统也能用一片ASIC芯片实现。因此,使用ASIC能大大减小系统的硬件规模,降低系统功耗,提高系统可靠性,保密性和工作速度。 ASIC按制造方法又可分为全定制(Full Custom)产品,半定制(Semi-custom)产品和可编程逻辑器件(PLD)。(1)全定制产品 全定制的ASIC芯片的各层掩膜都是按特定的电路功能专门制造的。设计人员从晶体管的版图尺寸,位置和互连线开始设计,以求达到芯片面积利用率高,速度快,功耗低的最优性能。要经过电路设计,逻辑模拟,版图设计和集成电路的各道生产工序才能制造出符合要求的专用集成电路芯片。它的设计制作成本高,周期长,还带有较大的风险性,一旦设计失误就会浪费大量自己与设计时间,因此全定制的专用集成电路只在特大批量生产的情况下才适用。 (2) 半定制产品 半定制产品是一种约束性设计方式。约束的主要目的是简化设计,缩短设计周期和提高芯片成品率。半定制ASIC芯片上的单元电路是由器件生产厂家预先作好的,只剩下金属连接层的掩摸有待按用户的具体要求进行设计与制造。母片通用性较强,可以大批量生产,因而成本较低。设计半定制ASIC芯片时,用户根据设计要求及所选母片的结构设计出连线版图,在交器件生产厂家布金属连接线。最常见的半定制ASIC有门阵列,门海和标准单元等。半定制ASIC与全定制ASIC相比,当生产量不是很大时,它的设计和生产周期较短,成本低,风险也小。 (3) 可编程逻辑器件 以上两种ASIC的设计和制造都离不开器件生产厂家,用户主动性较差。随着微电子技术的发展,设计师们更愿意自己设计专用集成电路芯片,并尽可能缩短设计周期,最好是在实验室里就可以设计出合适的ASIC芯片,并且立即投入实际应用之中,在使用中也能比较方便的对设计进行修改。可编程逻辑器件就是为了满足这一需求应运而生的。 PLD芯片上的电路和金属引线都是事先由器件生产厂家作好的,但其逻辑功能在出厂时并没有确定,可由用户根据需要借助于PLD开发工具通过对其“编程”的办法来确定。因此设计师们不通过器件生产厂家就能自己设计出符合要求的各种ASIC芯片。PLD器件兼有逻辑器件速度快、微处理器灵活性好和定制与半定制ASIC集成度高的优点,且大都可多次重复编程,为设计和开发带来很大方便,是实现新型数字系统的理想器件。1.1.2 可编程逻辑器件的特点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进行系统设计能节约成本。1.1.3 可编程逻辑器件的一般设计流程可编程逻辑器件的设计过程是利用EDA开发软件和编程工具对器件进行开发的过程。可编程逻辑器件的一般设计流程如图1-1所示,包括设计准备,设计输入,功能仿真,设计处理,时序仿真和器件编程及测试等七个步骤。图1-1 可编程逻辑器件的一般设计流程1设计准备在系统设计之前,首先要进行的是方案论证,系统设计和器件选择等准备工作。设计人员需要根据任务要求,如系统的功能和复杂度,对工作速度和器件本身的资源、成本及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。一般采用自顶向下的设计方法。2设计输入设计输入是设计人员将所设计的系统或电路以开发软件要求的某种形式表示出来,并送入计算机的过程。设计输入通常有以下几种形式: (1)原理图输入方式(2)HDL(硬件描述语言)输入方式(3)波形输入方式1)原理图输入方式原理图输入方式是一种最直接的设计描述方式,要设计什么,就从软件系统提供的元件库中调出来,画出原理图。这种方式要求设计人员有丰富的电路知识及对PLD的结构比较熟悉。其主要优点是容易实现仿真,便于信号的观察和电路的调整;缺点是效率低,特别是产品有所改动,需要选用另外一个公司的PLD器件时,就需要重新输入原理图,而采用硬件描述语言输入方式就不存在这个问题。 2)HDL(硬件描述语言)输入方式硬件描述语言是用文本方式描述设计,它分为普通硬件描述语言和行为描述语言。普通硬件描述语言有ABEL、CUR和LFM等,它们支持逻辑方程。真值表、状态机等逻辑表达方式,主要用于简单PLD的设计输入。行为描述语言是目前常用的高层硬件描述语言,主要有VHDL和 Verilog HDL两个IEEE标准。其突出优点有:语言与工艺的无关性,可以使设计人员在系统设计、逻辑验证阶段便确立方案的可行性;语言的公开可利用性,便于实现大规模系统的设计;具有很强的逻辑描述和仿真功能,而且输入效率高,在不同的设计输入库之间的转换非常方便,用不着对底层的电路和PLD结构的熟悉。 3)波形输入方式波形输入方式主要是用来建立和编辑波形设计文件,以及输入仿真向量和功能测试向量。3功能仿真功能仿真在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延时信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和硬件描述语言等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。如果发现错误,则返回设计输入中修改逻辑设计。4设计处理 设计处理是器件设计中的核心环节。在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合优化和适配,最后产生编程用的编程文件。 (1)语法检查和设计规则检查(2)逻辑优化和综合(3)适配和分割(4)布局和布线5时序仿真 时序仿真又称后仿真或延时仿真。由于不同器件的内部延时不一样,不同的布局布线方案也给延时造成不同的影响,因此在设计处理以后,对系统和各模块进行时序仿真,分析其时序关系,估计设计的性能,以及检查和消除竞争冒险等是非常有必要的。实际上这也是与实际器件工作情况基本相同的仿真。6器件编程测试时序仿真完成后,软件就可产生供器件编程使用的数据文件。对EPLDCPLD来说,是产生熔丝图文件,即 JED文件。对于FPGA来说,是产生位流数据文件(Bitstream Generation),然后将编程数据放到对应的具体可编程器件中去。 器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。普通的EPLDCPLD器件和一次性编程的FPGA需要专用的编程器完成器件的编程工作。基于SRAM的FPGA可以由EPROM或其它存储体进行配置。在线可编程的PLD器件不需要专门的编程器,只要一根编程下载电缆就可以了。器件在编程完毕后,可以用编译时产生的文件对器件进行校验、加密等工作。对于支持JTAG技术,具有边界扫描测试BST(Bandary-Scan Testing)能力和在线编程能力的器件来说,测试起来就更加方便。1.1.4 现代数字系统的设计方法传统的数字系统设计一般是采用“自下而上”方法进行,即由器件搭成电路板,由电路板搭成数字系统。系统常用的“积木块”是固定功能的标准集成电路,如 74/54系列(TTL)、4000/4500系列(CMOS)芯片和一些固定功能的大规模集成电路。设计者根据需要选择合适的器件,由器件组成电路板,最后完成系统设计。传统的数字系统设计只能对电路板进行设计,通过设计电路板来实现系统功能。 进入到20世纪90年代以后, EDA(电子设计自动化)技术的发展和普及给数字系统的设计带来了革命性的变化。在器件方面,可编程逻辑器件飞速发展。利用EDA工具,采用可编程逻辑器件,正在成为数字系统设计的主流。采用可编程逻辑器件通过对器件内部的设计来实现系统功能,是一种基于芯片的设计方法。设计者可以根据需要定义器件的内部逻辑和管脚,将电路板设计的大部分工作放在芯片的设计中进行,通过对芯片设计实现数字系统的逻辑功能。灵活的内部功能块组合、管脚定义等,可大大减轻电路设计和电路板设计的工作量和难度,有效地增强设计的灵活性,提高工作效率。同时采用可编程逻辑器件,设计人员在实验室可反复编程,修改错误,以期尽快开发产品,迅速占领市场。基于芯片的设计方法可以减少芯片的数量,缩小系统体积,降低能源消耗,提高系统的性能和可靠性。 采用可编程逻辑器件芯片和EDA软件,在实验室里就可以完成数字系统的设计和生产。可以实现无芯片EDA公司,专业从事IP模块生产。也可以实现无生产线集成电路设计公司的运作。可以说,当今的数字系统设计已经离不开可编程逻辑器件和EDA设计工具。 1.2 VHDL语言概述1.2.1 VHDL语言介绍VHDL的全名是very-high-speed integrated circuit hardware description language,诞生与1982年。1987年底VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE发布了HDL标准版本后,各EDA公司相继推出了自己的VHDL实际环境,或宣布自己的程序可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修正,从更高的抽象层次和系统描述能力扩展VHDL的内容。现在,VHDL和VERILOG作为IEEE的工业硬件描述语言,又得到了众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。1.2.2语言特性、功能与特点联性的语法和形式虽类似与一般程序语言,但是涵盖许多与硬件关联的语法构造。其特有的层次性由上而下的结构VHDL语言可描述一个数字电路的输入,输出以及相互之间的行为和功能。而其硬件关式语法结构适合大型设计项目的团队合作。在主要的系统结构,组件及相互间的连接方式决定以后,就能将工作分包下去,各自独立进行,例如使用主程序外的组件,函数以及程序内的块程序。1.支持多种电路与多种设计方法VHDL语言能够支持自顶向下和基于库的设计方法,支持组合逻辑电路,同步时序逻辑电路和异步时序逻辑电路等电路的设计,大多数EDA工具都支持VHDL语言。2.支持硬件电路的层次化描述VHDL语言具有支持多层次描述系统硬件功能的能力,可以从系统的行为功能(数学模型)直到门级电路逐层进行描述。另外,高层次的行为描述可以与底层次的寄存器描述和结构描述混合使用。3.能实现与工艺无关编程采用VHDL语言设计硬件电路时,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺。在工艺更新时无须原设计程序,只需改变相应的映射工具。由此可见,修改电路和修改工艺相互之间不会产生影响。4.易于共享和复用作为IEEE标准的VHDL语言,语法严格,设计成果便于复用和交流。一个大规模的数字系统设计不可能从门级电路开始逐步进行设计,而是一些模块电路的有机叠加。这些模块电路可以预先设计或者使用以前设计中的存档模块。这些模块电路可以采用VHDL语言进行描述且存放于库中,便于在以后设计中复用。这样可以减小数字系统设计的工作量,缩短开发周期。1.2.3 TOP-DOWN的设计思想简介自上而下的设计方法,就是从系统总体要求出发,自上而下地逐步将设计美容细化,最后完成系统硬件的整体设计,其从总体行为设计开始到最终逻辑综合,形成网络表为止。在利用HDL的硬件设计方法中,设计者将自上而下分为三个层次对系统硬件进行设计。 (1)第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数字模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计存在的问题,并不真正考虑其实际的操作和算法用什么方法来实现。当行为描述程序仿真通过之后,说明模型是正确的,在此基础上再改写该程序,使其语句表达式易于用逻辑元件来实现,这是第二层所要做的工作。 (2)第二层次是RLT方式描述。这一层次称为寄存器传输描述,有称数据流描述。如前所述,用行为描述的系统结构的程序,要想得到硬件的实现,必须将行为方式描述的VHDL语言程序改写为RLT方式描述的VHDL语言程序。也就是说,采用RLT描述,才能导出系统的逻辑表达式,才能进行逻辑综合。在完成编写RLT方式的描述程序以后,再用仿真工具进行仿真,如果通过这一步仿真,就可以利用逻辑综合工具进行综合。(3)第三层次是逻辑综合。逻辑综合这一阶段是利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件。此时,如果需要,可以将逻辑综合结果,以逻辑原理图方式输出。此后对逻辑综合结果在门电路级上再进行仿真,并检查定时关系。如果一切正常,那么,系统的硬件设计就基本有逻辑综合工具产生门级网络表后,在最终完成硬件设计时, 还可以有两种选择,第一种是由自动布线程序将网络表转换成相应的ASIC芯片的制造工艺,做出ASIC芯片。第二种是将网 络表转换成FPGA的变成码点,利用FPGA完成硬件电路设计。 规格设计行为级描述RLT及描述逻辑综合门级仿真、定时检查 输出门级网表图1-2自上而下系统硬件的过程1.3 Quartus II的介绍1.3.1 Quartus II的产生与发展Quartus 是Altera公司提供的可编程逻辑器件的集成开发软件,是该公司前一代可编程逻辑器件的集成开发软件MAX+plus 的更新换代产品。Quartus 集成开发软件支持可编程逻辑器件开发的整个过程,它提供一种与器件结构无关的设计环境,使设计者能方便地进行设计输入、设计处理和器件编程。Quartus 集成开发软件适合多种平台的工作环境,其中包括PC机的Microsoft Windows XP。它支持更多种类的可编程逻辑器件的开发,同时也提供在片可编程系统(System on a Programmable Chip,SOPC)设计的综合性环境和基本设计工具。另外,Quartus 集成开发软件也可以利用第三方软件的结果,并支持第三方软件的工作。为加快应用系统的开发,Quartus 集成开发软件提供更多的知识产权模块(Intellectual Property,IP)。知识产权模块(IP)是一些预先设计好的电路功能模块,在设计中使用这些模块不仅可以加快设计进程,而且还可以提高系统性能。Quartus 集成开发软件的核心是模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis & Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)以及EDA网表文件生成器(EDA Netlist Writer)等。可编程逻辑器件开发的所有过程为:设计输入、综合、布局和布线、验证和仿真以及可编程逻辑器件的编程或配置。Quartus 集成开发软件允许用户在开发过程中使用Quartus 图形用户界面、EDA工具界面和命令行界面。用户可以在整个开发过程中使用这些界面中的任意一个,也可以在开发过程中的不同步骤使用不同的界面。1.3.2 Quartus II功能概论作为一种电子设计自动化(EDA)的工具,Quartus 可编程逻辑器件的集成开发软件支持可编程逻辑器件开发的全过程。这个过程包括以下步骤:创建工程,工程用来组织整个可编程逻辑器件开发的过程;设计输入,本章介绍利用硬件描述语言通过文本编辑的方法完成电路设计;设计编译,把设计输入转换为支持可编程逻辑器件编程的文件格式;设计仿真,该步骤用来检查设计是否满足逻辑要求;器件编程,使得可编程逻辑具有所要求的逻辑功能。1.3.3 Quartus II的应用(1)创建工程(Project)Quartus 集成开发软件对设计过程的管理采用工程方式。工程(Project)保存着程序编辑的信息和程序调试的环境等内容。在开始编写程序之前首先应该建立一个工程。新建一个工程之前通常还需要建立一个文件夹,后面产生的工程文件以及源程序文件等都将存储在这个文件夹之中。这个文件夹通常被EDA软件默认为工作库(Work Library),不同的工程最好放在不同的文件夹中,同一工程的所有文件都必须放在同一文件夹中。在图2.4所示的Quartus 集成开发软件的工作窗口,利用菜单“File New Project Wizard”创建工程向导可以帮助用户创建一个新的工程。创建工程时首先出现新工程向导介绍,如图1-3所示。图1-3 新工程向导介绍新工程向导帮助用户指定工程名和工程文件被存储的目录,指定顶层文件的名称,指定工程中需要用到的设计文件、其它可以借用的源文件、用户库,指定具体使用的可编程逻辑器件的系列和型号。在图1-3中单击“Next”按钮可以打开指定工程文件被存储的位置,指定顶层文件名,指定工程名称对话框,对话框如图1-4所示。在图1-4所示的第一个文本输入行,文件夹对话框,输入包含完全路径的工程文件将被存储的文件夹名称,或者使用浏览按钮“.”找出这个文件夹。在第二个文本行,顶层文件名称对话框,应该输入顶层文件的名称,这个对话框后面的浏览按钮“.”用于找出已经存在,这里还将使用的顶层文件。在第三个文本行,工程文件名称对话框,应该输入工程文件的名称,这个对话框后面的浏览按钮“.”用于找出已经存在,这里还将使用的工程文件。建议文件夹的名称、顶层文件的名称以及工程文件的名称选择同样的名称,以免产生不必要的麻烦。图1-4 新工程目录和文件名称对话框初学者可以利用下面简便的方法完成新工程目录和文件名称对话框内容的输入。首先单击第一个文本行,文件夹对话框,后面浏览按钮“.”找到已经为工程建立的文件夹并将其打开。这时的文件夹是一个空的文件夹,再次单击“打开”按钮将获得如图1-4所示的状态,即完成新工程目录和文件名称对话框内容的输入。一直单击“Next”按钮将显示如图1-5所示。单击“Finish”按钮完成工程的创建。图1-5新工程设置框图随着工程的建立,Quartus 集成开发软件的工作窗口也发生变化,如图1-6所示。右上方的工程导航窗口(Project Navigator)中出现工程标志。工程导航窗口具有三个可以互相切换的标签:Hierarchy、Files和Design Units。Hierarchy标签提供工程使用的可编程逻辑芯片逻辑单元、寄存器以及存储器资源的使用信息。图1-6 Quartus 集成开发软件的工作窗口选择菜单“File Save Project”可以存储当前的工程,该工程应该被存储在图1-6所示的目录对话框中输入的工程文件被存储的目录。选择菜单“File Close Project”将关闭当前的工程。再次打开一个存在的工程可以通过选择菜单“File Open Project.”来实现。选择这个菜单使得打开工程的对话框出现,如图1-6所示,在下拉列表框“查找范围(I)”中选择将要打开的工程被存储的文件夹名,列表框中将出现该文件夹中的所有工程,选择将要打开的工程,单击“打开(O)”按钮即可打开一个存在的工程。(2)设计的输入在Quartus 集成开发软件的工作窗口使用菜单“File New.”可以打开如图1-7所示的新建文件选择窗口。 图1-7 新建设计文件选择窗口新建文件选择窗口的“Device Design Files”标签显示了5种设计输入方法。“Block Diagram/Schematic File”为图形输入方式,它利用电路结构图和原理图来输入设计信息。“EDIF File”支持EDIF网表编辑器产生的网表文件的输入。“AHDL File”、“Verilog HDL File”和“VHDL File”都是文本输入方法,它们支持不同的硬件描述语言。原理图输入方法是一种类似于传统电子设计中绘制电路图的输入方式。原理图由逻辑器件和连线构成,逻辑器件可以是软件库中的功能模块,也可以是用户生成的功能模块。原理图输入方法的缺点是设计者必须面对硬件模块的选用,这明显地偏离了电子设计自动化本质的涵义。硬件描述语言具有行为描述的特点,同时改变设计比采用电路图描述更加方便,本节将介绍利用“VHDL File”输入设计信息。完成选择以后,单击“OK”按钮将打开一个文本编辑窗口,如图1-8所示。 图1-8文本编辑窗口文本编辑窗口输入上述程序之后,利用菜单“File Save As.”可以完成程序的第一次存储。注意,程序必须被存储在文件夹JTD之内,文件名也为JTD,扩展名采用vhd。如果对VHDL程序进行了修改,再次存储文件则可以利用菜单“File Save”来实现。接着要做的是把程序JTD.vhd加入工程,这可以利用菜单“Project Add Current File to Project”完成。程序JTD.vhd加入工程之后,在工程导航窗口的Files标签中可以看到JTD.vhd被加入到“Device Design Files”文件夹之中。(3)设计的编译使用硬件描述语言这样的抽象工具进行系统设计可以使设计者集中精力于系统的功能的实现,而不必关心具体的电路结构。要把利用硬件描述语言完成的设计转换成可以对可编程逻辑器件进行编程的文件必须进行编译,这个过程也被称作为综合。它类似于用高级语言编程,然后再用编译器将高级语言程序转换成机器代码的过程。尽管从表面上看,硬件描述语言和其它高级语言的编译过程都是一种描述方法的转换过程,但是它们之间还是具有许多本质性的区别。高级语言编译产生的机器代码对应于某种特定的CPU,脱离了特定的硬件环境,机器代码将失去意义。机器代码不代表硬件结构,更不能改变硬件结构。编译的过程不需要与硬件相关的器件库和工艺库的参与,基本属于一种一一对应的“翻译”过程。硬件描述语言编译将产生描述电路结构的网表文件,网表文件不依赖于任何特定硬件结构,可以轻易地被移植到任意通用硬件环境中,例如各种CPLD或者FPGA芯片。另外,在把硬件描述语言表达的电路功能转换成表达电路具体结构的网表文件的过程中,它不是机械的一一对应的“翻译”过程,还必须根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的形成。Quartus 集成开发软件的编译器包括多个独立的模块,各个模块可以单独运行,也可以启动全编译过程。在Quartus 集成开发软件工作窗口中,工程的编译即可以通过“Tools”菜单进行,也可以通过“Processing” 菜单进行。使用菜单“Tools Compiler Tool ”可以打开编译器窗口,如图1-9所示,编译器窗口显示出了编译器的所有模块。按每个模块中的按钮可以逐步完成编译过程,这时进程表将显示工作进度,工作完成之后将显示出花费的时间和是否出现错误。每一步完成以后都可以通过按右下角“Report”按钮打开编译报告。按左下角“Start”按钮可以启动全编译过程。参考下图P96F251标出按钮说明图1-9 Quartus 集成开发软件的编译器窗口使用“Processing”菜单也包括单独执行每个模块逐步完成编译过程和启动全编译过程。使用菜单“Processing Start ”可以单独执行每个模块逐步完成编译过程,这时也应该遵循表2.3列出的执行顺序。使用菜单“Processing Start Compilation”可以启动全编译过程。图1-10 Quartus 集成开发软件的工作窗口启动全编译过程之后,如图1-10所示Quartus 集成开发软件工作窗口左边中间的状态窗口将显示编译的进度,下面的信息窗口在编译的过程中不断显示编译信息。编译过程结束以后,窗口将显示编译是否成功,是否有错误信息,是否有警告信息。如果有错误,编译将不会成功;对于初学者,警告信息可以不去关注,它对后面的仿真以及器件的编程影响不大。(4)设计的功能仿真完成了设计的输入和编译,还需要利用仿真工具对设计进行仿真,因为编译过程只检查了设计是否具有规则错误和所选择器件的资源是否满足设计要求,并没有检查设计要求的功能是否满足。仿真的过程就是让计算机根据一定的算法和一定的仿真库对设计进行模拟,以验证设计和排除错误。Quartus 集成开发软件提供系统功能仿真工具和时序仿真工具。利用功能仿真工具,设计者能对设计进行全面测试,保证设计在所有可能的情况下都具有正确的响应;利用时序仿真工具,设计者可以测试所选用的器件是否满足系统工作速度的要求。本节只涉及功能仿真。1)创建仿真波形文件在进行系统功能仿真之前,需要创建仿真波形文件,也叫矢量波形文件(.vwf),该文件以波形图的形式描述系统在仿真输入信号的作用下产生的系统输出仿真信号。在Quartus 集成开发软件的工作窗口使用菜单“File New.”可以打开如图1-11所示的新建文件选择窗口。图1-11 新建设计文件选择窗口在新建文件选择窗口中选择“Other Files”标签,再选择“Vector Waveform File”,然后单击“OK”按钮将打开波形编辑器窗口。 在Quartus 集成开发软件的工作窗口使用菜单“File Save As.”可以打开“保存为”对话框。这个对话框自动给出文件存储的文件夹、文件名和文件类型,只要单击“保存(S)”按钮就完成矢量波形文件的保存,这时的波形编辑器窗口如图1-12所示。需要注意的是在“保存为”对话框中要选中“Add file to current project”复选框,使得这个文件加入到当前的工程之中。图1-12 波形编辑器窗口图1-12所示波形编辑器的内容目前还是空的,在进行系统功能仿真之前需要加入系统的输入节点和希望检查的输出节点。在图1-12所示的波形编辑器窗口“Name”列的空白处单击鼠标右键,在弹出的菜单中选择“Insert Node or Bus”可以打开“Insert Node or Bus”对话框,在这个对话框中单击“Node Finder”按钮可以打开“Node Finder”窗口,如图1-13所示。图1-13加入接点对话框图1-13中下拉菜单“Filter”现在为“Pins:all”,单击“List”按钮可以在左侧“Nodes Found”栏列出所有的输入节点和输出节点,选择希望观察的节点,使用“”按钮可以将该节点送入右侧的“Selected Nodes”栏。如果希望观察所有的节点,可以使用“”按钮。下面的两个反方向按钮可以用来取消已经选择的观察节点。利用下拉菜单“Filter”还可以选择其它类型的节点,例如选择“Registers:pre-synthesis”,单击“List”按钮可以列出信号“aqi”。采用同样的方法,也可以使这样的中间信号被观察,使得系统的功能验证和错误排除更加方便。完成希望观察节点的选择,在图1-13中单击“OK”按钮,“Insert Node or Bus”对话框再次出现,单击对话框的“OK”按钮,波形编辑器出现希望观察的节点,如图2.21所示。这时输入信号没有加入,中间信号和输出信号的内容为不定。图1-14 波形编辑器窗口在Quartus 集成开发软件的工作窗口使用菜单“View Utility Windows Node Finder”也可以在波形编辑器窗口加入希望观察的节点。这时在“Node Finder”列出的节点中选择要加入波形编辑器的节点,然后按住鼠标左键,拖动到波形编辑器的“Name”列的空白处放开即可。如果系统的输入信号为周期性的时钟信号,可以在它的名称左边的标志上点击鼠标右键,从弹出的菜单中选择“Value Clock.”打开时钟信号设置对话框,如图1-15所示。图1-15 时钟信号设置对话框图1-15中时钟周期设置为10ns,如果仅用来检查系统输出逻辑是否满足要求,这没有什么影响。当然你也可以设置周期为1s,不过这时需要更改仿真结束时间,默认的仿真结束时间为1us。在Quartus 集成开发软件的工作窗口选择菜单“Edit End Time”可以打开结束时间对话框,利用这个对话框可以改变仿真结束时间。需要注意,有时当仿真结束时间太长可能使得开发软件的工作不正常。2)设计的功能仿真Quartus 集成开发软件提供系统功能仿真工具和时序仿真工具,因此在仿真之前需要对仿真器进行设置。在Quartus 集成开发软件的工作窗口使用菜单“Assignments Settings.”可以打开“Settings”对话框,在对话框的“Category”列表中选择“Simulator”选项就可以打开仿真器设置对话框,如图1-16所示。图1-16 仿真器设置对话框在仿真器设置对话框中,“Simulation”下拉菜单用来选择仿真类型,由于要进行设计的功能仿真,所以选择“Functional”。“Simulation”文本框用来输入包括目录的仿真波形文件。对话框中的其它选项采用默认值。完成仿真器的设置以后,在Quartus 集成开发软件的工作窗口使用菜单“Processing Start Simulation”就可以启动仿真器。上述的仿真器设置和启动也可以在Quartus 集成开发软件的工作窗口使用“Tools”菜单实现。选择“Tools Simulator Tool”可以打开“Simulator Tool”对话框,在这个对话框既可以实现仿真器的设置,也可以启动仿真器。 在仿真过程中,仿真器报告窗口自动打开。设计仿真结束之后,各种仿真报告可以通过仿真器报告窗口左边的文件夹来打开,图1-17显示了文件夹中的仿真波形“Simulation Waveforms”。图1-17 仿真报告窗口仿真波形就是利用图形来描述电路输入和输出之间的关系,即数字电路中的描述方法中的时序图。利用仿真波形可以直观地检查设计输出是否满足要求。如果不满足要求,根据出现的现象,分析出具体原因再予以克服。仿真报告窗口中的信号aqi的数据类型为整数,这里使用二进制格式进行显示。数据显示格式具有多种,用鼠标右键点击在图1-17显示的仿真波形“Simulation Waveforms”最左边的对应信号aqi的标志可以打开快捷菜单,选择其中的“Properties”可以打开如图1-18所示的对话框。利用对话框的“Radix”下拉菜单,从菜单中可以更改显示数据的数制。图1-18 观察节点特性对话框当输出满足要求,这时就可以向可编程逻辑器件下载,即对器件进行编程。器件的编程需要硬件电路的相关知识。2 HDB3码介绍2.1 数字基带信号数字基带信号的传输是数字通信系统的重要组成部分之一。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。为使基带信号能适合在基带信道中传输,通常要经过基带信号变化,这种变化过程事实上就是编码过程。于是,出现了各种各样常用码型。不同码型有不同的特点和不同的用途。作为传输用的基带信号归纳起来有如下要求:1 希望将原始信息符号编制成适合与传输用的码型;2 对所选码型的电波形,希望它适宜在信道中传输。可进行基带传输的码型较多。1、 AMI码AMI码称为传号交替反转码。其编码规则为代码中的0仍为传输码0,而把代码中1交替地变化为传输码的+1-1+1-1,、。 举例如下。消息代码: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码的特点:(1) 无直流成分且低频成分很小,因而在信道传输中不易造成信号失真。(2) 编码电路简单
展开阅读全文