非定长码高速实时拼接专用集成电路的研制
//低16位移动到高16位
counter=counter-16; //累计码长减16
end;
end;
endmodeule
2 VLSI体系结构
上述功能映射到VLSI结构,如图4所示。该码字拼接器采用并行阵列式结构,以流水线方式工作,能够连接不断地在每一个时钟周期内完成1到16之间的任意码长的码字的拼接凑整,每凑足16位输出定长字。
图4中阵列A与阵列B中D触发器与十六选一多路选择器对的结构如图5所示。
图4和图5中,位宽为5的累加器模块是五位累加器,对码长求和,其输出由累加和译码器译码,生成D触发器与十六选一多路选择器的锁存信号Ln和选择信号Seln[0:3]。当累加结果大于等于16时,多路选择输出阵列A或B中的定长字。
阵列A和B各由16对图5所示的D触发器与十六选一多路选择器对构成,D触发器暂存码字某一特定位。累加和译码器模块对累加器的输出进行译码,其输出接到阵列A和B中32个十六选一多路选择器的选择信号端、D触发器的锁存信号端以及多路选择器的选择信号端。
多路选择器模块由16个二选一的多路选择器构成。当累加器中的码长和大于等于16时,该多路选择器输出阵列A或B中的定长字。
该VLSI结构工作原理为:时钟发生有效跳变,累加器读入码长,并与原有数据累加。若累加器第五位由“0”跳变为“1”,则多路选择器将在下个周期输出阵列A的定长字;由“1”跳变为“0”,则输出阵列B的定长字;若没有跳变;不产生输出,阵列A、B读入码字。累加器中原有数据由累加和译码器译码,产生阵列A、B中相应D触发器的锁存信号Ln和十六选一多路选择器的选择信号Seln[0:3],这两个信号把码字的全部16位存入D触发器,为下一个周期作好数据准备。
由此可见,对5位累加器的输出进行解释的累加和译码器,是整个电路的控制核心。它有5位输入,160位输出,其中32位输出L0~L31,160位输出,其中32位输出L0~L31,控制D触发器的锁存;其它128位Sel0[0:3] ~Sel31[0:3]控制32个十六选一多路选择器。其功能的实现方法如下:当累加器为C时,说明阵列A与B的前C位D[31:31-C+1]已是有效码字,当连接下个码字时,这些位的锁存信号为无效态,其它位允许锁存;此时第C+1个十六选一多路选择器输出当前码字最高位,存储在第C+1个D触发器中,第C+2个十六选一多路选择器输出码字次高位,存储在第C+2个D触发器中,余下以此类推,全部码字存储在在16个D触发器内。当累加器大于等于16时(即最高位由0到1跳变),说明阵列A内已经拼接凑整了一个16位定长字,此时多路选择器输出该值。当累加器再次小于16时(即最高位由A到0跳变。注释:累加器只有5位,当C加码长大于31时,C的实际值将小于16),此时表明阵列B内已经拼接凑整一个16位定长字,多路选择器输出该值。
第0个十六选一多路选择器选择信号Sel0[3:0]的VHDL描述如下[1]:
case(C)
Sel0 <="1111" when "00000",
"1110" when "00001",
《非定长码高速实时拼接专用集成电路的研制(第2页)》