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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

AS001基于FPGA的HDB3编译码的建模与实现.docx

1、AS001基于FPGA的HDB3编译码的建模与实现基于FPGA的HDB3编译码的建模与实现 吴英发(吉首大学物理科学与信息工程学院,湖南 吉首 416000)摘 要 本文以FPGA为硬件平台,基于EDA工具QUARTUS为软件平台上对HDB3编/译码进行实现。由于在EDA的软件平台QUARTUS上不能处理双极性的信号,因此对HDB3码的编/译码的实现分为:软件部分和硬件部分。软件部分是基于QUARTUS的平台上对输入的码元进行编码和译码,通过系统仿真,验证了HDB3码的编译码的正确性;硬件部分采用CD74HC4052双四选一的数模选择器实现单极性到双极性的转换;采用AD790和SE5539实现

2、双极性到单极性的转换。最后,通过仿真,验证了方案的正确性。关键词:HDB3;建模;VHDL;编/译码;QUARTUSThe Modeling and Realization of the HDB3 Encoding and Decoding Based on FPGAWu Yingfa(College of Physics Science and Information Engineering,Jishou University,Jishou,Hunan 416000)AbstractThe HDB3 encoding and decoding are realized based on ta

3、king FPGA as hardware platform and taking QUARTUS,a kind of EDA tool,as the software platform. Because QUARTUS can not deal with the bipolar of signal,the realization of HDB3s encoding/decoding function is divided into two parts: software and hardware part. In the software part: the encoding/decodin

4、g of HDB3 are realized based on QUARTUS, and the simulation result that the realization is correct. In the hardware part: the CD74HC4052 are used to realize unipolar /bipolar transformation, at the same time, the AD790 and SE5539 are used to realize bipolar/unipolar transformation. At last, the effi

5、ciency of the above method is proved by the simulation results.Key words: HDB3;Modeling;VHDL;Encoding/Decoding;QUARTUS目 录第一章 绪 论 1第二章 EDA辅助设计工具的介绍 32.1 FPGA的介绍 32.1.1 PLD的介绍 32.1.2 FPGA的系统介绍 32.2 VHDL语言和QUARTUS 42.2.1 VHDL语言 42.2.2 EDA工具QUARTUS 5第三章 HDB3码编码器的建模与实现 63.1 HDB3码的编码规则 63.2 基于VHDL的编码器的建模及

6、实现 63.2.1 编码器的VHDL建模及难点分析 73.2.2 基于VHDL编码器的实现 73.3编码中单/双极性转换的实现 113.3.1单/双极性转换的流程图 113.3.2单/双极性变换的VHDL实现 113.3.3单/双极性变换的硬件实现 113.4 HDB3码编码器的波形仿真及分析 113.5 小结 11第四章 HDB3码译码器的建模与实现 114.1 HDB3码的译码规则及建模 114.2 译码中双/单极性的实现 114.3 基于VHDL译码器的实现 114.3.1基于VHDL译码器的流程图 114.3.2 HDB3码译码器的程序设计 114.4 HDB3码译码器的波形仿真及分析

7、 114.5 小结 11第五章 结束语 11参考文献 11致谢 26附录一 11附录二 11第一章 绪 论数字基带信号的传输是数字通信系统的重要组成部分之一。特别是HDB3(High Density Bipolar-3 Coding,三阶高密度双极性码)码的使用,其不但保持AMI(Alternation mark Inversion,交替反转码)码的优点外,更使连0串的个数减到至多0个的优点,而且还克服了AMI码的关于可能出现长连0串而造成提取定时信号困难的缺点。基于上述的特点HDB3码在通信传输领域应用很广泛,因此其作为CCITT推荐使用的码型之一1。本毕业设计是采用EDA工具实现HDB3码

8、的仿真和校验,从而使系统的实现具有很大的灵活性。EDA(Electronics Design Automation,电子设计自动化)就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的编辑逻辑、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统2.4。 本毕业设计的主要工作是HDB3码的编译码的建模与实现,对于HDB3编译码模块,一般以硬件的方式来实现的

9、。但它具有产品更新慢、设计灵活性差、不可重配置及现场升级性能缺乏等缺点。因此拟采用可编程逻辑电路来实现。可编程逻辑电路是EDA的一个重要技术基础,主要包括FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)和CPLD(Complex Programmable Logic Devices,复杂可编程逻辑器件),它们具有丰富的可重配置逻辑资源,既包含有大量实现组合逻辑的资源;还包含有相当数量的触发器,因此采用EDA技术进行电子系统的设计有以下优点: 系统可现场编程,在线升级; 用软件的方式设计硬件; 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高; 用

10、软件方式设计的硬件系统的转换是由有关的开发软件自动完成,降低了系统设计的难度。对于HDB3编译码器的实现,本毕业设计采用硬件描述语言VHDL来实现。用VHDL语言设计分别设计一个完善的HDB3码编码器和译码器。本设计是从HDB3原理出发,采用“从顶到底(TOP-DOWN)”设计方法,以EDA工具QUARTUS5.1为软件平台,输入HDB3的代码并对其进行编译、综合和仿真,经过功能测试、验证,最终实现基于FPGA的HDB3码的编码和译码功能。本文对章节的安排如下:第二章对FPGA、VHDL(Very-High-Speed Integrated Circuit Hardware Descripti

11、on Language,甚高速硬件描述性语言)和QUARTUS等进行简介,并选定FPGA和QUARTUS作为系统的开发环境。第三章介绍HDB3码的编码原理,并基于FPGA对HDB3码编码部分进行建模及实现,通过波形仿真,校验编码模块的正确性。第四章介绍HDB3码的译码原理,并基于FPGA对HDB3码译码部分进行建模及实现,通过波形仿真,校验译码模块的正确性。第五章对全文进行总结。第二章 EDA辅助设计工具的介绍2.1 FPGA的介绍2.1.1 PLD的介绍2.4PLD(Programmable Logic Devices,可编程逻辑器件)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。它诞生

12、于20世纪70年代,在20世纪80年代以后,随着集成电路技术和计算机技术的发展而迅速发展。自问世以来,PLD经历了从PROM(Programmable Read-Only Memory,可编程序的只读存储器)、PLA(Programmable Logic Array,可编程序逻辑阵列)、PAL(Programmable Array Logic,可编程阵列逻辑)、GAL(Generic Array Logic,通用阵列逻辑)到FPGA、ispLSI(in system programmable Large Scale Integration,在系统可编程大规模集成电路)等高密度PLD的发展过程。

13、在此期间,PLD的集成度、速度不断提高,功能不断增强,结构趋于更合理,使用起来灵活方便。PLD的出现,打破了由中小规模通用型集成电路和大规模专用集成电路;垄断的局面。与中小型规模通用型集成电路相比,用PLD实现数字系统,有集成度高、速度快、功耗小、可靠性高等优点。与大规模专用集成电路相比,用PLD实现数字系统,有研制周期短、先期投资少、无风险、修改逻辑设计方便、小批量生产成本低等优势。最早的可编程逻辑器件出现在20世纪70年代初,主要是PROM和PAL。随后出现了PAL、GAL、EPLD(Erasable Programmable Logic Devices,可擦除可编程逻辑器件)和CPLD、

14、PFGA、ispLSI。2.1.2 FPGA的系统介绍FPGA是20世纪80年代中期,美国Altera公司推出一种现场可编程门阵列,其结构主要分为三部分:可编程逻辑单元,可编程输入输出单元和可编程连线部分。FPGA器件采用逻辑单元阵列结构和静态随机存取存储器工艺,设计灵活,集成度高,可利用计算机辅助设计,绘出实现用户逻辑原理图、编辑布尔方程或用硬件描述语言等方式设计输入;然后经一系列转换程序、自动布局布线、模拟仿真的过程;最后生成配置FPGA器件的数据文件,对FPGA器件初始化。这样实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的。概括来说,FPGA器

15、件具有下列优点:高密度、高效率、系列化、标准化、小型化、多功能、低功耗、低成本、设计灵活方便,可无限次反复编程,并可现场模拟调试验证。使得使用FPGA器件,一般可在几天到几周内完成一个电子系统的设计和制作,可以缩短研制周期,达到快速上市和进一步降低成本要求。基于上述的优点,本毕业设计采用FPGA芯片作为平台,这样可以把整个系统下载到一块芯片之中,实现了所谓的片上系统,从而大大缩小了体积,便于工程人员的管理和屏蔽外界干扰。2.2 VHDL语言和QUARTUS2.2.1 VHDL语言2常用的硬件描述性语言有VHDL、Verilog和ABEL语言。VHDL语言起源于美国国防部的VHSIC,VHDL是

16、一种高级描述语言,适用于行为级和RTL级的描述相对与Verilog语言和ABEL语言这些较低一级的适合描述门级电路的描述性语言而言,其具有以下的优点:设计方法灵活、支持广泛 VHDL语言可以支持自顶至下(Top-Down)和基于库(Library-Based)的设计方法,而且还支持同步电路、异步电路、FPGA以及其他随机电路的设计。其范围之广是其它方法所不能比拟的。目前大多数EDA工具几乎都支持VHDL语言。这给VHDL语言进一步推广和应用创造了良好的环境。系统硬件描述能力强 VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的框图直到门级电路。另外,高层次的行为描述可以与低层次的RTL

17、描述和结构描述混合使用。其他HDL语言如UDL/I、Verilog等对系统级的功能描述能力较弱。VHDL语言描述与工艺不发生关系 在用VHDL语言设计系统硬件时,没有嵌入工艺信息。采用VHDL语言的设计,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺(如MOS, CMOS等)。这样,在工艺变更时,只要改变相应的映射工具就行了。由此可见,修改电路和改变工艺之间的相关性较小。VHDL语言标准、规范,易于共享和复用 由于VHDL语言已成为一种IEEE的工业标准,这样,设计成果便于复用和交流,反过来也更进一步推动VHDL语言的推广及完善。基于上述的特点,可知VHDL语

18、言可读性好,又能被计算机识别。VHDL语言中设计实体、程序包、设计库,为设计人员重复利用已有的设计提供了诸多技术手段。可重复利用他人的IP(Intelligence Property)模块和软核(Soft Core)也是VHDL的另一特色许多设计不必每次都从头再来,只要在更高层次上把IP模块组合起来,就能达到事半功倍的效果。这样,设计人员自行开发的IP模块在集成电路设计中占有重要的地位。因此本毕业设计采用VHDL语言设计一个完善的HDB3码编、译码器。2.2.2 EDA工具QUARTUS2.5 QUARTUS软件是美国Altera公司为SOPC(System on a Programmable

19、 Chip,系统级可编程芯片) 提供最全面的设计平台。它具有比起其他的编译软件,具有以下的优点:开放的界面QUARTUS II软件可与其它EDA厂家的设计输入、综合、验证工具相连接。设计人员可使用ALTERA或标准EDA设计输入工具建立电路设计,使用QUARTUSII编译器(Compiler)对ALTERA的器件进行编译,然后使用ALTERA或其他标准EDA验证工具进行验证。目前,QUARTUS II支持与Cadence、Exemplarlogic、Mentor Graphics、 Synopsys、Synplicity、Viewlogic等公司的EDA工具接口。与结构无关QUARTUS II

20、系统的核心编译器(Compiler)支持ALTERA公司的FLEX10K,FLEX8000, FLEX6000, MAX9000, MAX7000, MAX5000和Classic等可编程逻辑器件系列,提供了业界,除了MAXPLUS II以外惟一真正与结构无关的可编程逻辑设计环境。QUARTUS的编译器还提供了强大的逻辑综合与优化功能,使设计人员能比较容易地将其设计集成到可编程逻辑器件中。 多平台QUARTUS II软件可在多种PC机和工作站的操作系统中运行。完全集成化QUARTUS II的设计输入、处理、验证、器件编程等功能全部集成在统一的开发环境下,可以使用户进行动态调试,加快开发进程。

21、丰富的设计库QUARTUS II提供丰富的库单元供设计者使用,其中包括74系列的全部器件和多种特殊的逻辑宏功能(Macro-Function)以及新型的参数化兆功能(Mega-Function) 。接受高级描述语言QUARTUS II接受多种硬件描述语言,包括VHDL、AHDL、C、C+等语言。良好的人机界面QUARTUS具有比MAXPLUS更加人性化的人机界面,方便工程人员的操作。基于上述的特点,本文采用QUARTUS软件对HDB3编、译码的仿真验证。第三章 HDB3码编码器的建模与实现3.1 HDB3码的编码规则 在现实的通信系统中,为了满足基带传输的要求,单极性脉冲序列必须经过适当的基带

22、编码,以保证传输码型中无直流分量,有一定的自检能力和适应不同信源的统计特性的能力。在基带传输中,常用的码型有AMI码、HDB3码、4B/3T码、CMI码、以及双相码等。其中,AMI码是将输入单极性波形的所有正脉冲变为适合于在信道传输的正负极性交替的脉冲,而HDB3码则是在AMI码基础上改进的一种双极性归零码,它除具有AMI码功率谱中无直流分量,可进行差错自检等优点外,还克服了AMI码当信息中出现连“0” 码时定时提取困难的缺点,同时HDB3码频谱能量主要集中在基波频率以下,占用频带较窄,因此被广泛用作PCM(Pulse Code Modulation,脉冲编码调制)线路传输码型,因此要了解HD

23、B3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。将“0”码保持不变,把“1”码变为+1、-1交替的脉冲。如:信息序列:10011010111100001AMI码:+100-1+10-10+1-1+1-10000+1HDB3码是一种AMI码的改进型,它的编码过程为:没有4个或4个连“0”串时,HDB3编码规律与AMI码相同,即“1”码变为“+1”、 “-1”交替脉冲。当代码序列中出现4个或4个以上连“0”串时,则将每4个连“0”小段即“0000”的第4个0变换成与前一非“0”符号(+1或-1)同极性的符号,用破坏符

24、号V表示(即+1记为+V,-1记为-V)。为了使附加V符号后的序列不破坏“极性交替反转”造成的无直流特性,还必须保证相邻V符号也应极性交替。这一点,当相邻V符号之间有奇数个非0符号时,则是能得到保证,当有偶数个非0符号时,则就得不到保证,这时再将该小段的第一个0变换成+B或-B,B符号的极性与前一非0符号的极性相反,并让后面的非0符号从V符号开始再交替变换2.4。3.2 基于VHDL的编码器的建模及实现3.2.1 编码器的VHDL建模及难点分析从编码规则来分析,HDB3码的编码器的设计的难点是在于如何判决是否应该添加符号“B”,因为这涉及到有现在事件的状态决定过去事件状态的问题。按照实时信号处

25、理的理论,这是无法实现的。但是在实际的电路中,可以考虑用寄存器的方法,首先把信码寄存在寄存器里,同时设置一个计数器计算两个“V”之间“1”的个数,经过4个码元时间后,有一个判偶电路来给寄存器发送是否添加符号“B”的判决信号,从而实现添加符号“B”功能。为了减少资源的消耗和电路的复杂度,在对信号进行HDB3码编码时,先依据HDB3码的编码规则进行添加破坏符号“V”然后进行添加符号“B”操作,最后才进行单极性信号变成双极性信号的转换。HDB3码的编码模型如图3.1所示。图 3.1 HDB3码编码器模型如图所示:整个HDB3码的编码器包括3个功能部分:添加破坏符号“V”、添加符号“B”和单极性码转变

26、成双极性码,各部分之间采用同步时钟作用,并且带有一个异步的复位(清零)端口。不过,信号处理的顺序不能像编码规则那样:首先把代码串变换成为AMI码,完成添加破坏符号“V”、添加符号“B”工作之后,其后的“+1”和“-1”的极性还要依据编码规则的规定变换。这样做需要大量的寄存器,同时电路结构也变得复杂。因此本设计在此处把信号处理的顺序变换一下:首先完成添加破坏符号“V”工作,接着执行添加符号“B”功能,最后实现单极性变双极性的信号输出。这样做的好处是输入进来的信号和添加破坏符号“V”、添加符号“B”功能电路中处理的信号都是单极性信号,且需要的寄存器的数目可以很少。另外,如何准备识别电路中的“1”、

27、“V”和“B”,这也是一个难点,因为“V”和“B”符号是人为标识的符号,但在电路中最终的表示形式还是逻辑电平“1”,同时QUARTUS软件也不能像HDB3码的编码规则那样把代码串变换成AMI码,这是因为QUARTUS软件不能处理带负号的信号,因此在软件中本设计还是利用双相码来表示。双相码的编码规则如下:对每个二进制代码分别利用两个不同相位的二进制代码去取代。例如:信息序列: 110010双相码: 101001011001通过字节替代方法解决了识别“1”、“V”和“B”的问题。3.2.2 基于VHDL编码器的实现1. 添加破坏符号“V”的实现 添加破坏符号“V”模块的功能实际上就是对消息代码里的

28、四个连0串的检测,即当出现四个连0串的时候,把第四个“0”变换成符号“V”(“V”可以是逻辑电平“1”),而在其他的情况下,则保持消息代码的原样输出,同时为了区别代码“1”、 “V”和“0”,在添加破坏符号“V”时,用“11”标识符号“V”,用“01”标识符号“1”,用“00”标识符号“0”。因此,添加破坏符号“V”的设计思想如下:首先判断输入的代码是什么,如果输入的符号是“0”码,则接着判断这是第几个“0”码,如果是第四个“0”码,则把这个“0”码变换成“V”码。在其他的情况下,让原码照常输出。程序流程图如图3.2所示:其中: COUNT0是作为连0的计数器。 COUNT0_S是四个连“0”

29、状态寄存器。1表示遇到四个连0,0表示未遇到四个连0的状态在本程序中用“01”标识“1”。在本程序中用“00”标识“0”。在本程序中用“11”标识“V”。图3.2 添加破坏符号“V”符号流程图根据图3.2的思想,完成HDB3码编码的程序实现添加破坏符号“V”功能的程序,以下给出实现添加破坏符号“V”功能的关键代码,具体程序见附录一。ADD_V: PROCESS(CLK,CLR) -添加破坏符号V程序 BEGIN IF(CLKEVENT AND CLK=1)THEN IF(CLR=1)THEN CODEOUTV=00; COUNT0CODEOUTV=01; -01表示1 COUNT0 IF(CO

30、UNT0=3)THEN COUNT0_S=1; CODEOUTV=11; COUNT0=0; END PROCESS ADD_V; S0(0)=CODEOUTV(0); S1(0)=CODEOUTV(1);此添加破坏符号“V”功能程序设计了一个计数器COUNT0,用来作为应添加破坏符号“V”符号的标志。例如在程序代码中当CODEIN=1表示输入的信号为“1”COUNT0不计数,代码输出为CODEOUTV=“01”,当CODEIN=0时表示输入的代码为“0”,此时判断COUNT0的状态,如果为“3”,则COUNT0_S=1,CODEOUTV=11,计“0”计数器COUNT0清0,即代码:COUN

31、T0_S=1; CODEOUTV=“11”;COUNT0=0;这都是在进程PROCESS中,通过条件控制语句CASE完成添加破坏符号“V”功能。假设输入某信息序列,根据设计思想,输入代码一添加破坏符号“V”后的关系如下:信息序列: 10000100001100011添加破坏符号V后:010*2.添加符号“B”的实现根据HDB3码的编码规则可知:添加破坏符号“V”模块的功能是为了保证附加“V”符号后的序列不破坏“极性交替反转”造成的无直流特性,即当相邻“V”符号之间有偶数个非0符号的时候,把后一小段的第一个“0”变换成一个非破坏符号“B”符号。如图3.3所示。其中: FIRSTV作为前面是否出现“11”即符号“V”的标志位,其中0表示前面没有出现V,1表示前面已经出现过符号V。 COUNT1作为记非0符号的奇偶数,其中0表示为偶数,1表示为奇数。 FIRST_1遇1状态寄存器,1表示前面遇到过1,0表示没有遇到过。 在本程序中用“10”来标识符号“B”。 在本程序中用“01”来标识符号“1”。 在本程序中用“00”来标识符号“0”。 在本程序中用“11”来标识符号“V”。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1