通过除法进行常数乘法的制作方法



1.本发明涉及通过除法进行常数乘法。


背景技术:



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


技术实现要素:



5.提供本发明内容是为了以简化的形式介绍下文在具体实施方式中进一步描述的一系列概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
6.提供一种固定逻辑电路,其被配置成确定乘法运算a*x的最高有效位中的一个或多个最高有效位,其中a为整数常数,x为在0至2
m-1的范围内的整数变量,并且m为正整数,所述固定逻辑电路包括:
7.除法逻辑,其被配置成确定除法运算的结果的一个或多个最高有效位的预定数目:
[0008][0009]
其中i是满足下式的最小正值:
[0010][0011]
并且:
[0012]
以及
[0013]
输出逻辑,其被配置成提供所述除法运算的所述结果的所述一个或多个最高有效位作为所述乘法运算a*x的相应的一个或多个最高有效位。
[0014]
乘法运算的最高有效位中的一个或多个最高有效位可为包括最高有效位的连续集合。
[0015]
除法运算的结果的一个或多个最高有效位可以是包括该结果的最高有效位的连续集合。
[0016]
除法逻辑可以被配置成执行迭代除法。
[0017]
除法逻辑所执行的每次迭代可被配置成提供乘法运算的从所述最高有效位开始的一个或多个连续的最高有效位。
[0018]
除法逻辑可以被配置成使用二进制位置数字系统,并且在每次迭代时提供乘法运算的单个位。
[0019]
除法逻辑可以被配置成使用除二进制位置数字系统之外的位置数字系统,以便在每次迭代时提供乘法运算的预定的多个位。
[0020]
位置数字系统可以是radix 4、radix 8或radix 16中的一者。
[0021]
除法逻辑可以包括被布置来执行迭代除法的全减法器和/或半减法器和比较器的阵列。
[0022]
除法逻辑可以被配置成计算少于完全表示除法运算的整数输出直到小数点所需的位数。
[0023]
除法运算的结果的一个或多个最高有效位的预定数目可以少于完全表示除法运算的整数输出直到小数点所需的位数。
[0024]
除法逻辑可以被配置成根据恢复、不执行恢复、不恢复或srt除法算法来执行除法。
[0025]
固定逻辑电路可以进一步包括乘法逻辑,其被配置成确定乘法运算a*x的结果的一个或多个最低有效位的预定数目;并且输出逻辑可以被配置成将除法运算的结果的一个或多个最高有效位的预定数目与乘法运算的结果的一个或多个最低有效位的预定数目组合,以便为乘法运算a*x提供输出。
[0026]
提供了一种包括固定逻辑电路的集成电路。
[0027]
提供了一种导出固定逻辑电路的硬件表示的方法,所述固定逻辑电路被配置成确定乘法运算a*x的最高有效位中的一个或多个最高有效位,其中a是预定的常数整数,x是在0至2
m-1的范围内的整数变量,并且m是正整数,所述方法包括:
[0028]
标识满足下式的i的最小正值:
[0029][0030]
使用所述i的最小正值,导出被配置成确定除法运算的结果的一个或多个最高有效位的固定逻辑电路的硬件表示:
[0031][0032]
其中
[0033][0034]
以及
[0035]
配置所述硬件表示以提供所述除法运算的所述结果的所述一个或多个最高有效位作为所述乘法运算a*x的相应的一个或多个最高有效位。
[0036]
提供了一种根据所述方法生成的固定逻辑电路。提供了计算机可读代码,所述计算机可读代码被配置成在其运行时使所述方法被执行。提供了一种计算机可读存储介质,
所述计算机可读存储介质上编码有所述计算机可读代码。
[0037]
提供了一种使用集成电路制造系统制造所述固定逻辑电路的方法。
[0038]
提供了一种使用集成电路制造系统制造所述固定逻辑电路的方法,所述方法包括:
[0039]
使用布局处理系统来处理所述固定逻辑电路的计算机可读描述,以便生成体现所述固定逻辑电路的集成电路的电路布局描述;以及
[0040]
使用集成电路生成系统,根据所述电路布局描述来制造所述固定逻辑电路。
[0041]
提供了一种集成电路定义数据集,其当在集成电路制造系统中被处理时配置集成电路制造系统以制造固定逻辑电路。
[0042]
提供了一种计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有固定逻辑电路的计算机可读描述,所述计算机可读描述当在集成电路制造系统中处理时,使集成电路制造系统制造体现固定逻辑电路的集成电路。
[0043]
提供一种计算机可读存储介质,所述计算机可读存储介质上存储有固定逻辑电路的计算机可读描述,所述计算机可读描述当在集成电路制造系统中被处理时使集成电路制造系统:
[0044]
使用布局处理系统来处理所述固定逻辑电路的所述计算机可读描述,以便生成体现所述固定逻辑电路的集成电路的电路布局描述;以及
[0045]
使用集成电路生成系统,根据所述电路布局描述来制造所述固定逻辑电路。
[0046]
提供了一种被配置成制造固定逻辑电路的集成电路制造系统。
[0047]
提供一种集成电路制造系统,其包括:
[0048]
非暂时性计算机可读存储介质,所述计算机可读存储介质上存储有所述固定逻辑电路的计算机可读描述;
[0049]
布局处理系统,其被配置成处理所述计算机可读描述以便生成体现所述固定逻辑电路的集成电路的电路布局描述;集成电路生成系统,其被配置成根据所述电路布局描述来制造固定逻辑电路。
[0050]
如对本领域技术人员显而易见的,上述特征可以适当地组合,并且可以与本文所述的示例的任何方面组合。
附图说明
[0051]
现在将参考附图详细描述示例,在附图中:
[0052]
图1是根据本文所述原理配置的固定逻辑电路的示意图,该固定逻辑电路用于计算乘常数运算的r个最高有效值。
[0053]
图2是二进制除法运算的示意图。
[0054]
图3是根据本文所述原理配置的固定逻辑电路的示意图,该固定逻辑电路通过执行除法运算和乘法运算来计算乘常数运算。
[0055]
图4示出通过除法实施乘法以产生乘法运算的前r个最高有效位的优点。
[0056]
图5是示出根据本文所述原理的导出固定逻辑电路的方法的流程图。
[0057]
图6是示出根据本文所述原理的导出固定逻辑电路的方法的流程图。
[0058]
图7是集成电路制造系统的示意图。
[0059]
附图示出了各种示例。技术人员将理解,附图中所示的元件边界(例如,框、框的组,或其他形状)表示边界的一个示例。在一些示例中,情况可能是一个元件可以被设计为多个元件,或者多个元件可以被设计为一个元件。在适当的情况下,贯穿各附图使用共同的附图标记来指示类似的特征。
具体实施方式
[0060]
通过示例的方式给出以下描述,以使本领域的技术人员能够制造和使用本发明。本发明不限于本文描述的实施方案,并且对所公开的实施方案的各种修改对于本领域的技术人员将是显而易见的。
[0061]
现在仅通过示例的方式来描述实施方案。
[0062]
对于相等量值的值,用于执行除法的固定逻辑通常比用于执行乘法的固定逻辑慢且大。例如,在固定逻辑电路中实施运算通常比被配置成对常数p和q执行运算p*q的固定逻辑电路更慢且更大。发明人已经认识到,尽管如此,在硬件中将输入值乘以常数的运算实施为除法运算可为有利的。通过以本文描述的方式标识合适的除法运算,被配置成执行除法运算的固定硬件可比被配置成执行乘法运算的固定硬件更快地和/或在更小的电路中提供乘法运算的最高有效位中的一个或多个最高有效位。
[0063]
输入变量x与常数整数a的相乘可以由常数整数q的等效除法运算表示如下:
[0064][0065]2i
的引入确保了存在对上述等式的解,其中q是整数。在二进制逻辑中,与2i相乘表示左移i个位。有利地,如下所述,选择i的值以便最小化q的大小,从而最小化实施除法运算的固定逻辑硬件的大小。
[0066]
图1中示出了用于执行上述等式(1)的除常数整数除法的固定逻辑电路100。固定逻辑电路包括除法逻辑101,其被配置成至少部分地执行等式(1)的除法运算,以便提供除法运算的结果的r个最高有效位。固定逻辑电路还可以包括累加器102(例如,一组硬件寄存器),用于存储在除法逻辑处执行的除法运算的输出。除法逻辑被配置成执行迭代除法(即,“慢”或“长”除法),这在每次迭代时提供除法运算的输出的一个或多个位。这种除法的本质是除法运算的输出从其最高有效位开始提供。对于被配置成使用radix 2(二进制)数字系统执行除法的除法逻辑,每次迭代提供除法运算的输出的单个位。
[0067]
除法逻辑101被配置成执行除法运算与2i相乘表示与i个位的左移。不需要逻辑来实现固定值的移位,这可以通过固定逻辑100处的适当硬布线来执行,以将除法逻辑处计算的二进制数向左移位i个位。类似地,不需要逻辑来实施等式(1)的向下取整运算,这可以通过在小数点处截断除法逻辑的输出来实现。实际上,除法逻辑101可以被配置成计算除法运算的结果的r个最高有效位,使得这些位不表示超出小数点的结果。通常,除法逻辑将被配置成计算少于完全表示除法运算的整数输出直到小数点所需的位数。例如,如果由等式(1)表示的全除法运算的整数输出是t个位,则由除法逻辑计算的r个位可以满足r<t。为了使除法逻辑101提供t位输出,可以推断出在除法逻辑中未计算的最低有效输出位,例如,通过将最低有效位设置为零,这可以在没有逻辑的情况下通过固定逻辑100处的适当硬布
线来实现。
[0068]
注意,并非所有表示左移2i的零的串都需要在硬件中实现:在硬件中仅需要存在/暗示足够数目的零,使得可以计算输出的前r个最高有效位。
[0069]
除法逻辑101可以被配置成根据任何适当的算法来计算等式(1)中表示的除法运算的前r个最有效位。例如,除法逻辑可以被配置成执行恢复、不执行恢复、不恢复或srt除法。用于执行这种除法算法的固定逻辑电路在本领域中是公知的。
[0070]
除法逻辑101可以包括被配置成执行除法运算的除法阵列。这种除法阵列可以包括多个减法器和比较器,其被布置为根据在设计时选择的除法算法来计算在等式(1)中表示的除法运算的前r个最有效位。可以设想,在设计时,采用缩减方案来尽可能减小除法阵列的大小。
[0071]
除法逻辑被配置成根据本文所述的原理执行输入变量x除以在设计时预定的常数除数q的除法。
[0072]
图2示意性地示出了在二进制实现中由除法逻辑执行的“长”除法和移位运算200。该图表示由除法逻辑执行的功能,但是应当理解,在固定逻辑电路处执行的特定运算将取决于所使用的特定除法算法和实施该算法的特定逻辑电路。
[0073]
在图2中,输入变量x201左移i个位,其由值为0的i个位的集合203表示。众所周知,在二进制实现中除以除数q202的除法可以以迭代方式执行。在第一次迭代中,在适当的位位置处从输入变量201中减去除数202。在随后的迭代中,在适当的位位置从在前一迭代中形成的余数中减去除数202。减法可由适当的减法器逻辑在硬件中执行。如本领域对于这种“长”除法算法所知的,可以通过对除数q的大小于被除数x的大小进行比较来确定在每次迭代中减去除数202的适当位位置。这种比较可以由适当的比较器逻辑在硬件中执行。
[0074]
在每次迭代中,从最高有效位开始生成除法运算的输出位。在该二进制示例中,除法逻辑被配置成执行r次迭代,直到生成前r个最有效输出位204。当产生每一位时,其可存储在累加器104处。
[0075]
可以设想,除法逻辑101可以使用除radix 2(二进制)之外的位置数字系统,以便每次迭代提供多于一个输出位。例如,radix 4实现可以一次提供2位,radix 8(八进制)实现可以一次提供3位,并且radix 16(十六进制)实现可以一次提供4位。配置除法逻辑以使用位置数字系统是有利的,该系统在单次迭代中提供r个最高有效位的所需数目。这提供了大而快速的硬件实现。如本领域所公知的,使用位置数字系统而不是radix 2的除法仍然可以使用固定逻辑电路来实现。除法逻辑101可以是固定逻辑电路。
[0076]
为了最小化除法逻辑101的固定逻辑实现的复杂性、等待时间和大小,有利的是,在至少部分地由除法逻辑执行的等式(1)的乘法运算a*x中,选择在x的整个范围上满足等式(1)的q的最小值。现在将针对给定的常数整数和无符号m位变量输入x∈[0,2
m-1](其中)来标识q的该最优值。在a是2的整数幂的情况下,不需要使用本技术,因为它表示二进制逻辑中的位移位,因此可以在硬件中很平常地执行,而不使用这里描述的除法逻辑。因此,我们排除a是2的正整数幂的可能性。
[0077]
上面的等式(1)表明:
[0078]
[0079]
为了最小化除法逻辑101的固定逻辑实现的复杂度、等待时间和大小,我们需要标识最小的使得在x的整个范围上对于等式(1)存在常数
[0080]
等式(1)可以重新表述为:
[0081][0082]
这是因为
[0083][0084]
因此
[0085][0086]
这意味着位于整数a*x和a*x+1之间。
[0087]
从等式(2)中去掉a*x并进行因子分解得到:
[0088][0089]
这两个不等式对于x∈[0,2
m-1]的所有值都是最适用的。首先考虑较低的不等式:
[0090][0091]
对于x=0,这对于任何值都是平常地满足的,但是对于x>0的其它值,我们可以除以x,以给出:
[0092][0093]
等式(3)的等式意味着a*q=2i,其意味着两个a,q都是2的正幂。但是a不限于2的正幂,因此:
[0094][0095][0096]
观察第二个不等式,现可知
[0097][0098]
绘制将给出具有正梯度的直线,因此其最大值是x为其最大值2
m-1时的值。在这种情况下,如果该值低于1,则对于x∈[0,2
m-1]的所有值,等式将为真。
[0099]
因此,等式(5)给出:
[0100][0101][0102]
将不等式(4)和(6)组合给出了开放区间,其中将到
[0103][0104]

[0105]
对于的给定值,最接近而仍然为真的q的正整数值为:
[0106][0107]
这是因为:
[0108][0109]
下一个整数是:
[0110][0111]
因为
[0112][0113]
因此q的值为:
[0114][0115]
这可以如下建立。考虑位于区间中的从i=0,1,2,..开始的的正整数倍。不存在i=0的情况,因为包含在区间(0,1)中,原因是a>1和a2(2
m-1)+a>a。
[0116]
到i的第一值,使得存在正整数倍(无论区间多小,i的该值总是存在,因为这些值以可以任意小的宽度的区间均匀地覆盖数线)。该整数将是唯一且奇数的,因此将是等式(8)的
[0117]
被定义为i
min
,的i的最小值,给出的最小值。这是q可以采用的最小值。
[0118]
为了在以上等式(7)中到i
min
并设置
[0119][0120]
从向下取整函数的定义得出:
[0121][0122]
因此
[0123][0124][0125][0126][0127][0128]
i:=i
min
的最小正值是满足等式(9)的i的值。q的最小正值则由下式给出:
[0129][0130]
q的该值确保了所有整数输入x∈[0,2
m-1]的对于绝大多数情况,因此q是具有中的整数位宽的无符号整数。
[0131]
为了计算乘法运算a*x的前r个最高有效位,除法逻辑101被配置成计算除法运算的前r个最高有效位。为了最小化除法逻辑的固定逻辑实现的复杂度、等待时间和大小,选择i=i
min
和是有利的。如上所述,除法逻辑被配置成执行迭代除法,其中执行足够数量的迭代以提供所需的前r个最有效位。优选地,除法逻辑不被配置成提供多于r个的最高有效位。这最小化了固定逻辑实现的复杂度、等待时间和大小。
[0132]
在一些实施方式中,除法逻辑101将被配置成仅提供最高有效位(r=1)。在一些实施方式中,除法逻辑101将被配置成提供等式(1)中所表示的除法运算的所有位,但此类实施例通常比被配置成直接执行乘法运算a*x的常规固定逻辑更大且更慢。
[0133]
在一些实施方式中,可一起提供除法及乘法固定逻辑以计算乘法运算a*x的完整输出。图3示出了固定逻辑电路300,其包括固定逻辑303和乘法器逻辑302,所述固定逻辑包括根据本文所述原理配置的除法逻辑301,以便生成乘法a*x的前r个最高有效位,所述乘法器逻辑配置成生成乘法a*x的剩余最低有效位。除法和乘法逻辑可以将它们的输出提供给输出逻辑304(例如,累加器或寄存器,用于存储输出位,并将前r个最有效位与剩余的最低
有效位级联)。
[0134]
对于位长为t个位的输出,乘法器逻辑可以生成t-r个最低有效位。这种方法可以提供用于计算a*x的非常快速(虽然通常很大)的固定逻辑电路。这是因为除法逻辑从最高有效位开始产生输出的位,而乘法器逻辑从最低有效位开始产生输出的位。由于除法逻辑和乘法器逻辑都不生成a*x的结果的全部t个位,因此固定逻辑电路与除法逻辑和乘法器逻辑中最慢的一样快,以生成其输出部分。
[0135]
乘法器逻辑被配置成执行输入变量x与整数常数a的乘法,使得首先提供输出的最低有效位。用于执行这种乘法运算的固定逻辑在本领域中是公知的。乘法器逻辑固定逻辑电路可以包括乘法器阵列,该乘法器阵列具有被布置为计算乘法运算的前t-r个最低有效位的多个全加法器和/或半加法器。可以设想,在设计时,可以采用减小方案来尽可能地减小乘法器阵列的大小。
[0136]
通常,对于给定的输出位长度,乘法器逻辑比除法逻辑更快且更小。因此,乘法器逻辑302产生比除法逻辑301更多的位数是有利的。可以在设计时优化由除法和乘法器逻辑中的每一个计算的输出位的比例,以便最小化固定逻辑电路300的等待时间和/或芯片面积。
[0137]
图4示出了使用根据本文所述原理配置的除法逻辑来生成乘法运算1431655765*x的前r个最高有效位的优点。图4中的曲线的底部轴表示以ns为单位的延迟,并且左侧轴表示以平方微米为单位的面积。该曲线示出了一系列线,其比较了使用16nm乘法器阵列与使用被配置成执行常数迭代除法以计算常数乘法运算结果的前1、2、3、4和8个最高有效位的16nm除法逻辑来执行常数乘法运算的大小和速度。对长度为32位的输入变量x和常数a=1431655765执行常数乘法运算,使得i
min
=64的值和输出的长度为63位。
[0138]
在曲线中的关键连接点中标记为“乘法”线的线表示由乘法器逻辑设计消耗的运算延迟和面积,乘法器逻辑设计由用于计算常数乘法运算a*x的r个最高有效位的常规逻辑合成软件产生。在表示运算延迟和面积的曲线中的关键连接点中标识的“除法”线,由这里描述的除法逻辑设计消耗,用于计算常数乘法运算a*x的前r个最有效位。每一行的r值在图中的关键字中标识。
[0139]
从该曲线可以看出,使用这里教导的除法逻辑实现的逻辑设计在消耗的集成电路的面积方面基本上更快且更小。这是高达大约8的r值的情况,并且对于足够大的延迟,除法逻辑可以小于甚至高达大约r=14的等效乘法逻辑。当需要更大数目的最高有效位时,使用常规乘法器逻辑来计算1431655765*x的r个最高有效位更快且需要更少的电路面积。
[0140]
ic设计方法
[0141]
这里描述的除法逻辑的固定逻辑硬件实现可以由适当的软件确定。通常,最初使用软件(例如设计编译器)来设计集成电路,所述软件产生所需集成电路的逻辑抽象。这种抽象通常被称为寄存器传输级或rtl。一旦集成电路的逻辑运算已经被定义,这可以由综合软件(例如,ic编译器)使用以创建物理集成电路的表示。这种表示可以用高级硬件描述语言,例如verilog或vhdl来定义,并且最终根据集成电路的门级描述来定义。
[0142]
用于执行除常数的除法的逻辑可以在设计时容易地引入集成电路中。然而,用于设计集成电路的设计软件几乎总是使用用于执行一般除法的逻辑,即用于执行除以由运行
时间指定的除数的除法的逻辑,来提供功能。这种逻辑是复杂的并且消耗集成电路的相当大的面积。因此,在需要用于执行乘以常数分数的乘法的逻辑的情况下,配置设计软件以使用优化用于计算除以常数的除法前r个位的逻辑是有利的,其中i,q可以取这里标识的最小i值和q值。
[0143]
如果用于设计集成电路的软件被配置成在需要实现用于计算乘常数运算的前r个最高有效位的固定逻辑时,根据本文所述的设计原理将运算实施为除常数的除法。这可以通过引入到定义除常数的除法的集成电路设计rtl中来实现,其中i和q的值可以采用它们的最小值,如这里所教导的。可以在执行设计软件的数据处理设备(例如工作站或服务器)处根据设计软件中包含的规则来实现集成电路的设计。
[0144]
在图5的流程图中示出了根据这里阐述的原理导出固定逻辑电路的硬件表示的方法。在501,接收乘常数运算a*x,其中a是预定的常数整数,并且x是在0至2
m-1的范围内的整数变量(其中m是正整数)。在502,标识i的最小正值,其满足:
[0145][0146]
在503,然后使用i的结果值来计算以下相应值:
[0147][0148]
在504,i和q的值然后被用于导出固定逻辑电路的硬件表示,该固定逻辑电路被配置成确定除法运算的结果的一个或多个最高有效位的预定数目:
[0149][0150]
在505,硬件表示被配置成提供除法运算的结果的预定的r个最有效位作为乘法运算a*x的相应的一个或多个最高有效位。
[0151]
图5的方法可以在程序代码中实现,例如rtl设计软件。例如,在软件的用户需要乘常数运算r个最有效位时,rtl设计软件可以被配置成使用定义除法逻辑的rtl来实施运算,以计算除法运算的前r个最高有效位:
[0152][0153]
其中i和q采用本文所述的值。
[0154]
图6的流程图中示出了一种导出固定逻辑电路的硬件表示的方法,该固定逻辑电路包括根据这里阐述的原理配置的除法逻辑和乘法器逻辑(例如,如图3所示)。这可以提供快速固定逻辑电路,用于计算乘法运算a*x的完整输出(例如,整数结果的t个位直到其小数点的完整集合)。
[0155]
在601,接收乘常数运算a*x,其中a是预定的常数整数,并且x是在0至2
m-1的范围内的整数变量(其中m是正整数)。然后,导出用于执行作为除法运算和乘法运算的组合的乘法运算的固定逻辑的硬件表示。
[0156]
在606,选择由除法和乘法器逻辑提供的位数r,s,如以下更详细讨论的。在602和603处导出除法逻辑的硬件表示。在602选择q,i的值以满足上面的等式(1)。例如,i可以取满足上述等式(9)的值,因此q可以取等式(10)中指定的值。q,i的选定值用于形成603除法逻辑的硬件表示,用于确定除法运算的r个最有效位:
[0157][0158]
通过上面的等式(1),该除法运算的r个最有效位也是要在固定逻辑电路中实现的乘法运算的r个最有效位。除法逻辑的硬件表示可以以上面关于图5描述的方式导出。
[0159]
在604处形成用于确定乘法运算的s个最低有效位的乘法逻辑的硬件表示。乘法逻辑的硬件表示可以以任何适当的方式导出,例如根据用于设计乘法逻辑的已知算法。乘法逻辑可以根据固定逻辑的期望属性(例如,硬件是否针对速度和/或大小进行优化)从乘法器设计库中选择。乘法逻辑可包括逻辑门阵列,例如and阵列或booth阵列。
[0160]
在605,组合除法逻辑和乘法逻辑的硬件表示,以便导出用于计算乘法运算a*x的结果的固定逻辑。在固定逻辑中,例如,由除法逻辑提供的r msb与由乘法逻辑提供的slsb组合,以便提供乘法运算a*x的结果的r+s=t个位(其中t是直到小数点的整数结果的位数)。注意,602、603、604和605中的一个或多个可以一起执行。在605,组合除法和乘法器逻辑可以包括在硬件表示中定义累加器或寄存器组,其被布置为接收由除法和乘法器逻辑提供的位,使得在使用中,累加器/寄存器提供乘法运算a*x的结果。
[0161]
在606,选择由除法和乘法器逻辑提供的位数r,s。在一些示例中,r,s可以是预定的(例如,由设计者指定用于实现图6的方法的芯片设计软件)。在图6所示的示例中,选择位数r,s以便优化固定逻辑电路,例如,可以选择位数r,s以便最小化固定逻辑的延迟和/或面积。除法逻辑通常比乘法逻辑慢,以产生给定数量的输出位。因此,配置除法逻辑以提供比乘法逻辑更少的位-即r<s,是有利的。可以执行优化(例如,通过对用于各种值r,s的逻辑的预期速度/面积进行建模)以标识r,s的值,该值最小化根据本文阐述的原理导出的固定逻辑电路的速度和延迟中的一个或两个。
[0162]
图6的方法可以在程序代码中实现,例如rtl设计软件。例如,在软件的用户需要乘常数运算r个最有效位时,rtl设计软件可以被配置成使用定义除法逻辑的rtl来实施运算,以计算除法运算的前r个最高有效位:
[0163][0164]
其中i和q采用本文所述的值。
[0165]
这里所指的硬件表示可以是寄存器传输级(rtl)表示、诸如verilog或vhdl的高级电路表示、或诸如oasis或gdsii的低级表示。可提供固定逻辑电路的硬件表示(通常作为较大规模芯片设计的一部分)以用于制造到集成电路中。例如,ic的低级表示可以直接提供给制造指定集成电路的加工厂,或者rtl可以提供给中间芯片设计者,该中间芯片设计者自己将从rtl设计ic的低级表示以提供给加工厂。
[0166]
图1至图3的固定逻辑被示出为包括多个功能块。这仅是示意性的,并不旨在限定此类实体的不同逻辑元件之间的严格划分。每个功能块可以任何合适的方式提供。应当理
解,本文所述的由固定逻辑形成的中间值不需要由固定逻辑在任何时间点物理地生成,并且可以仅表示方便地描述由固定逻辑在其输入与输出之间执行的处理的逻辑值。
[0167]
本文中所描述的固定逻辑可体现在集成电路上的硬件中。固定逻辑可以是固定逻辑电路。
[0168]
在此使用星号

*’符号来表示乘法。
[0169]
如本文中所使用的术语计算机程序代码和计算机可读指令是指供处理器执行的任何种类的可执行代码,包含以机器语言、解释语言或脚本语言表达的代码。可执行代码包含二进制代码、机器代码、字节代码、定义集成电路的代码(例如硬件描述语言或网表),以及用例如c、java或opencl等编程语言码表达的代码。可执行代码可以是例如任何种类的软件、固件、脚本、模块或库,当在虚拟机或其他软件环境中被适当地执行、处理、解释、编译、运行时,这些软件、固件、脚本、模块或库使支持可执行代码的计算机系统的处理器执行由所述代码指定的任务。
[0170]
处理器、计算机或计算机系统可以是任何种类的装置、机器或专用电路,或其集合或一部分,它具有处理能力使得可以执行指令。处理器可以是或包括任何种类的通用或专用处理器,诸如cpu、gpu、nna、片上系统、状态机、媒体处理器、专用集成电路(asic)、可编程逻辑阵列、现场可编程门阵列(fpga)等。计算机或计算机系统可包括一个或多个处理器。
[0171]
本发明还意图涵盖限定如本文中所描述的硬件的配置的软件,例如硬件描述语言(hdl)软件,用于设计集成电路或用于配置可编程芯片以执行所要功能。即,可以提供一种计算机可读存储介质,该计算机可读存储介质上编码有集成电路定义数据集形式的计算机可读程序代码,该计算机可读程序代码当在集成电路制造系统中处理(即,运行)时,配置该系统以制造如本文所述的固定逻辑电路。集成电路定义数据集可以是例如集成电路描述。
[0172]
因此,可以提供一种在集成电路制造系统处制造如本文所述的固定逻辑电路的方法。此外,可以提供一种集成电路定义数据集,该集成电路定义数据集在集成电路制造系统中处理时使制造固定逻辑电路的方法被执行。
[0173]
集成电路定义数据集可以是计算机代码的形式,例如作为网表,用于配置可编程芯片的代码,作为定义适合于在集成电路中以任何级别制造的硬件描述语言,包括作为寄存器传输级(rtl)代码,作为高级电路表示法(诸如verilog或vhdl),以及作为低级电路表示法(诸如oasis(rtm)和gdsii)。在逻辑上定义适合于在集成电路中制造的硬件的更高级表示法(诸如rtl)可以在计算机系统上处理,所述计算机系统被配置用于在软件环境的上下文中生成集成电路的制造定义,所述软件环境包括电路元件的定义和用于组合这些元件以便生成由所述表示法定义的集成电路的制造定义的规则。如通常软件在计算机系统处执行以便定义机器的情况一样,可能需要一个或多个中间用户步骤(例如,提供命令、变量等),以便将计算机系统配置为生成集成电路的制造定义,以执行定义集成电路以便生成所述集成电路的制造定义的代码。
[0174]
固定逻辑电路的计算机可读描述可以是如本文所述的固定逻辑电路的硬件表示。
[0175]
现将参考图7来描述在集成电路制造系统处处理集成电路定义数据集以便将系统配置为制造固定逻辑电路的实例。
[0176]
图7示出了配置为制造如本文中的任一个实例中所描述的固定逻辑电路的集成电路(ic)制造系统1002的实例。特别地,ic制造系统1002包括布局处理系统1004和集成电路
生成系统1006。ic制造系统1002被配置成接收ic定义数据集(例如,定义如本文中的任一个实例中所描述的固定逻辑电路),处理ic定义数据集,并根据ic定义数据集生成ic(例如,其体现如本文中的任一个实例中所描述的固定逻辑电路)。对ic定义数据集的处理将ic制造系统1002配置为制造体现如本文中的任一个实例中所描述的固定逻辑电路的集成电路。
[0177]
布局处理系统1004被配置成接收和处理ic定义数据集以确定电路布局。根据ic定义数据集确定电路布局的方法在本领域中是已知的,并且例如可以涉及合成rtl代码以确定待生成的电路的门级表示,例如就逻辑部件(例如,nand、nor、and、or、mux和flip-flop部件)而言。通过确定逻辑部件的位置信息,可以根据电路的门级表示来确定电路布局。这可以自动完成或者在用户参与下完成,以便优化电路布局。当布局处理系统1004已经确定电路布局时,其可将电路布局定义输出到ic生成系统1006。电路布局定义可以是例如电路布局描述。
[0178]
如本领域中已知的,ic生成系统1006根据电路布局定义来生成ic。例如,ic生成系统1006可实施生成ic的半导体装置制造工艺,该半导体装置制造工艺可涉及光刻和化学处理步骤的多步骤序列,在此期间,在由半导体材料制成的晶片上逐渐形成电子电路。电路布局定义可呈掩模的形式,掩模可在光刻工艺中用于根据电路定义来生成ic。替代地,提供给ic生成系统1006的电路布局定义可呈计算机可读代码的形式,ic生成系统1006可使用该计算机可读代码来形成用于生成ic的合适的掩模。
[0179]
由ic制造系统1002执行的不同过程可全部在一个位置例如由一方来实施。替代地,ic制造系统1002可以是分布式系统,使得一些过程可以在不同位置执行,并且可以由不同方来执行。例如,以下阶段中的一些可以在不同位置以及/或者由不同方来执行:(i)合成表示ic定义数据集的rtl代码,以形成待生成的电路的门级表示;(ii)基于门级表示来生成电路布局;(iii)根据电路布局来形成掩模;以及(iv)使用掩模来制造集成电路。
[0180]
在其他实例中,通过在集成电路制造系统处对集成电路定义数据集的处理,可将系统配置为制造固定逻辑电路,无需对ic定义数据集进行处理以便确定电路布局。举例来说,集成电路定义数据集可以定义例如fpga的可重新配置的处理器的配置,并且对所述数据集进行的处理可以将ic制造系统配置成(例如,通过将配置数据加载到fpga)生成具有所述定义的配置的可重新配置的处理器。
[0181]
在一些实施例中,当在集成电路制造系统中处理时,集成电路制造定义数据集可以使集成电路制造系统生成如本文中描述的装置。例如,通过集成电路制造定义数据集以上文参考图7描述的方式对集成电路制造系统进行配置,可以制造出如本文描述的设备。
[0182]
在一些示例中,集成电路定义数据集可以包括在数据集处定义的硬件上运行的软件,或者与在数据集处定义的硬件组合运行的软件。在图7所示的示例中,ic产生系统可以由集成电路定义数据集进一步配置为在制造集成电路时根据在集成电路定义数据集处限定的程序代码将固件加载到所述集成电路上,或者以其它方式向集成电路提供与集成电路一起使用的程序代码。
[0183]
与已知的实现方式相比,在本技术中阐述的概念在装置、设备、模块和/或系统中(以及在本文中实现的方法中)的实现方式可以引起性能改进。性能改进可以包含计算性能提高、延迟减少、处理量增大和/或功耗降低中的一个或多个。在制造此类装置、设备、模块和系统(例如,在集成电路中)期间,可以在性能改进与物理实施方式之间进行权衡,从而改
进制造方法。例如,可以在性能改进与布局面积之间进行权衡,从而匹配已知实施方式的性能,但使用更少的硅。例如,这可以通过以串行方式重复使用功能块或在装置、设备、模块和/或系统的元件之间共享功能块来完成。相反,在本技术中阐述的引起装置、设备、模块和系统的物理实施方式的改进(诸如硅面积减小)的概念可以针对性能提高进行折中。例如,这可以通过在预定面积预算内制造模块的多个示例来完成。
[0184]
申请人据此独立地公开了本文中所描述的每个单独的特征以及两个或更多个此类特征的任意组合,到达的程度使得此类特征或组合能够根据本领域的技术人员的普通常识基于本说明书整体来实行,而不管此类特征或特征的组合是否解决本文中所公开的任何问题。鉴于前文描述,本领域的技术人员将清楚,可以在本发明的范围内进行各种修改。

技术特征:


1的范围内的整数变量,并且m是正整数,所述方法包括:标识满足下式的i的最小正值:使用所述i的最小正值,导出被配置成确定除法运算的结果的一个或多个最高有效位的固定逻辑电路的硬件表示:其中以及配置所述硬件表示以提供所述除法运算的所述结果的所述一个或多个最高有效位作为所述乘法运算a*x的相应的一个或多个最高有效位。15.一种固定逻辑电路,所述固定逻辑电路由权利要求14所述的方法生成。16.一种计算机可读存储介质,所述计算机可读存储介质上编码有计算机可读代码,所述计算机可读代码被配置使得当该代码被运行时执行权利要求14所述的方法。17.一种使用集成电路制造系统来制造如权利要求1所述的固定逻辑电路的方法,所述方法包括:使用布局处理系统来处理所述固定逻辑电路的计算机可读描述,以便生成体现所述固定逻辑电路的集成电路的电路布局描述;以及使用集成电路生成系统,根据所述电路布局描述来制造所述固定逻辑电路。18.一种计算机可读存储介质,所述计算机可读存储介质上存储有如权利要求1所述的处理系统的计算机可读描述,所述计算机可读描述当在集成电路制造系统中被处理时使所述集成电路制造系统:使用布局处理系统来处理所述固定逻辑电路的所述计算机可读描述,以便生成体现所述固定逻辑电路的集成电路的电路布局描述;以及使用集成电路生成系统,根据所述电路布局描述来制造所述固定逻辑电路。19.一种集成电路制造系统,所述集成电路制造系统包括:计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有如权利要求1所述的固定逻辑电路的计算机可读描述;布局处理系统,其被配置成处理所述计算机可读描述以便生成体现所述固定逻辑电路的集成电路的电路布局描述;以及集成电路生成系统,其被配置成根据所述电路布局描述来制造固定逻辑电路。

技术总结


本发明涉及通过除法进行常数乘法。一种固定逻辑电路,其被配置成确定乘法运算a*x的最高有效位中的一个或多个最高有效位,其中a为整数常数,x为在0至2


技术研发人员:

T

受保护的技术使用者:

想象技术有限公司

技术研发日:

2022.06.28

技术公布日:

2022/12/29

本文发布于:2024-09-20 21:39:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/49515.html

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

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