查表运算电路的制作方法

文档序号:7510383阅读:280来源:国知局
专利名称:查表运算电路的制作方法
技术领域
本发明属于数字电路设计领域,具体来讲涉及一种查表运算的组合逻辑电路实现。
背景技术
随着通信、数字电视、IPTV、手机电视、视频监控、网络视频等多种数字音视频业务的普及和推广,设计和生产符合最新标准的(如H.264,MPEG-4)高性能多媒体编解码芯片已成为音视频产业和相关芯片产业的重点。由于视频标准H.264在采用一系列技术和方法提高编码效率和图像质量的同时,其运算量和复杂度也大大提高,所以在设计芯片时,对涉及的各种运算要尽量进行化简和优化,从而提高芯片的运算性能、减少芯片的成本和功耗。
在H.264解码器中涉及有大量查表运算,如去块滤波中用于判断是否进行滤波的阈值α,β的查表,熵解码CAVLC或CABAC中的查表。这些查表运算的高效优化对于芯片的性能有着重要影响。
通常地,查表运算的硬件实现方法有两种(1)多路复用器;(2)基于ROM的组合逻辑。
如图1所示,一个多路复用器有n条数据输入通道和一条输出通道,m位的地址线决定了哪个输入通道与输出通道相连。用符号表示的多路复用器所选择的输入通道由下式确定Data_Out=Data_In[Address[k]]其中k为地址位置的标号。
用多路复用器实现查表,多路复用器将表项值value作为数据输入Data_In,用m位的查表索引index作为地址线k进行译码Address,选择哪个输入Data_In通道与输出Data_Out通道相连。

表1例如用多路复用器实现表1的查表运算时,把表中value栏的52个数据作为多路复用器的Data_In(n=52,52个数据输入通道),查表索引index作为多路复用器的地址线k进行译码Address(51需要用6bits表示,所以用m=6位的地址线),则该多路复用器即可实现表1的查表运算。
多路复用器是实现查表运算的简单、通用的方法,如2006年05月03日公开的,公开号为CN 1767651A,名称为“高速影像信号的高频低频预测运算装置及方法”的中国发明公开说明书中所述的查表参数计算电路就是采用的多路复用器(图2中的多工器)。但同时,由于多路复用器必须将所有表项索引输入位的真值表进行完全译码,所以这种实现方式效率不高,并且浪费硬件资源。
此外,基于ROM的查表运算原理简单,但需要数据总线、地址总线、译码器等配合实现,而且价格高、耗能多、速度较慢。

发明内容
本发明的目的在于克服上述现有技术中的不足,提供一种在数字电路设计领域中应用的组合逻辑简单、运算速度高的查表运算电路。
为了实现上述发明目的,本发明的查表运算电路,包括由一系列表项值和一系列对应的表项索引组成的表,基于把表项值的每个输出位表示成表项索引输入位的逻辑函数实现的组合逻辑电路。
所述的把表项值的每个输出位表示成表项索引输入位的逻辑函数,是根据输出位在整个表中逻辑值出现较少的表项而建立,具有积之和形式、或者和之积形式、或者用与非或表示的其他形式。所述的逻辑函数是经过化简。
此外,所述的基于逻辑函数设计组合逻辑电路时,表项值的各输出位之间使用的相同的门电路可进行共用,并且从共用较多的位开始进行。这样可以进一步减少门电路数量。
本发明的查表运算电路是这样实现上述发明目的的,具体设计时,包括真值表表示、将表项值每个输出位表示成表项索引输入位的逻辑函数、逻辑函数化简、门电路设计四个步骤步骤1把原始表转换成真值表步骤1.1查表运算可看成输入是表项索引,记为index,输出是表项值(value)的运算。根据表项索引的数目Num,确定输入位的个数m,即表示index的二进制串的长度,m满足Num>>m=0,(Num>>(m-1))>0其中“>>”表示移位操作。
类似地,根据表项值的取值范围确定输出位的个数n。在表项值取非负整数值时,表示value的二进制串的长度,n满足value>>n=0,(value>>(n-1))>0步骤1.2把原始表的索引index转换成m位的二进制串im-1im-2Λi1i0,把表项值value作为输出转换成n位的二进制串on-1on-2Λo1o0,生成真值表。
步骤2逻辑函数表示此步骤把每一个输出位oj表示成输入位im-1im-2Λi1i0的逻辑函数oj=f(im-1,im-2,Λ,i1,i0)逻辑函数可以是积之和、和之积形式。
针对每个输出位oj(j=0,1,A,n-1),进行以下操作步骤2.1找出oj=1或0的表项,如果等于1的表项较少,就找出oj=1的表项;如果等于0的表项较少,就找出oj=0的表项。
步骤2.2用逻辑与、逻辑或、逻辑非表示每一个表项的逻辑函数。
步骤2.3对oj=1的表项的逻辑函数进行逻辑或,得到oj的积之和逻辑函数,或者对oj=0的表项的逻辑函数进行逻辑与,得到oj的和之积逻辑函数。
步骤3逻辑函数化简利用逻辑函数化简定理,或利用逻辑函数化简软件,对每个输出位的积之和或者和之积逻辑函数进行化简,得到每个输出位的逻辑函数的化简表达。
步骤4门电路设计根据化简后的逻辑函数,设计用与门、非门和或门实现查表运算的组合逻辑电路,各个输出位之间共有的门电路进行共用,并且先设计共用最多的门电路,以达到最好的共用效果,进一步减少门电路。
经过上述几个步骤,最终设计出本发明的查表运算电路,如图2所示。
由于本发明的查表运算电路利用表项值为常数的特点,将每个表项值输出位表示成表项索引输入位的逻辑函数,设计出相应的组合逻辑电路。用该发明代替现有技术中的多路复用器,避免了多路复用器必须将所有表项索引输入位的真值表进行完全译码,效率不高,浪费硬件资源的缺点。相比于基于ROM的查表实现,该发明节省了存储表项值的硬件资源,降低了成本,而且不需要数据总线、地址总线的配合实现。
本发明的查表运算电路在表项取值有特殊情况时,如表中有相同的表项值时,逻辑函数更为简单,优化效果明显,实现效率更高。而且,查表运算所操作的表的表项值可以是定点形式表示或者浮点形式表示。


图1是多用复用器原理图;图2是本发明的查表运算电路。
具体实施例方式
下面结合具体实施方式
,对本发明查表运算电路作进一步详细的说明。
在本实施例中,以表1(H.264标准中的表8-16,阈值β)的查表运算为例,根据本发明设计一具体查表运算电路。
步骤1把原始表(表1)转换成真值表该表的表项索引index数目为Num=52,所以需要用m=6位二进制串表示输入位,从高到低表示为i5i4i3i2i1i0。
表项值value最大为18,所以用n=5位二进制串表示输出位,从高到低表示为o4o3o2o1o0。
这样原始表(表1)就转换成如下的真值表(表2)。


表2步骤2逻辑函数表示为方便起见,6个输入位i5i4i3i2i1i0用大写字母A,B,C,D,E,F表示,用上划线字母A,B,C,D,E,F分别表示它们的逻辑非,AB表示A和B的逻辑与,A+B表示A和B的逻辑或。
输出位o4的逻辑函数,分以下三个步骤求得(1)、找出o4取值较少的表项。此处,o4=1的表项只有6项,所以取o4=1的真值表(表3)

表3(2)、把输入表示成输入位的逻辑非和逻辑与的逻辑函数,具体见下表(表4)


表4(3)、o4的逻辑函数就可以表示成表4中6项输入的积之和o4=A BCDE F+A BCDEF+AB CDEF+AB CDEF+AB CDEF+AB CDEF类似地,可求得o3o2o1o0的逻辑函数,如表5所示

表5步骤3逻辑函数化简根据逻辑函数化简定理,对以上逻辑函数进行化简。可采用逻辑函数化简软件进行,化简后得到以下结果(表6)

表6步骤4门电路设计。
根据步骤3中得到的化简后的逻辑函数设计出相应的组合逻辑门电路。
从上面的具体实例我们可以看出,本发明的查表运算可以用化简后的逻辑函数的组合逻辑门电路非常简单地实现,例如输出位o4利用7个与门,2个非门,1个或门即可实现。各个输出位之间的逻辑电路还可以共享,例如o3和o2共享ABC,o2,o1和o0共享ABC。并且为了进一步减少门电路,对共用较多的门电路优先设计,以提高共用效率,例如优先设计E和D的与门,而不是设计E和F的与门,因为DE的共用次数比EF要多。
尽管上面对本发明说明性的具体实施方式
进行了描述,但应当清楚,本发明不限于具体实施方式
的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
权利要求
1.一种实现查表运算的组合逻辑电路,其特征在于,所述的表由一系列表项值和一系列对应的表项索引组成,表项值的输出位个数由表项值取值范围确定,表项索引输入位个数由表项个数确定,所述的组合逻辑电路,是基于把表项值的每个输出位表示成表项索引输入位的逻辑函数实现的。
2.根据权利要求1所述的查表运算电路,其特征在于,所述的把表项值二进制串的每个输出位表示成表项索引输入位的逻辑函数,是根据输出位在整个表中逻辑值出现较少的表项而建立。
3.根据权利要求1所述的查表运算电路,其特征在,所述的逻辑函数是积之和形式,或者和之积形式、或者用与非或表示的其他形式。
4.根据权利要求1所述的查表运算电路,其特征在于,所述的逻辑函数是经过化简的。
5.根据权利要求1所述的查表运算电路,其特征在于,所述的基于逻辑函数设计组合逻辑门电路时,表项值的各输出位之间使用的相同的门电路可进行共用。
6.根据权利要求1所述的查表运算电路,其特征在于,所述的基于逻辑函数设计组合逻辑门电路时,先设计共用较多的门电路。
7.根据权利要求1所述的查表运算电路,其特征在于,所述的表中的表项值以定点形式表示。
8.根据权利要求1所述的查表运算电路,其特征在于,所述的表中的表项值以浮点形式表示。
全文摘要
本发明提供了一种数字电路设计领域中查表运算的组合逻辑电路实现方法,将表项值的每个输出位表示成表项索引输入位的逻辑函数,并设计出相应的组合逻辑电路。包括由一系列表项值和一系列对应的表项索引组成的表,把表项值的每个输出位表示成表项索引输入位的逻辑函数和逻辑函数化简,以及实现该逻辑函数的组合逻辑电路设计。用多路复用器实现查表运算时,必须将所有输入位的真值表进行完全译码,因而效率不高,硬件资源浪费;而用ROM实现查表运算时,成本较高且速度慢。本发明充分利用了表项特征来化简和优化查表运算,用简单的组合逻辑实现,具有运算速度快、硬件资源节省等优点。
文档编号H03K19/20GK101056102SQ20071004877
公开日2007年10月17日 申请日期2007年3月30日 优先权日2007年3月30日
发明者杨刚, 张小云 申请人:四川虹微技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1