用于执行乘法的混合固定逻辑的制作方法



1.本发明涉及用于执行乘法的混合固定逻辑


背景技术:



2.本发明涉及一种使用除法逻辑和乘法逻辑执行乘法的固定逻辑电路,以及一种获得用于执行这种乘法的固定逻辑电路的方法。
3.时设计集成电路时,通常需要逻辑来执行加法、减法、乘法和除法。
4.乘法运算通常在硬件中使用乘法阵列(诸如and或booth阵列)并且使用全加器或半加器执行阵列缩减方案来实施。此类实施方式能够有效地计算完整的乘法结果,但是结果的最高有效位在结果的最低有效位之后生成。这是因为必须将生成最低有效位的计算输出进行到底,以便在被执行以生成最高有效位的计算中使用。


技术实现要素:



5.提供本发明内容是为了以简化的形式介绍下文在具体实施方式中进一步描述的一系列概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
6.提供一种固定逻辑电路,其被配置为执行乘法运算a*x,其中a是整数常量,x是在0至2
m-1范围内的整数变量,并且m是正整数,该固定逻辑电路包括:
7.除法逻辑,其被配置为确定以下除法运算的结果的预定数量的一个或多个最高有效位:
[0008][0009]
其中q、i被选择成使得:
[0010][0011]
乘法逻辑,其被配置为确定乘法运算a*x的结果的预定数量的一个或多个最低有效位;以及
[0012]
输出逻辑,其被配置为将除法运算的结果的预定数量的一个或多个最高有效位与乘法运算的结果的预定数量的一个或多个最低有效位组合,以便提供乘法运算a*x的输出。
[0013]
输出逻辑可以被配置为提供除法运算结果的预定的一个或多个最高有效位作为乘法运算的相应的一个或多个最高有效位。
[0014]
除法运算结果的一个或多个最高有效位可以是包括该结果的最高有效位的连续集合。
[0015]
该乘法运算的输出可以提供完全表示乘法运算a*x的直到基数点的整数输出所需的所有位。
[0016]
乘法逻辑可以被配置为提供乘法运算的输出中并非由除法逻辑提供的所有位。
[0017]
乘法运算的所述预定数量的一个或多个最低有效位可以大于除法运算的结果的所述预定数量的一个或多个最高有效位。
[0018]
值i可以被选择为满足下式的最小正值:
[0019][0020]
使得:
[0021][0022]
除法逻辑可以被配置为执行迭代除法。
[0023]
由除法逻辑执行的每次迭代可以被配置为提供乘法运算的输出的从最高有效位开始的一个或多个连续最高有效位。
[0024]
除法逻辑可以被配置为使用二进制位置数字系统,并且在每次迭代时提供乘法运算的单个位。
[0025]
除法逻辑可以被配置为使用不同于二进制位置数字系统的位置数字系统,以便在每次迭代时提供乘法运算的输出的预定义的多个位。
[0026]
提供一种包括所述固定逻辑电路的集成电路。
[0027]
提供一种获得被配置为执行乘法运算a*x的固定逻辑电路的硬件表示的方法,其中a是预定义的整数常量,x是在0至2
m-1范围内的整数变量,并且m是正整数,该方法包括:
[0028]
选择q、i使得:
[0029][0030]
形成除法逻辑的硬件表示,该除法逻辑被配置为确定以下除法运算的结果的一个或多个最高有效位:
[0031][0032]
形成乘法逻辑的硬件表示,该乘法逻辑被配置为确定乘法运算a*x的结果的一个或多个最低有效位;以及
[0033]
将除法逻辑的硬件表示和乘法逻辑的硬件表示组合,以便获得被配置为提供乘法运算a*x的输出的固定逻辑电路的硬件表示。
[0034]
将除法逻辑的硬件表示和乘法逻辑的硬件表示组合可以包括配置硬件表示,以提供除法运算结果的一个或多个最高有效位作为乘法运算a*x的相应的一个或多个最高有效位。
[0035]
形成除法逻辑的硬件表示、形成乘法逻辑的硬件表示以及将除法逻辑的硬件表示和乘法逻辑的硬件表示组合中的一者或多者可以一起执行。
[0036]
形成除法逻辑的硬件表示和形成乘法逻辑的硬件表示可以包括配置除法逻辑以提供乘法运算的输出的r个最高有效位,以及配置乘法逻辑以提供乘法运算的输出的s个最
低有效位,其中r、s被选择以便最小化由固定逻辑电路的硬件表示所表示的固定逻辑电路的尺寸和延迟中的一者或两者。
[0037]
r、s的值可以满足r+s=t,即完全表示乘法运算a*x的直到基数点的整数输出所需的位数。
[0038]
提供一种根据该方法生成的固定逻辑电路。提供一种计算机可读代码,其被配置为在运行该代码时使该方法得以执行。提供一种计算机可读存储介质,在其上编码有所述计算机可读代码。
[0039]
提供一种使用集成电路制造系统来制造所述固定逻辑电路的方法。
[0040]
提供一种使用集成电路制造系统来制造所述固定逻辑电路的方法,该方法包括:
[0041]
使用布局处理系统来处理所述固定逻辑电路的计算机可读描述,以便生成包括所述固定逻辑电路的集成电路的电路布局描述;以及
[0042]
使用集成电路生成系统,根据所述电路布局描述来制造所述固定逻辑电路。
[0043]
提供一种集成电路定义数据集,时其在集成电路制造系统中处理时,将所述集成电路制造系统配置为制造所述固定逻辑电路。
[0044]
提供一种计算机可读存储介质,在其上存储有所述固定逻辑电路的计算机可读描述,时该计算机可读描述在集成电路制造系统中处理时,使得所述集成电路制造系统制造包括所述固定逻辑电路的集成电路。
[0045]
提供一种计算机可读存储介质,在其上存储有所述固定逻辑电路的计算机可读描述,时该计算机可读描述在集成电路制造系统中处理时,使得所述集成电路制造系统:
[0046]
使用布局处理系统来处理所述固定逻辑电路的所述计算机可读描述,以便生成包括所述固定逻辑电路的集成电路的电路布局描述;以及
[0047]
使用集成电路生成系统,根据所述电路布局描述来制造固定逻辑电路。
[0048]
提供一种被配置为制造所述固定逻辑电路的集成电路制造系统。
[0049]
提供一种集成电路制造系统,其包括:
[0050]
非暂态计算机可读存储介质,在其上存储有所述固定逻辑电路的计算机可读描述;
[0051]
布局处理系统,其被配置为处理所述计算机可读描述以便生成包括所述固定逻辑电路的集成电路的电路布局描述;以及集成电路生成系统,其被配置为根据所述电路布局描述来制造所述固定逻辑电路。
[0052]
如对本领域技术人员显而易见的,上述特征可以适时地组合,并且可以与本文所述的示例的任何方面组合。
附图说明
[0053]
现在将参考附图详细描述示例,在附图中:
[0054]
图1是固定逻辑电路的示意图,该固定逻辑电路根据本文所述的原理被配置为计算乘以常量运算的r个最高有效值。
[0055]
图2是二进制除法运算的示意图。
[0056]
图3是固定逻辑电路的示意图,该固定逻辑电路根据本文所述的原理被配置为通过执行除法和乘法运算来计算乘以常量运算。
[0057]
图4展示了实施先乘后除法以生成乘法运算的前r个最高有效位的优点。
[0058]
图5是展示根据本文所述原理获得固定逻辑电路的方法的流程图。
[0059]
图6是展示根据本文所述原理获得固定逻辑电路的方法的流程图。
[0060]
图7是集成电路制造系统的示意图。
[0061]
附图示出了各种示例。技术人员将理解,附图中所示的元件边界(例如,框、框的组,或其他形状)表示边界的一个示例。在一些示例中,情况可能是一个元件可以被设计为多个元件,或者多个元件可以被设计为一个元件。在适时的情况下,贯穿各附图使用共同的附图标记来指示类似的特征。
具体实施方式
[0062]
通过示例的方式给出以下描述,以使本领域的技术人员能够制造和使用本发明。本发明不限于本文描述的实施方案,并且对所公开的实施方案的各种修改对于本领域的技术人员将是显而易见的。
[0063]
现在仅通过示例的方式来描述实施方案。
[0064]
对于相等量值的值,用于执行除法的固定逻辑相比用于执行乘法的固定逻辑,通常较慢且较大。例如,在二进制逻辑电路中实施运算相比被配置为针对常数p和q执行运算p*q的二进制逻辑电路,通常较慢且较大。发明人已经认识到,在硬件中将输入值乘以常量的运算实施为除法运算仍然可能是有利的。通过以本文描述的方式确认合适的除法运算,被配置为执行该除法运算的固定硬件相比被配置为执行乘法运算的固定硬件,可以较快地和/或在较小的电路中提供乘法运算的一个或多个最高有效位。
[0065]
输入变量x乘以整数常量a可以通过如下用整数常量q进行的等效除法运算来表示:
[0066][0067]
引入2i确保上式有解,其中q是整数。在二进制逻辑中,乘以2i表示左移i位。有利地并且如将在下文所述,选择i的值以便最小化q的大小,从而最小化实施除法运算的固定逻辑硬件的尺寸。
[0068]
用于执行上式(1)除以整数常量的固定逻辑电路100在图1中示出。该固定逻辑电路包括除法逻辑101,其被配置为至少部分地执行式(1)的除法运算,以便提供该除法运算的结果的r个最高有效位。该固定逻辑电路还可以包括累加器102(例如一组硬件寄存器),用于存储在所述除法逻辑处执行的除法运算的输出。除法逻辑被配置为执行迭代除法(即,“慢”或“长”除法),其在每次迭代时提供除法运算的输出的一个或多个位。这种除法的本质是除法运算的输出从其最高有效位开始提供。对于被配置为使用radix 2(二进制)数系统执行除法的除法逻辑,每次迭代提供除法运算的输出的单个位。
[0069]
除法逻辑101被配置为执行除法运算乘以2i表示左移i位。不需要逻辑来实施移位固定值,这可以通过在固定逻辑100处的适时硬布线来执行,以将在除法逻辑处计算的二进制数字左移i位。类似地,不需要逻辑来实施式(1)的向下取整运算,这可以通过在基数点处截断除法逻辑的输出来实现。实际上,除法逻辑101可以被配置为计算除法运算的结果
的r个最高有效位,使得那些位不代表超出基数点的结果。通常,除法逻辑将被配置为计算少于完全表示除法运算的直到基数点的整数输出所需的位数。例如,如果由式(1)表示的全除法运算的整数输出是t位,则由除法逻辑计算的r位可以满足r<t。因此,除法逻辑101提供t位输出,可以推断出未在除法逻辑处计算的最低有效输出位(例如通过将最低有效位设置为零),这可以在不使用逻辑的情况下通过在固定逻辑100处的适时硬布线来实现。
[0070]
注意,并非所有表示左移2i的零串都需要在硬件中实现:在硬件中只需要存在/隐含足够数量的零,使得可以计算输出的前r个最高有效位。
[0071]
除法逻辑101可以被配置为根据任何合适的算法计算在式(1)中表示的除法运算的r个最高有效位。例如,该除法逻辑可以被配置为执行恢复式除法、非执行恢复式除法、非恢复式除法或srt除法。用于执行此类除法算法的固定逻辑电路在本领域是众所周知的。
[0072]
除法逻辑101可以包括被配置为执行除法运算的除法阵列。这种除法阵列可以包括多个减法器和比较器,它们被布置为根据在设计时选择的除法算法来计算在式(1)中表示的除法运算的r个最高有效位。据设想,在设计时,采用缩减方案来尽可能缩减该除法阵列的尺寸。
[0073]
该除法逻辑被配置为执行输入变量x除以除数常量q,其中该除数常量是根据本文所述的原理在设计时预定的。
[0074]
图2示意性地展示了由除法逻辑以二进制实施方式执行的“长”除法和移位运算200。该图表示由除法逻辑执行的功能,但是应时理解,在固定逻辑电路处执行的特定运算将取决于所使用的特定除法算法,以及被具体实施以实现该算法的特定逻辑电路。
[0075]
在图2中,输入变量x201左移i位,这由值为0的i位的集合203表示。众所周知,在二进制实施方式中除以除数q202能够以迭代方式执行。在第一次迭代中,在适时的位位置处从输入变量201中减去除数202。在随后的迭代中,在适时的位位置处从在前一次迭代中形成的余数中减去除数202。减法可以在硬件中由适时的减法器逻辑执行。如本领域中对于此类“长”除法算法所知的,可以通过比较除数q的大小与被除数x的大小来确定在每次迭代中减去除数202的适时的位位置。
[0076]
在每次迭代中,从最高有效位开始生成该除法运算的输出位。在该二进制示例中,除法逻辑被配置为执行r次迭代,直到生成r个最高有效输出位204为止。时生成每一位时,可以将其存储在累加器104中。
[0077]
据设想,除法逻辑101可以使用不同于radix 2(二进制)的位置数字系统,以便每次迭代提供多于一个输出位。例如,radix 4实施方式可以一次提供2位,radix 8(八进制)实施方式可以一次提供3位,并且radix 16(十六进制)实施方式可以一次提供4位。可能有利的是配置该除法逻辑以使用在单次迭代中提供所需数量的r个最高有效位的位置数字系统。这提供了大却快速的硬件实施方式。如本领域所知的,使用不同于radix 2的位置数字系统的除法仍然可以使用二进制逻辑电路来实施。除法逻辑101可以是二进制逻辑电路。
[0078]
为了最小化除法逻辑101的固定逻辑实施方式的复杂性、等待时间和大小,有利的是,在将至少部分地由除法逻辑执行的式(1)的乘法运算a*x中,选择在x的整个范围上满足式(1)的q的最小值。现在将针对给定的整数常量a∈n和无符号的m位变量输入x∈[0,2
m-1](其中m∈n)来确认q的该最佳值。在a是2的整数幂的情况下,不需要使用本发明的技术,因为这表示二进制逻辑中的位移位,因此可以在不使用本文所述的除法逻辑的情况下在硬件
中轻松地执行。所以,我们排除了a是2的正整数幂的可能性。
[0079]
上式(1)指出:
[0080][0081]
为了最小化除法逻辑101的固定逻辑实施方式的复杂性、等待时间和大小,我们需要确认最小的q∈n,使得对于式(1)在x的整个范围上存在常量i∈n。
[0082]
式(1)可以重新表述为:
[0083][0084]
这是因为
[0085][0086]
并且因为
[0087][0088]
这意味着介于整数a*x与a*x+1之间。
[0089]
从式(2)中移走a*x并因式分解,得到:
[0090][0091]
这两个不等式对于x∈[0,2
m-1]的所有值在大多数情况下成立。首先考虑下面的不等式:
[0092][0093]
对于x=0,任何值均毫无疑问地满足该不等式,但是对于x>0的其他值,我们可以在两边都除以x,得到:
[0094][0095]
式(3)的等式暗示a*q=2i,这暗示a、q均为2的正幂。但a被限制为不为2的正幂,因此:
[0096][0097][0098]
再看第二个不等式,现在知道
[0099]
[0100]
绘制的图形将得到一条具有正梯度的直线,因此其最大值出现在x为其最大值2
m-1之处。在这种情况下,1之处。在这种情况下,如果该值小于1,则对于x∈[0,2
m-1].
[0101]
的所有值,此等式都将成立。因此,由式(5)得到:
[0102][0103][0104]
将不等式(4)和(6)结合,得到一个将在其中到的开区间:
[0105][0106]
即,
[0107]
对于i∈n的给定值,就其而言,最接近于同时依然成立的q的正整数值为:
[0108][0109]
这是因为:
[0110][0111]
而下一个整数为:
[0112][0113]
因为
[0114][0115]
因此,q的值为:
[0116][0117]
这可以如下建立。考虑从i=0、1、2、
……
开始的的正整数倍数,其位于区间中。对于i=0不存在,这是因为被包含在区间(0,1)中,原因是a>1并且a2(a
m-1)+a>a.
[0118]
到i的第一个值,使得存在正整数倍数(无论间隔多小,i的该值总是存在的,因为这些值以能够被制得任意小的宽度间距均匀地覆盖数值轴)。该整数将是唯一的且为
奇数,因此将为式(8),即
[0119]
由i的最小值(被定义为i
min
),得到,这是q可以取的最小值。
[0120]
为了到i
min
,将上式(7)中的q设为
[0121][0122]
根据向下取整函数的定义,可以推断:
[0123][0124]
因此
[0125][0126]
i的最小正值i
min
是满足式(9)的i的值。q的最小正值则由下式给出:
[0127][0128]
q的该值确保对于所有整数输入x∈[0,2
m-1]均满足该式。对于绝大多数情况,因此q是无符号整数,且整数位宽在
[0129]
中。为了计算乘法运算a*x的前r个最高有效位,除法逻辑101被配置为计算除法运算的前r个最高有效位。为了最小化该除法逻辑的固定逻辑实施方式的复杂性、等待时间和大小,有利的是选择i=i
min
并且如上所述,该除法逻辑被配置为执行迭代除法,其中执行足够数量的迭代以提供所需的r个最高有效位。优选地,该除法逻辑不被配置为提供多于r个最高有效位。这最小化了固定逻辑实施方式的复杂性、等待时间和大小。
[0130]
在一些具体实施中,除法逻辑101将被配置为仅提供最高有效位(r=1)。在一些具体实施中,除法逻辑101将被配置为提供在式(1)中表达的除法运算的所有位,然而此类实施方案相比被配置为直接执行乘法运算a*x的常规固定逻辑,通常较大且较慢。
[0131]
在一些具体实施中,可以一起提供除法固定逻辑和乘法固定逻辑,以计算乘法运算a*x的完整输出。图3示出了包括固定逻辑303的固定逻辑电路300,该固定逻辑包括:除法逻辑301,其根据本文所述的原理配置,以便生成乘法a*x的前r个最高有效位;以及乘法器逻辑302,其被配置为生成乘法a*x的剩余最低有效位。除法逻辑和乘法器逻辑可以将它们的输出提供给输出逻辑304(例如,累加器或寄存器,用于存储输出位并且将r个最高有效位与剩余最低有效位拼接起来)。
[0132]
对于位长度为t位的输出,乘法器逻辑可以生成t-r个最低有效位。该方法可以提供用于计算a*x的非常快速(尽管通常较大)的固定逻辑电路。这是因为除法逻辑从最高有效位开始生成输出的位,而乘法器逻辑从最低有效位开始生成输出的位。由于除法逻辑和乘法器逻辑均不生成a*x的结果的完整t个位,所以固定逻辑电路与除法逻辑和乘法器逻辑中最慢生成其在输出中的部分的那一者一样快。
[0133]
乘法器逻辑被配置为执行输入变量x与整数常量a的乘法,使得首先提供输出的最低有效位。用于执行此类乘法运算的固定逻辑在本领域是众所周知的。二进制逻辑电路的乘法器逻辑可以包括具有多个全加法器和/或半加法器的乘法器阵列,这些加法器被布置为计算乘法运算的前t-r个最低有效位。据设想,在设计时,可以采用缩减方案来尽可能缩减该乘法器阵列的尺寸。
[0134]
对于给定的输出位长度,乘法器逻辑相比除法逻辑通常较快且较小。因此,乘法器逻辑302生成比除法逻辑301更多的位数可能是有利的。可以在设计时优化由除法逻辑和乘法器逻辑中的每一者计算的输出位的比例,以便最小化固定逻辑电路300的等待时间和/或芯片面积。
[0135]
图4展示了使用根据本文所述原理配置的除法逻辑来生成乘法运算1431655765*x的前r个最高有效位的优点。图4中的图形的底部轴线表示延迟(以ns为单位),而左侧轴线表示面积(以平方微米为单位)。该图形示出了将使用16nm乘法器阵列对比使用被配置为执行常量迭代除法的16nm除法逻辑执行常量乘法运算以计算该常量乘法运算的结果的最前面1、2、3、4和8个最高有效位的大小和速度进行比较的一系列线。对长度为32位的输入变量x执行常量乘法运算,并且常量a=1431655765,使得i
min
的值为64,并且输出的长度为63位。
[0136]
以该图形中的关键连接点标识为“乘法”线的那些线表示运算延迟和由乘法器逻辑设计消耗的面积,所述乘法器逻辑设计由常规逻辑合成软件生成,用于计算常量乘法运算a*x的r个最高有效位。以该图形中的关键连接点标识的“除法”线表示运算延迟和由除法逻辑设计消耗的面积,所述除法逻辑设计如本文所述用于计算常量乘法运算a*x的r个最高有效位。每条线的r值在图中以关键字标识。
[0137]
从该图形中可以看出,使用本文教导的除法逻辑实现的逻辑设计明显更快,并且在所消耗的集成电路面积方面明显更小。直到大约为8的r值都是这种情况,并且对于足够大的延迟,在甚至高达大约r=14时,除法逻辑都可以小于等效的乘法逻辑。时需要较大数量的最高有效位时,使用常规的乘法器逻辑来计算1431655765*x的r个最高有效位更快且只需要较小的电路面积。
[0138]
ic设计方法
[0139]
本文描述的除法逻辑的固定逻辑硬件实施方式可以由合适的软件来确定。通常,集成电路最初是使用软件(例如设计编译器)来设计的,该软件生成所需集成电
路的逻辑抽象。这种抽象通常被称为寄存器传输级或rtl。一旦定义了该集成电路的逻辑运算,就可以由合成软件(例如ic编译器)使用该逻辑运算来创建物理集成电路的表示。此类表示可以用高级硬件描述语言(例如verilog或vhdl)来定义,并且最终根据集成电路的门级描述来定义。
[0140]
用于执行除以常量的逻辑可以在设计时轻而易举地引入到集成电路中。然而,用于设计集成电路的设计软件将几乎不变地提供使用用于执行通用除法的逻辑(即,用于执行除以由运行时间指定的除数的逻辑)的功能。这种逻辑是复杂的,并且消耗集成电路的相时大的面积。因此,有利的是,在需要用于执行乘以分数常量的逻辑的情况下,对设计软件进行配置,以使用经优化用于计算除以常量所得的前r个位的逻辑,其中i、q可以取最小i以及本文确认的q值。
[0141]
如果用于设计集成电路的软件被配置为根据需要实施用于计算乘以常量运算的前r个最高有效位的固定逻辑,则根据本文所述的设计原理将该运算实施为除以常量是有利的。这可以通过将定义除以常量的rtl引入到集成电路设计中来实现,其中i和q的值可以取如本文所教导的它们的最小值。集成电路的设计可以在执行设计软件的数据处理设备(诸如工作站或服务器)处根据设计软件中包括的规则来实现。
[0142]
在图5的流程图中展示了获得根据本文阐述的原理的固定逻辑电路的硬件表示的方法。在501处,接收到乘以常量运算a*x,其中a是预定义的整数常量,并且x是在0至2
m-1(其中m是正整数)范围内的整数变量。在502处,确认满足下式的i的最小正值:
[0143][0144]
在503处,然后使用得到的i值来计算以下对应值:
[0145][0146]
在504处,然后使用i和q的值来获得固定逻辑电路的硬件表示,该固定逻辑电路被配置为确定以下除法运算的结果的预定数量的一个或多个最高有效位:
[0147][0148]
在505处将该硬件表示配置为提供该除法运算的结果的预定r个最高有效位,作为乘法运算a*x的相应的一个或多个最高有效位。
[0149]
图5的方法能够以诸如rtl设计软件的程序代码实施。例如,在该软件的用户需要乘以常量运算的r个最高有效位的情况下,rtl设计软件可以被配置为使用rtl来实施该运算,该rtl定义了用于计算以下除法运算的前r个最高有效位的除法逻辑:
[0150][0151]
其中i和q取本文所述的值。
[0152]
在图6的流程图中展示了获得固定逻辑电路的硬件表示的方法,该固定逻辑电路
既包括根据本文阐述的原理配置的除法逻辑,还包括乘法器逻辑(例如,如图3所示)。这可以提供用于计算乘法运算a*x的完整输出(例如,直到基数点的整数结果的t个位的完整集合)的快速固定逻辑电路。
[0153]
在601处,接收到乘以常量运算a*x,其中a是预定义的整数常量,并且x是在0至2
m-1(其中m是正整数)范围内的整数变量。然后,获得用于执行作为除法运算和乘法运算的组合的乘法运算的固定逻辑的硬件表示。
[0154]
在606处选择由除法逻辑和乘法器逻辑提供的位数r、s,如下文更详细讨论的。在602和603处获得除法逻辑的硬件表示。在602处选择q、i的值,以便满足上式(1)。例如,i可以取满足上式(9)的值,因此q可以取式(10)中指定的值。在603处,所选择的q、i的值用于形成除法逻辑的硬件表示,该除法逻辑用于确定以下除法运算的r个最高有效位:
[0155][0156]
通过上式(1),该除法运算的r个最高有效位也是将在固定逻辑电路中实施的乘法运算的r个最高有效位。除法逻辑的硬件表示能够以上文关于图5所述的方式获得。
[0157]
在604处形成用于确定乘法运算的s个最低有效位的乘法逻辑的硬件表示。乘法逻辑的硬件表示能够以任何合适的方式获得,例如,根据用于设计乘法逻辑的已知算法。乘法逻辑可以根据固定逻辑的期望特性(例如,硬件是否将针对速度和/或大小进行优化)从乘法器设计库中选择。乘法逻辑可以包括逻辑门阵列,例如and阵列或booth阵列。
[0158]
在605处,将除法逻辑的硬件表示和乘法逻辑的硬件表示组合,以便获得用于计算乘法运算a*x的结果的固定逻辑。例如,在该固定逻辑中,将由除法逻辑提供的r个msb与由乘法逻辑提供的s个lsb组合,以便提供乘法运算a*x的结果的r+s=t个位(其中t是直到基数点的整数结果的位数)。注意,602、603、604和605中的一者或多者可以一起执行。在605处将除法逻辑和乘法器逻辑组合可以包括在硬件表示中限定累加器或者寄存器集合,其被布置为接收由除法逻辑和乘法器逻辑提供的位,使得在使用中,所述累加器/寄存器提供乘法运算a*x的结果。
[0159]
在606处选择由除法逻辑和乘法器逻辑提供的位数r、s。在一些示例中,r、s可以是预定的(例如由设计者为实现图6的方法的芯片设计软件指定)。在图6所示的示例中,对位数r、s进行选择,以便优化固定逻辑电路,例如可以对位数r、s进行选择,以便最小化固定逻辑的延迟和/或面积。为了产生给定数量的输出位,除法逻辑通常比乘法逻辑慢。因此,将除法逻辑配置为提供相比乘法逻辑较少的位数(即r<s)可能是有利的。可以执行优化(例如,通过针对各种r、s值对逻辑的预期速度/面积进行建模)以确认r、s的值,这些值使得根据本文阐述的原理获得的固定逻辑电路的速度和延迟中的一者或两者最小化。
[0160]
图6的方法能够以诸如rtl设计软件的程序代码实施。例如,在该软件的用户需要乘以常量运算的r个最高有效位的情况下,rtl设计软件可以被配置为使用rtl来实施该运算,该rtl定义了用于计算以下除法运算的前r个最高有效位的除法逻辑:
[0161][0162]
其中i和q取本文所述的值。
[0163]
本文提到的硬件表示可以是寄存器传输级(rtl)表示、高级电路表示(诸如verilog或vhdl)或低级表示(诸如oasis或gdsii)。可以提供二进制逻辑电路的硬件表示(通常作为大规模芯片设计的一部分)来用于制造成集成电路。例如,可以将ic的低级表示直接提供给晶圆代工厂以制造指定的集成电路,或者可以将rtl提供给中间芯片设计商,该中间芯片设计商自己将由该rtl设计ic的低级表示以提供给晶圆代工厂。
[0164]
图1和图3的固定逻辑被示出为包括多个功能块。这仅是示意性的,并不旨在限定此类实体的不同逻辑元件之间的严格划分。每个功能块可以任何合适的方式提供。应时理解,本文所述的由固定逻辑形成的中间值不需要由该固定逻辑在任何时间点物理地生成,并且可以仅表示方便地描述由该固定逻辑在其输入与输出之间执行的处理的逻辑值。
[0165]
本文所述的固定逻辑可以包括在集成电路上的硬件中。该固定逻辑可以是二进制逻辑电路系统。
[0166]
星号“*”符号在本文中用于表示乘法。
[0167]
如本文中所使用的术语计算机程序代码和计算机可读指令是指供处理器执行的任何种类的可执行代码,包含以机器语言、解释语言或脚本语言表达的代码。可执行代码包含二进制代码、机器代码、字节代码、定义集成电路的代码(例如硬件描述语言或网表),以及用例如c、java或opencl等编程语言码表达的代码。可执行代码可以是例如任何种类的软件、固件、脚本、模块或库,时在虚拟机或其他软件环境中被适时地执行、处理、解释、编译、运行时,这些软件、固件、脚本、模块或库使支持可执行代码的计算机系统的处理器执行由所述代码指定的任务。
[0168]
处理器、计算机或计算机系统可以是任何种类的装置、机器或专用电路,或其集合或一部分,它具有处理能力使得可以执行指令。处理器可以是或包括任何种类的通用或专用处理器,诸如cpu、gpu、nna、片上系统、状态机、媒体处理器、专用集成电路(asic)、可编程逻辑阵列、现场可编程门阵列(fpga)等。计算机或计算机系统可包括一个或多个处理器。
[0169]
本发明还意图涵盖限定如本文中所描述的硬件的配置的软件,例如硬件描述语言(hdl)软件,用于设计集成电路或用于配置可编程芯片以执行所要功能。也就是说,可以提供一种计算机可读存储介质,在其上以集成电路定义数据集的形式编码有计算机可读程序代码,时该计算机可读程序代码在集成电路制造系统中被处理(即,运行)时,将系统配置为制造如本文所述的固定逻辑电路。集成电路定义数据集可以是例如集成电路描述。
[0170]
因此,可以提供一种在集成电路制造系统处制造如本文所述的固定逻辑电路的方法。此外,可以提供一种集成电路定义数据集,时其在集成电路制造系统中处理时,使得制造固定逻辑电路的方法被执行。
[0171]
集成电路定义数据集可以是计算机代码的形式,例如作为网表,用于配置可编程芯片的代码,作为定义适合于在集成电路中以任何级别制造的硬件描述语言,包括作为寄存器传输级(rtl)代码,作为高级电路表示法(诸如verilog或vhdl),以及作为低级电路表示法(诸如oasis(rtm)和gdsii)。在逻辑上定义适合于在集成电路中制造的硬件的更高级表示法(诸如rtl)可以在计算机系统上处理,所述计算机系统被配置用于在软件环境的上下文中生成集成电路的制造定义,所述软件环境包括电路元件的定义和用于组合这些元件以便生成由所述表示法定义的集成电路的制造定义的规则。如通常软件在计算机系统处执行以便定义机器的情况一样,可能需要一个或多个中间用户步骤(例如,提供命令、变量
等),以便将计算机系统配置为生成集成电路的制造定义,以执行定义集成电路以便生成所述集成电路的制造定义的代码。
[0172]
固定逻辑电路的计算机可读描述可以是如本文所述的固定逻辑电路的硬件表示。
[0173]
现在将参考图7来描述在集成电路制造系统中处理集成电路定义数据集以便将系统配置为制造固定逻辑电路的示例。
[0174]
图7示出了被配置为制造如本文中的任一个示例中所述的固定逻辑电路的集成电路(ic)制造系统1002的示例。特别地,ic制造系统1002包括布局处理系统1004和集成电路生成系统1006。ic制造系统1002被配置为接收ic定义数据集(例如,定义如本文中的任一个示例中所述的固定逻辑电路)、处理ic定义数据集,并且根据ic定义数据集生成ic(例如,其包括如本文中的任一个示例中所述的固定逻辑电路)。对ic定义数据集的处理将ic制造系统1002配置为制造包括如本文中的任一个示例中所述的固定逻辑电路的集成电路。
[0175]
布局处理系统1004被配置为接收和处理ic定义数据集以确定电路布局。根据ic定义数据集确定电路布局的方法在本领域中是已知的,并且例如可以涉及合成rtl代码以确定待生成的电路的门级表示,例如就逻辑部件(例如,nand、nor、and、or、mux和flip-flop部件)而言。通过确定逻辑部件的位置信息,可以根据电路的门级表示来确定电路布局。这可以自动完成或者在用户参与下完成,以便优化电路布局。时布局处理系统1004已经确定电路布局时,其可将电路布局定义输出到ic生成系统1006。电路布局定义可以是例如电路布局描述。
[0176]
如本领域中已知的,ic生成系统1006根据电路布局定义来生成ic。例如,ic生成系统1006可实施生成ic的半导体装置制造工艺,该半导体装置制造工艺可涉及光刻和化学处理步骤的多步骤序列,在此期间,在由半导体材料制成的晶片上逐渐形成电子电路。电路布局定义可呈掩模的形式,掩模可在光刻工艺中用于根据电路定义来生成ic。替代地,提供给ic生成系统1006的电路布局定义可呈计算机可读代码的形式,ic生成系统1006可使用该计算机可读代码来形成用于生成ic的合适的掩模。
[0177]
由ic制造系统1002执行的不同过程可全部在一个位置例如由一方来实施。替代地,ic制造系统1002可以是分布式系统,使得一些过程可以在不同位置执行,并且可以由不同方来执行。例如,以下阶段中的一些可以在不同位置以及/或者由不同方来执行:(i)合成表示ic定义数据集的rtl代码,以形成待生成的电路的门级表示;(ii)基于门级表示来生成电路布局;(iii)根据电路布局来形成掩模;以及(iv)使用掩模来制造集成电路。
[0178]
在其他示例中,通过在集成电路制造系统处对集成电路定义数据集的处理,可以将该系统配置为制造固定逻辑电路,而无需对ic定义数据集进行处理以便确定电路布局。举例来说,集成电路定义数据集可以定义例如fpga的可重新配置的处理器的配置,并且对所述数据集进行的处理可以将ic制造系统配置成(例如,通过将配置数据加载到fpga)生成具有所述定义的配置的可重新配置的处理器。
[0179]
在一些实施例中,时在集成电路制造系统中处理时,集成电路制造定义数据集可以使集成电路制造系统生成如本文中描述的装置。例如,通过集成电路制造定义数据集以上文参考图7描述的方式对集成电路制造系统进行配置,可以制造出如本文描述的设备。
[0180]
在一些示例中,集成电路定义数据集可以包括在数据集处定义的硬件上运行的软件,或者与在数据集处定义的硬件组合运行的软件。在图7所示的示例中,ic产生系统可以
由集成电路定义数据集进一步配置为在制造集成电路时根据在集成电路定义数据集处限定的程序代码将固件加载到所述集成电路上,或者以其它方式向集成电路提供与集成电路一起使用的程序代码。
[0181]
与已知的实现方式相比,在本技术中阐述的概念在装置、设备、模块和/或系统中(以及在本文中实现的方法中)的实现方式可以引起性能改进。性能改进可以包含计算性能提高、延迟减少、处理量增大和/或功耗降低中的一个或多个。在制造此类装置、设备、模块和系统(例如,在集成电路中)期间,可以在性能改进与物理实施方式之间进行权衡,从而改进制造方法。例如,可以在性能改进与布局面积之间进行权衡,从而匹配已知实施方式的性能,但使用更少的硅。例如,这可以通过以串行方式重复使用功能块或在装置、设备、模块和/或系统的元件之间共享功能块来完成。相反,在本技术中阐述的引起装置、设备、模块和系统的物理实施方式的改进(诸如硅面积减小)的概念可以针对性能提高进行折中。例如,这可以通过在预定义面积预算内制造模块的多个示例来完成。
[0182]
申请人据此独立地公开了本文中所描述的每个单独的特征以及两个或更多个此类特征的任意组合,到达的程度使得此类特征或组合能够根据本领域的技术人员的普通常识基于本说明书整体来实行,而不管此类特征或特征的组合是否解决本文中所公开的任何问题。鉴于前文描述,本领域的技术人员将清楚,可以在本发明的范围内进行各种修改。

技术特征:


1.一种固定逻辑电路,其被配置为执行乘法运算a*x,其中a是整数常量,x是在0至2
m-1范围内的整数变量,并且m是正整数,所述固定逻辑电路包括:除法逻辑,其被配置为确定以下除法运算的结果的预定数量的一个或多个最高有效位:其中q、i被选择成使得:乘法逻辑,其被配置为确定所述乘法运算a*x的结果的预定数量的一个或多个最低有效位;以及输出逻辑,其被配置为将所述除法运算的所述结果的所述预定数量的一个或多个最高有效位与所述乘法运算的所述结果的所述预定数量的一个或多个最低有效位组合,以便提供所述乘法运算a*x的输出。2.根据权利要求1所述的固定逻辑电路,其中所述输出逻辑被配置为提供所述除法运算的所述结果的所述预定的一个或多个最高有效位作为所述乘法运算的相应的一个或多个最高有效位。3.根据权利要求1所述的固定逻辑电路,其中所述除法运算的所述结果的所述一个或多个最高有效位是包括所述结果的最高有效位的连续集合。4.根据权利要求1所述的固定逻辑电路,其中所述乘法运算的所述输出提供完全表示所述乘法运算a*x的直到基数点的整数输出所需的所有所述位。5.根据权利要求1所述的固定逻辑电路,其中所述乘法逻辑被配置为提供所述乘法运算的所述输出中并非由所述除法逻辑提供的所有所述位。6.根据权利要求1所述的固定逻辑电路,其中所述乘法运算的所述预定数量的一个或多个最低有效位大于所述除法运算的所述结果的所述预定数量的一个或多个最高有效位。7.根据权利要求1所述的固定逻辑电路,其中i被选择为满足下式的最小正值:使得:8.根据权利要求1所述的固定逻辑电路,其中所述除法逻辑被配置为执行迭代除法。9.根据权利要求8所述的固定逻辑电路,其中由所述除法逻辑执行的每次迭代被配置为提供所述乘法运算的所述输出的从所述最高有效位开始的一个或多个连续最高有效位。10.根据权利要求8所述的固定逻辑电路,其中所述除法逻辑被配置为使用二进制位置数字系统,并且在每次迭代时提供所述乘法运算的单个位,或者所述除法逻辑被配置为使用除二进制位置数字系统之外的位置数字系统,以便在每次迭代时提供所述乘法运算的所述输出的预定义的多个位。
11.一种获得被配置为执行乘法运算a*x的固定逻辑电路的硬件表示的方法,其中a是预定义的整数常量,x是在0至2
m-1范围内的整数变量,并且m是正整数,所述方法包括:选择q、i使得:形成除法逻辑的硬件表示,所述除法逻辑被配置为确定以下除法运算的结果的一个或多个最高有效位:形成乘法逻辑的硬件表示,所述乘法逻辑被配置为确定所述乘法运算a*x的结果的一个或多个最低有效位;以及将所述除法逻辑的所述硬件表示和所述乘法逻辑的所述硬件表示组合,以便获得被配置为提供所述乘法运算a*x的输出的固定逻辑电路的硬件表示。12.根据权利要求11所述的方法,其中将所述除法逻辑的所述硬件表示和所述乘法逻辑的所述硬件表示组合包括配置所述硬件表示,以提供所述除法运算的所述结果的所述一个或多个最高有效位作为所述乘法运算a*x的所述相应的一个或多个最高有效位。13.根据权利要求11所述的方法,其中形成除法逻辑的硬件表示、形成乘法逻辑的硬件表示以及将所述除法逻辑的所述硬件表示和所述乘法逻辑的所述硬件表示组合中的一者或多者一起执行。14.根据权利要求11所述的方法,其中所述形成除法逻辑的硬件表示和所述形成乘法逻辑的硬件表示包括配置所述除法逻辑以提供所述乘法运算的所述输出的r个最高有效位,以及配置所述乘法逻辑以提供所述乘法运算的所述输出的s个最低有效位,其中r、s被选择以便最小化由所述固定逻辑电路的所述硬件表示所表示的所述固定逻辑电路的尺寸和延迟中的一者或两者。15.根据权利要求11所述的方法,其中r+s=t,即完全表示所述乘法运算a*x的直到基数点的所述整数输出所需的位数。16.一种根据权利要求11所述的方法生成的固定逻辑电路。17.一种计算机可读存储介质,所述计算机可读存储介质上编码有使得该计算机系统,时在计算机系统上执行该计算机可读代码时,计算机可读代码执行权利要求11所述的方法。18.一种使用集成电路制造系统来制造根据权利要求1所述的固定逻辑电路的方法,所述方法包括:使用布局处理系统来处理所述固定逻辑电路的计算机可读描述,以便生成包括所述固定逻辑电路的集成电路的电路布局描述;以及使用集成电路生成系统,根据所述电路布局描述来制造所述固定逻辑电路。19.一种计算机可读存储介质,在其上存储有根据权利要求1所述的固定逻辑电路的计算机可读描述,时所述计算机可读描述在集成电路制造系统中处理时,使得所述集成电路制造系统:
使用布局处理系统来处理所述固定逻辑电路的所述计算机可读描述,以便生成包括所述固定逻辑电路的集成电路的电路布局描述;以及使用集成电路生成系统,根据所述电路布局描述来制造所述图形处理系统。20.一种集成电路制造系统,包括:计算机可读存储介质,在其上存储有根据权利要求1所述的固定逻辑电路的计算机可读描述;布局处理系统,其被配置为处理所述计算机可读描述以便生成包括所述固定逻辑电路的集成电路的电路布局描述;以及集成电路生成系统,其被配置为根据所述电路布局描述来制造所述固定逻辑电路。

技术总结


本发明涉及用于执行乘法的混合固定逻辑。所述固定逻辑电路,其被配置为执行乘法运算a*x,其中a是整数常量,x是在0至2


技术研发人员:

T

受保护的技术使用者:

想象技术有限公司

技术研发日:

2022.06.28

技术公布日:

2022/12/29

本文发布于:2024-09-20 19:41:30,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/49717.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:逻辑   除法   所述   乘法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议