基于FPGA的HDB3编译码的建模与实现 EDA辅助设计工具的介绍
模拟调试验证。使得使用FPGA器件,一般可在几天到几周内完成一个电子系统的设计和制作,可以缩短研制周期,达到快速上市和进一步降低成本要求。 基于上述的优点,本毕业设计采用FPGA芯片作为平台,这样可以把整个系统下载到一块芯片之中,实现了所谓的片上系统,从而大大缩小了体积,便于工程人员的管理和屏蔽外界干扰。
2.2 VHDL语言和QUARTUSⅡ
2.2.1 VHDL语言[2]
常用的硬件描述性语言有VHDL、Verilog和ABEL语言。VHDL语言起源于美国国防部的VHSIC,VHDL是一种高级描述语言,适用于行为级和RTL级的描述相对与Verilog语言和ABEL语言这些较低一级的适合描述门级电路的描述性语言而言,其具有以下的优点: ⒈设计方法灵活、支持广泛
VHDL语言可以支持自顶至下(Top-Down)和基于库(Library-Based)的设计方
法,而且还支持同步电路、异步电路、FPGA以及其他随机电路的设计。其范围之广是其它方法所不能比拟的。目前大多数EDA工具几乎都支持VHDL语言。这给VHDL语言进一步推广和应用创造了良好的环境。 ⒉系统硬件描述能力强
VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的框图直到门
级电路。另外,高层次的行为描述可以与低层次的RTL描述和结构描述混合使用。其他HDL语言如UDL/I、Verilog等对系统级的功能描述能力较弱。
⒊VHDL语言描述与工艺不发生关系
在用VHDL语言设计系统硬件时,没有嵌入工艺信息。采用VHDL语言的设
计,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺(如MOS, CMOS等)。这样,在工艺变更时,只要改变相应的映射工具就行了。由此可见,修改电路和改变工艺之间的相关性较小。
⒋VHDL语言标准、规范,易于共享和复用
由于VHDL语言已成为一种IEEE的工业标准,这样,设计成果便于复用和
交流,反过来也更进一步推动VHDL语言的推广及完善。
基于上述的特点,可知VHDL语言可读性好,又能被计算机识别。VHDL语言中设计实体、程序包、设计库,为设计人员重复利用已有的设计提供了诸多技术手段。可重复利用他人的IP(Intelligence Property)模块和软核(Soft Core)也是VHDL的另一特色许多设计不必每次都从头再来,只要在更高层次上把IP模块组合起来,就能达到事半功倍的效果。这样,设计人员自行开发的IP模块在集成电
4
基于FPGA的HDB3编译码的建模与实现 EDA辅助设计工具的介绍
路设计中占有重要的地位。因此本毕业设计采用VHDL语言设计一个完善的HDB3码编、译码器。
2.2.2 EDA工具QUARTUSⅡ[2.5]
QUARTUSⅡ软件是美国Altera公司为SOPC(System on a Programmable Chip,系统级可编程芯片) 提供最全面的设计平台。它具有比起其他的编译软件,具有以下的优点:
⒈开放的界面
QUARTUS II软件可与其它EDA厂家的设计输入、综合、验证工具相连接。设计人员可使用ALTERA或标准EDA设计输入工具建立电路设计,使用QUARTUSII编译器(Compiler)对ALTERA的器件进行编译,然后使用ALTERA或其他标准EDA验证工具进行验证。目前,QUARTUS II支持与Cadence、Exemplarlogic、Mentor Graphics、 Synopsys、Synplicity、Viewlogic等公司的EDA工具接口。
⒉与结构无关
QUARTUS II系统的核心——编译器(Compiler)支持ALTERA公司的FLEX10K,FLEX8000, FLEX6000, MAX9000, MAX7000, MAX5000和Classic等可编程逻辑器件系列,提供了业界,除了MAXPLUS II以外惟一真正与结构无关的可编程逻辑设计环境。QUARTUSⅡ的编译器还提供了强大的逻辑综合与优化功能,使设计人员能比较容易地将其设计集成到可编程逻辑器件中。 ⒊多平台
QUARTUS II软件可在多种PC机和工作站的操作系统中运行。 ⒋完全集成化
QUARTUS II的设计输入、处理、验证、器件编程等功能全部集成在统一的开发环境下,可以使用户进行动态调试,加快开发进程。 ⒌丰富的设计库
QUARTUS II提供丰富的库单元供设计者使用,其中包括74系列的全部器件和多种特殊的逻辑宏功能(Macro-Function)以及新型的参数——化兆功能(Mega-Function) 。
⒍接受高级描述语言
QUARTUS II接受多种硬件描述语言,包括VHDL、AHDL、C、C++等语言。 ⒎良好的人机界面
QUARTUSⅡ具有比MAXPLUSⅡ更加人性化的人机界面,方便工程人员的操作。基于上述的特点,本文采用QUARTUSⅡ软件对HDB3编、译码的仿真验证。
5
基于FPGA的HDB3编译码的建模与实现 HDB3码编码器的建模与实现
第三章 HDB3码编码器的建模与实现
3.1 HDB3码的编码规则
在现实的通信系统中,为了满足基带传输的要求,单极性脉冲序列必须经过
适当的基带编码,以保证传输码型中无直流分量,有一定的自检能力和适应不同信源的统计特性的能力。在基带传输中,常用的码型有AMI码、HDB3码、4B/3T码、CMI码、以及双相码等。其中,AMI码是将输入单极性波形的所有正脉冲变为适合于在信道传输的正负极性交替的脉冲,而HDB3码则是在AMI码基础上改进的一种双极性归零码,它除具有AMI码功率谱中无直流分量,可进行差错自检等优点外,还克服了AMI码当信息中出现连“0” 码时定时提取困难的缺点,同时HDB3码频谱能量主要集中在基波频率以下,占用频带较窄,因此被广泛用作PCM(Pulse Code Modulation,脉冲编码调制)线路传输码型,因此要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。将“0”码保持不变,把“1”码变为+1、-1交替的脉冲。如:
信息序列:10011010111100001 AMI码:+100-1+10-10+1-1+1-10000+1
HDB3码是一种AMI码的改进型,它的编码过程为:
①没有4个或4个连“0”串时,HDB3编码规律与AMI码相同,即“1”码变为“+1”、 “-1”交替脉冲。
②当代码序列中出现4个或4个以上连“0”串时,则将每4个连“0”小段即“0000”的第4个0变换成与前一非“0”符号(+1或-1)同极性的符号,用破坏符号V表示(即+1记为+V,-1记为-V)。
③为了使附加V符号后的序列不破坏“极性交替反转”造成的无直流特性,还必须保证相邻V符号也应极性交替。这一点,当相邻V符号之间有奇数个非0符号时,则是能得到保证,当有偶数个非0符号时,则就得不到保证,这时再将该小段的第一个0变换成+B或-B,B符号的极性与前一非0符号的极性相反,并让后面的非0符号从V符号开始再交替变换[2.4]。
3.2 基于VHDL的编码器的建模及实现
6
基于FPGA的HDB3编译码的建模与实现 HDB3码编码器的建模与实现
3.2.1 编码器的VHDL建模及难点分析
从编码规则来分析,HDB3码的编码器的设计的难点是在于如何判决是否应该添加符号“B”,因为这涉及到有现在事件的状态决定过去事件状态的问题。按照实时信号处理的理论,这是无法实现的。但是在实际的电路中,可以考虑用寄存器的方法,首先把信码寄存在寄存器里,同时设置一个计数器计算两个“V”之间“1”的个数,经过4个码元时间后,有一个判偶电路来给寄存器发送是否添加符号“B”的判决信号,从而实现添加符号“B”功能。
为了减少资源的消耗和电路的复杂度,在对信号进行HDB3码编码时,先依据HDB3码的编码规则进行添加破坏符号“V”然后进行添加符号“B”操作,最后才进行单极性信号变成双极性信号的转换。HDB3码的编码模型如图3.1所示。
图 3.1 HDB3码编码器模型
如图所示:整个HDB3码的编码器包括3个功能部分:添加破坏符号“V”、添加符号“B”和单极性码转变成双极性码,各部分之间采用同步时钟作用,并且带有一个异步的复位(清零)端口。
不过,信号处理的顺序不能像编码规则那样:首先把代码串变换成为AMI码,完成添加破坏符号“V”、添加符号“B”工作之后,其后的“+1”和“-1”的极性还要依据编码规则的规定变换。这样做需要大量的寄存器,同时电路结构也变得复杂。因此本设计在此处把信号处理的顺序变换一下:首先完成添加破坏符号“V”工作,接着执行添加符号“B”功能,最后实现单极性变双极性的信号输出。这样做的好处是输入进来的信号和添加破坏符号“V”、添加符号“B”功能电路中处理的信号都是单极性信号,且需要的寄存器的数目可以很少。
另外,如何准备识别电路中的“1”、“V”和“B”,这也是一个难点,因为“V”和“B”符号是人为标识的符号,但在电路中最终的表示形式还是逻辑电平“1”,同时QUARTUSⅡ软件也不能像HDB3码的编码规则那样把代码串变换成AMI码,这是因为QUARTUSⅡ软件不能处理带负号的信号,因此在软件中本设计还是利用双相码来表示。双相码的编码规则如下:对每个二进制代码分别利用两个不同相位的二进制代码去取代。例如: 信息序列: 110010 双相码: 101001011001
7
基于FPGA的HDB3编译码的建模与实现 HDB3码编码器的建模与实现
通过字节替代方法解决了识别“1”、“V”和“B”的问题。 3.2.2 基于VHDL编码器的实现 1. 添加破坏符号“V”的实现
添加破坏符号“V”模块的功能实际上就是对消息代码里的四个连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”状态寄存器。1表示遇到四个连0,0表示未遇到四个连0的状态
③在本程序中用“01”标识“1”。 ④在本程序中用“00”标识“0”。 ⑤在本程序中用“11”标识“V”。
图3.2 添加破坏符号“V”符号流程图
根据图3.2的思想,完成HDB3码编码的程序实现添加破坏符号“V”功能的程序,以下给出实现添加破坏符号“V”功能的关键代码,具体程序见附录一。
8
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库AS - 001基于FPGA的HDB3编译码的建模与实现 - 图文(2)在线全文阅读。
相关推荐: