HDB3码具有无直流成分、低频成分少和接连0最多不超越3个等显着的长处,对信号的康复非常有利,而成为CCITT协会引荐运用的基带传输码型之一。因而,针对HDB3编码器的优化规划具有重要的含义。在本文中,运用VHDL硬件描绘言语规划了不同结构的HDB3编码器,在Quart usⅡ中对规划的HDB3码的功用、特性进行了剖析。并在EP2C5T144C6中对规划进行了完成。试验成果标明,所规划的HDB3码达到了编码器功用要求。
1 HDB3码编码原理及完成
HDB3码是AMI码的改善码型,输入码组中假如呈现4位接连位0,就用特定码组来替代,称为三阶高密度双极性码。它克服了AMI码的长0串现象。HDB3编码的首要特色为:基带信号无直流成分,且有很小的低频成分;0串符号最多只要3个具有检错才干,假如接纳端信号1电平的替换规矩被损坏,以为呈现了过失;利于守时信息的提取;不受信源计算特性的影响。因而,HD83编码被广泛运用于脉冲编码调制的线路传输码型。在对代码编码的时分,先不对输入的代码进行极性改换,而是先检测是否刺进“V”,再检测插“B”,这样做就使得输入进来的信号和插“V”、插“B”功用电路中处理的信号都是单极性信号,且需求的寄存器的个数很少。当然,在检测刺进“V”较为简略,只需规划一个计数器记下接连0的个数,呈现4个连0时即可将第4个0用二元码标明。而在插“B”时,首要把信号寄存在寄存器里,一起规划一个计数器计下两个“V”符号之间0的个数,再由一个判偶电路来给寄存器发送是否插“B”的判定信号,决议是否刺进“B”,然后完成插“B”功用。至此,代码悉数都由双相码标明。终究,极性改换能够将本来的“1”码和刺进的“B”合在一起做极性改换,将刺进的“V”独自做极性改换,这样就完成了HDB3码的编码。它的编码模型如图1所示。
要辨认编码中的“1”,“V”和“B”。在编码中终究的表现形式仍是逻辑电平“1”。处理的办法是运用双相码,将其用二进制标明。双相码的编码规矩是:对每个二进制代码别离运用两个具有两个不相同相位的二进制码去替代。如:用10标明1,用00标明0等。
2 依据VHDL硬件描绘言语的HDB3码编码器建模及程序规划
在规划中,依据HDB3编码器的结构模型和VHDL言语程序规划的特色,选用进程句子和元件例化句子完成HDB3码编码器的规划。其间,在选用进程句子完成的规划中,首要是一个结构体中包含4个进程,别离是序列发生器、刺进“V”、刺进“B”和极性改换。而在该办法中,又别离运用了二进制三位码元和二进制二位码元来对HDB3码进行编码。在元件例化句子中,首要分为5个文件,别离是序列发生器、刺进“V”、刺进“B”、极性改换以及顶层文件,各进程之间经过信号传递编码值,在编码中也将选用2位二进制来编码。
2.1 四进程三位编码的HDB3编码器程序规划
在该办法中,将用VHDL言语的四进程句子描绘办法来完成HDB3码编码器,分为4个进程。首要规划一个序列发生器,发生输入序列,作为HDB3码编码器的输入。运用3位二进制代码对刺进的V,B进行编码,用000标明0码、010标明-1、110标明1、011标明-V,111标明+V、101标明+B、001标明-B。在插V和插B完毕后,输出代码均变为用3位二进制编码的序列。然后要将3位二进制代码进行极性改换,输出2位的二进制编码序列,别离标明+1,-1,0。
2.1.1 输入序列发生器的规划与完成
首要,规划一个计数器,用来对发生序列的位数进行操控。规划中,运用5位计数器“cnt”,其能够操控发生47位的输入序列用以供后续的编码器的仿真剖析运用,发生的序列为:100001000011000000001。要求,序列发生器和HDB3码编码器均在同步时钟脉冲上升沿的效果下作业,确保发生一个代码就能敏捷的输入编码器进行编码。
2.1.2 对输入序列做插“V”的规划与完成
在插“V”符号时,首要要判别输入的信号是1码仍是0码,若输入的是0码,则接着判别输入的是第几个0码,假如是第4个0码,则把这个0码改换成V码,不然,坚持原码输出。在程序中将用两个信号flag0和flag1来标识V和非0码的极性,而且flag0和flag1的初始值均为0。再规划一个计数器记录下连0的个数,用以判别是否刺进“V”。若flag0和flag1均为0,则阐明前-“V”或“非0码”极性为负,此刻的“非0码”或“V”极性为正,用110替代。
关于输入序列的检测,假如第一个4连0之前有“1”码,则第一个“1”码的极性就由flag0的初值来确认,后边的“1”码也随之确认,第一个V的极性也由前面的“-1”码的极性确认,V码的极性是自行替换,则后边的V码极性也随之确认;假如输入的序列第一个4连0前面没有“1”码,则第一个V码的极性由它的标识信号firstv的初始值(程序中赋初值为0)确认。后边的“1”码和“V”码的极性均由第一个V的极性确认。终究,插“V”后的输出均为3位码。
2.1.3 刺进“B”的规划与完成
在该部分将凭借4位的移位寄存器来完成,运用元件例化句子D触发器组成4位移位寄存器。依据HDB3码的编码原理,首要将插“V”后的代码放入寄存器里,在同步时钟的效果下一起进行是否补“B”的判别,等码元从寄存器出来的时分,若需求补“B”,则把+B或-B的标识码直接赋值给移位寄存器的第4位;若不需求补“B”,则直接把移位寄存器的第3位送第4位照原码输出。
在规划中,用10标识+1,用01标识-1,用00标识0。其间codeinout是用来调查序列发生器发生的二进制码序列,codeout为HDB3码的编码输出。波形仿真成果如图2所示。
从图2中可见,输出的编码序列和编码规矩共同,阐明规划正确。
2.2 HDB3极性改换
在极性改换中,将运用四选一模仿开关完成+1,0,-1的波形输出。完成真实含义的HDB3码的输出,这儿选用的是数字芯片CD4052来完成。
在单双极性改换规划与完成部分,要完成将3位的编码转化为2位的编码,也便是将前面的+1,-1,+V,-V,+B,-B,0转化成用两位来标识,这样才干经过CD4052的两个输入端进行不同的组合,然后选通不同的通道,完成HDB3码的+1,-1,0三种电平的输出。而转化的办法和编码时确认的极性是共同的,别离用10,01,00来标识+1,-1,0。在数字示波器下观测到的波形如图3所示。
2.3 结构化HDB3码编码器规划
在该规划中,将运用元件例化句子来完成HDB3码编码器。底层文件首要分为序列发生器、插“V”模块、插“B”模块、单双极性改换模块,加上顶层文件共5个模块。在该规划中,用11标识+1,01标识-1,用00标识0。其间codeinout是用来调查序列发生器发生的二进制代码序列,做为HDB3码编码器的输入序列,codeout为HDB3码的编码输出。该规划运用VHDL硬件描绘言语的元件例化句子来完成HDB3码编码器的规划,共一个顶层文件和4个底层文件。在编码中,选用2位二进制对HDB3码编码的插“V”和插“B”以及输出进行编码,且用的均为非归零码来标明。对元件例化句子二位编码的规划进行波形仿真成果如图4所示。
从图4中可见,输出的编码序列和编码规矩共同,阐明规划正确。
3 HDB3码编码在FPGA中完成的特性剖析
选用cycloneⅡ系列EP2C5T144C6器材,运用QuartusⅡ7.2对两种不同规划的HDB3编码器进行了剖析。剖析的首要内容包含:逻辑单元的占用、寄存器的占用、作业速度及功耗等的比较。仿真之后,首要挑选了两组成果进行比较。剖析成果如表1所示。从仿真成果能够看出,在结构化规划中,编码器总逻辑元件、专用寄存器运用与四进程规划比较各削减了18.5%,14.8%,标明结构化规划有利于削减器材资源的运用。
4 结语
依据试验和系统剖析的成果,在FPGA中,运用VHDL言语规划HDB3编码器是可行的。尤其是结合VHDL言语程序规划的特色,运用不同的规划办法,可完成对HDB3编码器的优化规划。经过比较,在结构化规划中,编码器总逻辑元件、专用寄存器运用与四进程规划比较各削减了18.5%,14.8%。因而,结构化规划有利于削减器材资源的运用。