0 引言
数字通信的主要目的就是准确无误地传输信道中所携带的信息。数字通信系统中,发送端把数字信号变成适合信道的基带信号(基带调制),然后经过信道进行传输;接收端则把信道中的基带信号还原成原始的数字信号(基带解调),在这个调制解调的过程中首要的问题就是码型的选择问题。HDB3编码具有很多优点:其一,它很容易在其相应基带信号中提取定时信号;其二,HDB3码无直流成分和很小的低频成分;其三,传输效率高。因此,HDB3码非常适合在基带信道中进行传输,并有必要进行HDB3编码器芯片的设计。
1 HDB3编码器ASIC的设计流程
首先采用Verilog HDL进行前端设计,在软件QuartusⅡ上编译仿真;然后进行综合、门电路仿真和硬件验证;最后进行后端版图设计。
2 HDB3编码器的硬件描述语言设计思路
HDB3编码原理:首先将信息代码变换成交替反转码(AMI码,AMI码的编码规则:将代码中的“0”仍然变换成传输码中的“0”,而把“1”交替地变换为传输码中的+1,-1,+1,-1,…),然后来检查交替反转码中的连“0”情况。假如在该串码型中出现了4个或者4个以上
连“0”时,将每4个连“0”段的第4个“0”替换成一个破坏符号“V”,该破坏码的极性与该串码型中前一非“0”符号同极性。为了保证插入破坏符号后的序列不会破坏,将相邻V符号极性交替出现。因此当两个相邻的V符号间有偶数个非“0”符号时,就要将该小段中第1个“0”变成“+B”或者“-B”,B符号的极性与前一非“0”符号相反,后面非“0”符号再交替变化。在单双极性变换时,必须要区分“+1”,“-1”,“+V”,“-V”,“+B”,“-B”,“0”,因此用一串二进制来表示,具体表示如表1所示。
该HDB3编码器由插入“V”模块、插入“B”模块和“V”码极性纠正模块组成。
2.1 插入“V”模块
该模块功能是将信息代码转换成正负交替的码型,同时将每4个连“0”段的第4个“0”替换成“V”。首先判断输入的码型是“0”或“1”,如果是“0”,每接收到一次,则让一个两位的计数器开始加“1”。为了保证计数的是4个连“0”,当输入的编码串中没有出现4个连“0”而出现了“1”时,两位计数器的计数初值重新清“0”。假如出现“0000”,还要判断前一非“0”符号的极型,目的就是为了让第4个“0”替换成与前一非“0”符号相同极性的破坏码(V);如果输入是“1”,只需判断前一非“0”符号是“+”还是“-”,比如说,前一非“0”符号为“+”,那么此次的“1”变为“-1”输出,同时让符号标志位变为“-”状态,同理,前一非“0”符号为“-”,输出结果将是“+1”,符号标志将变为“+”。设计流程见图1,该模块门电路见图2。
2.2 插入“B”模块
信息代码经过上级模块(插入“V”模块)以后,输出的代码将是极性正负交替的码型。插入“B”模块的功能是:当两个连续的“V”之间有偶数个“1”时,要将该小段中第一个“0”替换成“B”,其符号与前一非“0”符号相反;当两个连续的“V”间有奇数个“1”时,则无须替换。本模块的设计精髓是:设计成可综合的状态机,利用状态机的方法将信息代码编成HDB3的码。此设计共5个状态,并且将插入的破坏码“B”的极性记录下来,以便下级模块进行“V”码极性的纠正。在第一个状态中,如果接到的数据是“+V”或“-V”,信息代码原样输出,分别转移到第2、第3个状态;如果是其他符号的数据,信息代码也原样输出,回到第一个状态。在第二个状态中,当有非“+1”符号输入时,信息代码原样输出,回到第二个状态;当有“+1”输入时,说明两个相邻的“V”之间有偶数个“1”,转移到第4个状态。在第四个状态中,当有“0”输入时,则让此刻的“0”替换成“-B”,回到第一个状态,重新开始判断两个连续的“V”之间是否有偶数个“1”;当有非“0”符号输入时,回到第二个状态。第三、第五个状态工作方式与以上类似。状态转移图见图3,模块门电路见图4。
2.3 “V”码极性纠正模块
由于插入“B”模块的存在,使得“V”码的极性与前一非“0”符号的极性不能保持一致。因此,需要加一个“V”码极性纠正模块,在该模块中,有两个数据输入端,一个是信息代码,另外一个是记录“B”码极性的标志。当标志为“01”和“11”时,分别表示此刻插入“B ”码极性是“-”和“+”。设计思路:当标志是“01”,且紧接着“B”码后的第一个“V”码极性是“+”时,就让“+V”替换成“-V”输出,同理,当标志是“11”,且紧接着“B”码后的第一个“V”码极性是“-”时,就让“-V”替换成“+V”输出,其他的状态都保持原样输出。该模块门级电路见图5。
3HDB3编码器仿真结果分析
仿真结果见图6,当输入的原始信息代码串“10101100000110000100001100001100111000011110000”经过插入“V”模块后,原始的信息代码串被转换成正负交替的极性码(其中“V”码除外,因为“V”码的极性和前一非“0”码的极性相同),输出信号codeoutv为:“60206 200030620003600072600072600262000362620003”,并作为插入“B”模块的输入信号,其输出信号为codeoutb,根据要求将对该串信息代码插入破坏码(“B”),在插入破坏码后,使得“V”码的极性不符合HDB3编码的规则,因此在该模块中增加了“B”码极性的标志输出,该标志在“V”码极性纠正模块中将codeoutb信息代码的“V”码极性进行纠正,最后输出端codeout的输出结果为:“6020620003062500760007261 0032610262000362625007”。
4 结语
该HDB3编码芯片的设计采用了优化技术和巧妙的逻辑电路设计,通过仿真和硬件验证,它可以有效消除传输信号中的直流成分和很小的低频成分,实现了基带信号在基带信道中直接传输与提取,并能很好地提取定时信号。最后采用0.25μm的硅栅工艺绘制版图,很大程度上减小了版图面积,且工艺先进、性能稳定,芯片可广泛应用于数字通信领域。