万晨雨,贺雅娟
(电子科技大学电子科学与工程学院,成都 610054)
摘要:本文提出了一种近似高输入成果存储(approximate-most-significant-multiple-storage, AMMS)的查找表(LUT)优化办法。该办法运用移位操作来代替部分存储,并将存储内容进行截位使存储位宽减缩,对依据存储的乘法器中的查找表进行了优化。该办法在一个mm位的乘法器中,可以将查找表的规划减缩至传统存储办法的1/4,并显着改进乘法器的面积推迟积(ADP),不过与此一起,该办法也因截位而发生了相对差错,该差错最大不超越2 -m 。此外,该办法会比传统存储办法多耗费一些额定的硬件,如多路复用器,移位逻辑以及编码模块。
0 导言
依据存储的乘法器的作业原理是运用乘法系数(乘数)固定的特性,将一切输入(被乘数)会发生的或许乘法成果预存储在LUT中。如此,乘法运算进程转化为了从LUT中读取数据的进程,因而依据存储的乘法器不管在运算速度仍是动态功耗上相较于传统的乘法器都有着明显的优势。尽管该类乘法器已被广泛运用于移动无线通信等对电路作业速度与功耗均有必定要求的运用中,不过它也有着缺点,即用于预存储乘法成果的LUT所占用的面积资源过大,当输入具有m比特时,该乘法器运用传统存储办法需求存储的一切或许的乘法成果为2 m 种,所以当m较大时,乘法器所占用的LUT规划过大。
为了下降依据存储结构中LUT的规划,前人现已做了不少研讨。例如文献[1]运用了(offset binarycoding) OBC的编码办法,用简略的加减操作来代替部分存储数据,将分布式算法中需求在LUT中存储的内积数量减缩至传统存储办法的1/2;文献[2]选用了(antisymmetric product coding) APC的存储办法,思维与文献[1]相似,可是运用在了乘法器中,该办法相同运用了额定的简略加减运算来下降需求预存储在LUT中的乘法成果数量,且也可以将存储数量降至传统存储办法的1/2;该作者还在文献[3]中提出了(odd-multiple-storage) OMS存储办法,该办法只需存储奇数输入所发生的乘法成果,并通过将存储成果移位的办法来康复一切或许发生的乘法成果。
该办法相同可以将LUT中的存储数量降至传统存储办法的1/2;文献[4]则更进一步地将OMS与APC存储办法进行了修正与结合,使得LUT中的存储数量更少,不过这样尽管可以减缩LUT规划,可带来了许多的额定硬件开支。以上前人的各种优化办法都是着重于削减在LUT中的预存储数量,更适用于准确的乘法核算,然而在一些不需求准确成果的实践运用中,其实可以运用近似存储的办法来更进一步下降LUT规划,因为LUT规划不只取决于其存储数量,也取决于其存储位宽。因而,本文选用近似截位存储文献[5-6]与移位代替部分存储结合的办法从头优化LUT,不只可以将LUT的存储数量降至传统存储办法的1/2,一起也可以将LUT的存储位宽减缩。相较于前人的存储办法,该办法在更进一步减缩LUT的规划时,并不会带来过多的硬件耗费。
本文提出了一种名为近似高输入成果存储办法,下文都将称其为AMMS办法。该办法可以一起在LUT的存储数量与存储位宽上进行优化。在一个m×m比特的乘法器中,该办法可以有用的将LUT规划减缩至传统存储办法的1/4,一起明显的下降全体规划的ADP,且在乘法器的输入位宽较大时,该办法可以下降要害途径推迟。因为办法自身引进了近似截位,因而该办法得到的近似核算成果相对正确成果而言会有一个不超越2 -m 的相对差错。
1 AMMS办法的完成原理
1.1 AMMS办法的存储办法
表1用输入位宽为4比特的依据存储的乘法器展现了AMMS办法的存储办法,其间B为输入,A为固定系数。该办法关于可以由移位来彼此得到的一切乘法成果,只存储其间的最大值,例如A,2A,4A和8A都可以由8A通过别离右移3,2,1位来得,因而只要8A才会被存储到LUT中。依据这种存储办法,在除了0之外一切的乘法成果中,只会有一半的数量会被存储到LUT中,这些被存储的乘法成果也正是当输入最高位为1时,较大的一半乘法成果。AMMS办法的其他乘法成果都是通过这些存储成果右移来康复的,因而该办法需求记载康复正确乘法成果所需求的详细右移比特数。表1中的取地址表明用来将LUT中存储成果读出的编码地址,每个取地址都仅有对应一个存储在LUT中的数,可是每个取地址可以对应多个输入,不同输入之间以康复正确成果需求的右移数来区别。
1.2 AMMS办法的截位存储战略与截位所带来相对差错的理论推导
设输入B有m比特,固定系数A有n比特,则需求存储的乘法成果数量为2 m-1 个,位宽为m+n比特。AMMS办法采纳对乘法成果的低m位切断的方处理式,只存储高n位。在核算终究成果时,AMMS办法会对已切断的低m位运用固定值进行补偿。
设截位之前的某个正确乘法成果为Z i ,表达式如式(1)所示,需求存储的内容为Xi,1 ≤ i ≤ 2 m-1 ,为n比特,被截位的部分为Y i ,为m比特。AMMS办法核算终究成果时选用的补偿办法为:用一切被切断的低m位的平均值来固定替代终究成果的低m位,的表达式如式(2)所示。该办法核算得到的近似成果Z i ’的表达式如式(3)所示。截位差错error的表达式如式(4)所示。
因为在最坏状况时,绝对差错|Y i -'ˆ2 mi iZ X Y = ⋅ + |的最大值不会超越2 m-1 ,而依据AMMS的较大对折存储办法,Z i 的最小值不会小于2 n+m-1 ,因而依据式(4),理论上的最大相对差错不会大于2 -n ,且当乘法的固定系数的位宽很大时,该截位存储战略所带来的相对差错会很小。
2 AMMS办法在乘法器上的完成结构
图1运用了输入位宽为4比特的依据存储的乘法器来展现AMMS办法的完成结构,其间固定系数为A为n比特。
在该结构中,输入B被分为两部分,第一部分为最高位,首要作为部分模块的判别条件。第二部分为剩余的低3位,为各模块的首要输入。当最高位为1时,多路复用器会运用低3位直接作为取地址,反之,低3位将会进入编码模块来发生取地址。取地址通过地址译码模块后可以将LUT中的存储成果读出,这些被读出的成果会通过右移模块处理来得到正确对应输入的乘法成果。
移位操控模块运用低3位来发生移位码并以此操控右移模块进行正确的右移操作。当最高位为1时,LUT中读取的成果不需求移位,因而移位重置模块会将移位码置0。因为右移模块输出的成果为截位成果,因而还需求用'ˆ2 mi iZ X Y = ⋅ + 来固定补偿被截去的低4位,并构成终究的核算成果。终究还需求判别输入B是否为全0,假如低三位为0,编码模块会发生一个低有用的清零信号传递至或非门,若这时最高位也为0,或非门将会发生一个高有用的信号,表明输入为全0,该信号会传递到输出重置模块,并将终究成果清零。下面将详细介绍部分模块的作业原理与详细电路结构。
编码模块的详细电路结构如图2所示,输入B的低3位进入该模块后会按照表1所示的编码规矩进行编码输出,该模块详细的作业原理为:当输入的最高位为0时,需求将输入左移,直至新的最高位为1,此刻得到左移后数据的新低3位即为编码模块的输出,该模块会将此输出与原始输入的低3位逐个映射与进行逻辑优化,终究发生详细的电路结构。因为编码进程的前提条件为输入B的最高位为0,因而编码是输入必将左移至少一位,所以发生的新低3位的最低位必为0,即取地址第0位为0。
移位操控模块的详细电路结构图如图3所示,移位码由输入B的低3位发生。移位操控模块需求依据当时输入的位宽来决议移位码的位宽,因而,当输入位宽为m比特时,移位码需求[log 2 m] 比特的位宽来掩盖表明一切或许移位的比特数。该模块的作业原理为:当输入最高位为0并在编码模块进行左移编码时,会发生详细的左移比特数,这些比特数即作为移位码为该模块的输出,该模块会将移位码与原始输入低3位逐个映射并进行逻辑优化,终究得到详细的硬件电路。
3 试验成果与比照
本文将AMMS办法与传统存储办法以及OMS存储办法别离运用于88比特和1616比特的乘法器中进行试验,并依据试验成果比照了这些乘法器的ADP。乘法器代码由Verilog编写运用了Design Compiler归纳,归纳进程中运用了0.18mm规范CMOS工艺库,所得试验成果如表2所示。
从表2中不难看出,本文所提出的AMMS办法相较于其他办法来说可以更进一步地减缩乘法器中的LUT规划并明显地下降乘法器的ADP。当输入位宽较小时,该办法因为引进了额定的硬件电路,因而在最大推迟上的比照上不如传统的存储办法,但跟着输入位宽的增大,该办法的最大推迟特性会逐步比传统存储办法更好。一方面是因为LUT规划的增大会导致额定硬件电路所发生的推迟的比重下降,另一方面是截位战略所带来的推迟减缩会跟着LUT规划的添加而添加,足以抵消并超越额定硬件电路所发生的推迟。
4 定论
本文提出了一种新的AMMS办法来对依据存储的乘法器中的LUT进行优化,该办法可以一起在LUT存储数量与存储位宽上进行优化,因而适用于不需求准确核算成果的运用。该办法在一个m×m比特的乘法器中,可以将LUT规划减缩至传统存储办法的1/4,OMS存储办法的1/2,并可以明显的下降全体规划的ADP。该办法比较于传统的存储办法会引进一些额定的硬件电路,而且带来必定的截位相对差错,不过该相对差错不会超越2 -m ,且会跟着乘法固定系数位宽的添加而减小。
作者简介:
万晨雨 (1994-),男,硕士研讨生,研讨方向:低功耗数字集成电路规划贺雅娟 (1978-),女,副教授,研讨方向:专用集成电路与体系、超低压超低功耗数字集成电路规划等
本文来源于科技期刊《电子产品世界》2019年第7期第44页,欢迎您写论文时引证,并注明出处