在集成电路器件中实施浮点三角函数的制作方法

文档序号:15930902发布日期:2018-11-14 01:37阅读:291来源:国知局

本实施例涉及集成电路,更具体而言,涉及在集成电路器件中实施浮点三角函数。

背景技术

随着应用程序复杂性的增加,包括专用算术电路的情况变得更加普遍,有时将这些电路布置在集成电路中的专用处理块中。这样的专用处理块可以被部分或完全硬连线以执行一个或多个特定任务,例如逻辑或数学运算。专用处理块也可以包含一个或多个专用结构,例如可配置存储器元件的阵列。

通常在这种专用处理块中实施的结构的示例包括:乘法器、加法器、累加器、算术逻辑单元(alu)、桶形移位器、各种存储器元件或存储电路、逻辑and、逻辑nand、逻辑or、逻辑nor阵列等或其组合,各种存储器元件或存储电路例如是先进先出(fifo)电路、后进先出(lifo)电路、串进并出(sipo)移位寄存器电路、并入串出(piso)移位寄存器电路、随机存取存储器(ram)电路、只读存储器(rom)电路、内容可寻址存储器(cam)电路和寄存器文件。

有时也被称为数字信号处理(dsp)块的一种特别有用的专用处理块可以用于处理诸如视频信号、音频信号等的数字信号。这样的块通常也被称为乘法累加(mac)块,因为它们包括用于执行乘法运算以及对乘法运算的求和和/或累加的结构。

诸如可编程集成电路的集成电路常常包括专用处理块。那些专用处理块中的每个包括乘法器、加法器和寄存器,以及允许以不同方式配置块的各种部件的可编程连接器(例如,复用器)。

直到最近,这种专用处理块中的算术运算器(加法器和乘法器)一直仅仅是定点运算器。最近,已经向专用处理块中引入了实施浮点算术运算的电路,其有时与专用处理块外部的通用可编程逻辑相结合。

很多科学应用利用三角函数正弦(sin)、余弦(cos)和正切(tan)及其互反函数余割(csc)、正割(sec)和余切(cot)。三角函数一般是针对0-360度或0-2π弧度的相对较小的角度范围定义的。对于大于2π的角度值,三角函数的值是重复的。正切函数的特殊之处在于,它从区间[-π/2,π/2]的左侧和右侧重复该区间的函数。三角函数常常需要使用浮点数。

浮点三角函数是math.h编程库的一部分,并且可以用于所有主流编程语言中。

附图说明

图1示出了根据一些实施例的诸如可编程集成电路的例示性集成电路的示图。

图2是根据一些实施例的例示性二进制浮点数表示的示图。

图3是根据一些实施例的在–π/2和π/2之间的区间中的正切函数的例示性绘图的示图。

图4是根据一些实施例的例示性浮点正切运算器电路的示图。

图5是根据一些实施例的例示性二进制定点数表示的示图。

图6是根据一些实施例在浮点正切运算器电路中的例示性近似电路的示图。

图7是根据一些实施例的基于浮点数生成定点数的两部分的例示性提取电路的示图。

图8是根据一些实施例的基于浮点数生成定点数的一部分的例示性提取电路的示图。

图9是根据一些实施例在π/2之前的两个例示性最后位置单元(ulp)的示图。

图10是根据一些实施例在三个近似值之间进行选择的例示性浮点正切运算器电路的示图。

图11是根据一些实施例的用于在集成电路中计算浮点数的三角函数的例示性操作的流程图。

图12是根据一些实施例的磁性数据存储介质的截面图,其被编码有一组机器可执行指令,所述指令用于配置集成电路以执行第一和第二浮点数的算术运算。

图13是根据一些实施例的光学可读数据存储介质的截面图,其被编码有一组机器可执行指令,所述指令用于配置集成电路以执行第一和第二浮点数的算术运算。

具体实施方式

本文提供的当前实施例涉及集成电路,并且更具体而言,涉及在集成电路器件中实施浮点三角函数。

许多科学应用利用三角函数正弦(sin)、余弦(cos)和正切(tan)及其互反函数余割(csc)、正割(sec)和余切(cot)。三角函数经常需要使用浮点数,并且三角函数的很多硬件实施方式使用来自坐标旋转数字计算机(cordic)算法族的算法,该算法通过迭代近似来计算三角函数结果。

迭代实施方式消耗较少的资源,并且在处理器的浮点单元(fpu)中实施时是优选的。在以高吞吐量为目标的计算数据路径中经常遇到展开的实施方式,并且以多个深度算术结构为特征,每个级别都包含宽加法器。展开的实施方式可能需要大量的资源(例如,芯片面积)并且可能导致长的延迟(例如,由寄存器流水作业引起)。在资源受限时,一些展开的实施方式可能会遇到关闭定时方面的困难。

基于多项式近似的架构可以用于例如利用反函数来实施正弦、余弦和除法。然而,这些方法在利用运算器组件来实施正切运算时通常是浪费的,因为这涉及用除法运算器电路将正弦和余弦运算器电路耦合。

因此,可能期望在集成电路器件中提供消耗较少资源并且具有高吞吐量结合低延迟的正切运算器电路。

本领域技术人员应当认识到,可以在没有这些具体细节中的一些或全部的情况下实践本示例性实施例。在其它实例中,未详细描述公知的操作以免不必要地使实施例难以理解。

图1示出了根据一些实施例的诸如可编程集成电路100的例示性集成电路器件的示图。

可编程集成电路100可以具有输入输出电路102,其用于驱动信号离开可编程集成电路100并用于接收来自其它器件的信号。输入输出电路102可以包括常规输入输出电路、串行数据收发器电路、差分接收器和发射器电路或用于将一个集成电路连接到另一个集成电路的其它电路。

如所示,输入输出电路102可以位于可编程集成电路100的外围附近。如果希望的话,可编程集成电路100可以具有以不同方式布置的输入输出电路102。例如,输入输出电路102可以形成可以位于可编程集成电路上的任何位置(例如,在可编程集成电路的整个宽度上均匀分布)的输入输出电路的一个或多个列。如果希望的话,输入输出电路102可以形成一行或多行的输入输出元件(例如,在可编程集成电路的整个高度上分布)。替代地,输入输出电路102可以形成可以分布在可编程集成电路的表面之上或聚集在选定区域中的输入输出元件的岛。

竖直互连资源140和水平互连资源150(例如全局和局部竖直和水平导线和总线)可以用于在可编程集成电路100上路由信号。竖直和水平互连资源140和150包括导线和相应导线之间的可编程连接,并且因此有时被称为可编程互连、可配置互连或可配置互连电路。

可编程逻辑区域可以包括可编程部件,例如数字信号处理电路120和存储电路130,二者可以被组织在专用块中,或者其它组合和时序逻辑电路可以被组织在逻辑阵列块110中。可编程逻辑区域可以被配置为执行定制逻辑函数。

如果希望的话,数字信号处理电路120和存储电路130可以具有有限的可配置性。在一些实施例中,可编程逻辑区域可以包括额外的专用块,例如可编程锁相环电路、可编程延迟锁定环电路或具有有限可配置性的其它专用块。

在一些实施例中,数字信号处理电路120可以适用于高效地实施浮点三角运算。例如,数字信号处理电路120可以包括存储三角运算的结果的存储电路或用于辅助如下所述的编码和解码过程的桶形移位器电路。

可编程集成电路100可以包括可编程存储器元件。可以使用输入输出电路102为这些存储器元件加载配置数据(有时也称为编程数据)。如果希望的话,这些存储器元件可以将控制信号提供给数字信号处理电路120中的复用器。

存储器元件一旦被加载就各自提供相应的静态控制信号,该信号控制可编程逻辑区域中的相关联的逻辑部件的操作。在典型的情形中,加载的存储器元件的输出被施加到可编程逻辑区域中的晶体管的栅极以接通或关断某些晶体管,并且由此在可编程逻辑区域中配置逻辑和路由路径。可以以这种方式控制的可编程逻辑电路元件包括复用器(例如用于在可编程互连中形成路由路径的复用器)的部分、查找表、逻辑阵列、xor、and、or、nand和nor逻辑门、传输门、反转器等。

存储器元件可以使用诸如随机存取存储器(ram)单元的任何适当的易失性和/或非易失性存储器结构、熔丝、反熔丝、可编程只读存储器存储器单元、掩模编程和激光编程结构、这些结构的组合等等。因为存储器元件在编程期间被加载有配置数据,所以存储器元件有时被称为配置存储器、配置ram或可编程存储器元件。

可编程集成电路100的电路可以使用任何适当的架构来组织。作为示例,可编程集成电路100的逻辑可以被组织在较大可编程逻辑区域中的一系列行和列中,其中每个区域包含多个较小的逻辑区域。

较小区域可以是例如有时被称为逻辑元件(le)的逻辑区域,每个逻辑区域包含查找表、一个或多个寄存器以及可编程复用器电路。较小区域也可以是例如有时被称为自适应逻辑模块(alm)或片的逻辑区域。每个逻辑区域可以包括一对加法器、一对相关联的寄存器、移位寄存器以及一个或多个查找表或其它共享组合逻辑块(即,来自一对在当前语境中有时被称为自适应逻辑元件(ale)的le的资源)。较大区域可以是例如包含多个逻辑元件或多个alm或多个片的逻辑阵列块(lab)或可配置逻辑块(clb)。

在器件编程期间,配置数据被载入可编程集成电路100中,电路100将可编程逻辑区域配置为使其逻辑资源执行期望的逻辑函数。

在一些实施例中,可编程集成电路100可以被配置为实施三角函数。例如,在可编程逻辑区域中的数字信号处理电路120、存储电路130以及其它资源可以被配置为实施浮点正切运算(即,实施接收浮点数并生成浮点数格式的浮点数的正切的电路)。

在计算系统中浮点数通常用于以科学计数法表示实数,并且被设计为覆盖大的数值范围和各种精度要求。2008年8月29日发布的ieee754标准、ansi/ieee标准754-2008通常用于浮点数。图2中示出了浮点数的表示。

如图2所示,浮点数包括三个不同的部分:符号、有时也被称为有效数的尾数、以及指数。这些部分中的每个都可以由二进制数采用ieee754标准的格式来表示,取决于精度不同而具有不同的位尺寸。例如,单精度浮点数需要32位,其分布如下:一个符号位(位31)、八个指数位(即,m=8,其使用位[30:23])和23个尾数位(即,n=23,其使用位[22:0])。例如,双精度浮点数需要64位,包括一个符号位(位63)、11个指数位(即,m=11,其使用位[62:52])和52个尾数位(即,n=52,其使用位[51:0])。半精度浮点数需要16位,包括一个符号位(位15)、五个指数位(即,m=5,其使用位[14:10])和10个尾数位(即,n=10,其使用位[9:0])。

根据ieee754标准,尾数也可以有额外的位。具有额外的位的尾数有时也被称为扩展尾数。

根据ieee754标准,浮点数的符号使用单个位来表示,其中零表示正数,并且一表示负数。

浮点数的指数优选地被表示为无符号二进制数,对于单精度格式,其范围为0到255。为了将负指数映射到可表示的指数范围,使用正偏差。对于单精度浮点数,偏差优选地是+127。例如,针对所表示的指数,值140实际上表示指数(140-127)=13,而值100表示(100-127)=-27。对于双精度和半精度浮点数,指数偏差分别优选地是+1023和+15。

因此,偏差的值为“偏差”、在符号字段中具有值“符号”、在指数字段中具有值“指数”、并且具有值“尾数”的给定精度的二进制浮点数表示数:

(-1)'符号'×('尾数')×2('指数'-'偏差')(1)

如上所述,根据ieee754标准,尾数是值在区间[1,2)中(即,大于或等于1且小于2)的标准化数并且表示如等式(1)中所示的浮点数的精度分量。因为尾数是以二进制格式存储的,所以前导位可以是0或1,但对于标准化数,它将总是1。因此,在数字总是被标准化的系统中,前导位不一定被存储并且可以是暗含的,从而有效地给尾数一个额外的精度位。

ieee754标准还定义了特殊情况。例如,带有零尾数的零指数表示“0”,带有零尾数的全“1”指数表示无穷大,带有非零尾数的全“1”指数表示非数字(nan),并且带有非零尾数的零指数表示次正规数。

次正规数,也被称为非正规数或非标准化数,或者被称为逐渐下溢,是尾数值小于一并且指数等于最小可表示指数的数,其单精度浮点数格式为1-127=-126。

图3是根据一些实施例的在–π/2和π/2之间的区间中的正切函数的例示性绘图的示图。每个π/2±kπ重复相同的形状(即,在区间-3π/2和-π/2之间、-5π/2和-3π/2之间的区间等、并且还在π/2和3π/2之间、3π/2和5π/2之间的区间等中重复相同的形状)。换言之,正切函数是周期性的。此外,正切函数相对于原点对称(即,tan(x)=-tan(-x))。因此,可以将正切函数的输入范围限制于0到π/2,并且从0到π/2之间的角度的正切函数导出任何角度的正切函数的值。

围绕x=0点处的正切函数的泰勒展开式为:

0到π/2的输入范围可以被分成两个或更多个子范围,其中正切函数展现出特定特性。作为示例,如果x非常小(例如,小于2-m/2,其中m是图2的尾数位的数量),正切函数的良好近似值是x(即,对于x<2-m/2,tan(x)=x)。这是由于以下事实:等式2中的高次项的权重低于x的最低有效位(lsb),并且在最终求和中被移出。作为另一示例,如果x接近π/2,则正切函数具有渐近特性。

图4是根据一些实施例的例示性浮点正切运算器电路的示图。浮点正切运算器电路400可以接收浮点数x并生成是x的正切(即,tan(x))的浮点数。如所示,浮点正切运算器电路400可以包括可选的映射电路405和可选的恢复电路445、近似电路410、存储电路420、控制电路430和选择器电路440。

映射电路可以将来自三角圆的原始象限的输入值映射到预定的输入区间,并且恢复电路可以将由选择电路选择的输出值映射回到三角圆的原始象限。例如,可选的映射电路405可以将浮点数x映射到零到π/2的区间。例如,映射电路405可以接收浮点数x,递归地从浮点数x的绝对值中减去π直到结果的绝对值小于π/2为止。然后映射电路405可以将结果的绝对值提供给近似电路410、存储电路420和控制电路430,并且将结果的符号发送到可选的恢复电路445。

如所示,选择器电路440可以输出映射函数的结果的绝对值的正切。因此,如果映射电路405中的递归减法得到处于-π/2到零之间的区间中的数,则恢复电路445可以恢复输出的正确符号以得到对称性tan(x)=-tan(-x)。例如,恢复电路445可以用从映射电路405接收的符号代替选择器电路440之外的浮点数的符号。

对于本申请的其余部分并且在不失一般性的情况下,浮点数x意味着已经被映射到零到π/2之间的区间。

存储电路420可以是任何可寻址存储器电路,例如查找表(lut)、随机存取存储器(ram)电路、只读存储器(rom)电路、内容可寻址存储器(cam)电路和寄存器文件或者其任何组合。如果希望的话,存储电路420可以存储针对预定数量的输入值的正切函数的预定数量的值。例如,存储电路430可以包括针对小于π/2的q个最后位置单元(ulp)内的浮点数的正切函数的q个值。作为示例,图9示出了三个小于π/2并且处于π/2的三个ulp内的浮点数。

存储电路420可以接收基于输入信号x的地址信号,并响应于接收到地址信号而将tan(x)的对应值提供给选择器电路440。

近似电路410可以接收输入值x并生成tan(x)的近似值的信号并将该近似值的信号提供给选择器电路440。近似电路410可以使用任何多项式近似法来生成输入值的正切的近似值,仅举几例,例如方程(2)的泰勒展开式或切比雪夫扩展式。作为另一示例,如果希望的话,近似电路410可以实施cordic算法。作为又一示例,可以如图6所示的实施近似电路410。

浮点正切运算器电路400可以使用上述的正切函数的特定特性。例如,如果x低于第一预定阈值(例如,小于或等于2-m/2或者可能或可能不基于尾数位的数量的任何其它预定阈值),则控制电路430可以指示选择器电路440输出x。

类似地,如果x高于第二预定阈值(例如,大于或等于π/2-q*ulp),则控制电路430可以指示选择器电路440输出从存储电路420接收的信号。换言之,如果x小于或等于q*ulp距π/2的距离,则控制电路430可以指示选择器电路440输出tan(x)的存储的信号。

如果x在第一和第二阈值之间(例如,大于2-m/2且小于π/2-q*ulp),则控制电路430可以指示选择器电路440选择来自近似电路410的信号。

对于正切函数,使用用于值的总和的正切的三角恒等式可以将输入值x分解为输入值x的位的不同范围的总和。因为某些分量范围很小,所以恒等式将相对于这些分量范围进行简化。恒等式可以在适当的电路中被实施。以下恒等式适用于正切函数:

进一步将等式(3)代入其自身以进一步分解输入自变量产率:

虽然方程(4)看起来很复杂,但是正切函数的性质和单精度算术的精度可以用来大大简化计算。

如上所示,x较小时,tan(x)≈x。在单精度浮点算术(例如,在ieee754标准下)中,指数偏移了127(即,1=2°在单精度浮点格式中用指数值127表示)。如果输入指数为115或更小(即,-12或更小的真指数),则tan(x)和x之间的误差低于所述数格式的精度,因此在该值以下,tan(x)可以被认为等于x。

对于单精度浮点数格式,正切函数的近似值因此可能被限制于相对窄的指数范围,在115到127之间或者12位的动态范围。对于算术运算,根据ieee754标准,精度为24位(23位尾数加上隐含的前导位)。因此,输入数可以被准确地表示为36位定点数(24位精度+12位动态范围)。

可以对半精度浮点数、双精度浮点数和四精度浮点数进行类似的估计。

然后这样的定点数可以被分成预定数量的分量。图5示出了将定点数分成分量a、b和c。如果如上所述x=a+b+c,则可以将i个高位指定为c分量,将接下来的j位指定为a分量,并且可以将k个最低有效位(lsb)指定为b分量。

如上所述,对于小于2-m/2的任何x值,tan(x)=x,其中m是图2的尾数位的量数。考虑将i和j选择为使得m/2<(i+j-1)的情形。在这种情形中,b<2-m/2,并且b的正切可以被近似为tan(b)=b,并且方程(4)可以简化如下:

基于i的选择,a的正切(即,tan(a))可能相对较小。作为示例,对于i=j=9并且x是单精度浮点数,a的最大值略小于0.0039062510(tan(a)=0.0039062710),并且b的最大值为0.0000152610,这也是其正切。

因此,tan(a)×b的最大值为5.96×10-8,并且1-tan(a)×b的最小值为0.9999999410。tan(a)+b的最大值为0.0039215286610。tan(a)+b的最大值与tan(a)+b的最大值除以1-tan(a)×b的最小值之间的差值为2.35×10-10。换言之,误差是小数点右边32位。在最坏的情况中,其中c为零,该错误不会出现在结果的精度中,该结果在单精度浮点数格式中只有24位。因此,利用近似1-tan(a)b=1,方程(5)可以被进一步简化为:

只要a和c分别用i和j位表示,所有可能的位组合的正切可以被存储在存储电路中。该正切计算的实施例被示为在图6的近似电路410中实施。

如图6所示,近似电路410可以包括提取电路610、存储电路620和630以及算术电路640。

提取电路610可以接收具有指数、前导位和尾数的浮点数的形式的输入值x。基于接收到的输入值x,提取电路610可以生成采用定点数格式的数c和a(即,c和a)并且生成采用浮点数格式的数b(即,fpb)。如果希望的话,c、a和b可以是图5中所示的定点数的分量c、a和b。图7和图8示出了提取电路610的例示性实施例。

基于c和a的值,地址信号可以在读取访问操作期间访问相应的存储电路630和620以取回采用浮点数格式的c和a的对应正切(即,fptan(c)和fptan(a))。算术电路640可以接收采用浮点数格式的c和a的正切以及b(即,fpb、fptan(c)和fptan(a))并且实施等式(5)或(6)中的任一个以确定采用浮点数格式的x的正切(即,tan(x))的近似值。

图7示出了根据一些实施例的提取电路的例示性示图。如图7所示,提取电路可以根据图2中所示的浮点数格式接收浮点数以及指数位和尾数位之间的前导位并生成组成图5中所示的定点数的部分c和a的i位和j位。

如图7所示,提取电路可以包括编码器电路710和右移电路720。编码器电路710可以从指数接收p位并确定在右移电路720中要向右移的位数。

编码器从指数接收的位的数量p可以基于数i和j来选择。例如,p可以被确定为使得2p≥(i+j)。实际上,将浮点数的前导位向右移(i+j)位可能会导致c和a为零。因此,进一步移动并添加更多的零是不必要的。

编码器电路710可以负责浮点数格式的偏差。例如,考虑i=j=9、p=5并且指数为120的情形(即,在ieee754标准下的单精度浮点算术中的011110002),其对应于-7的真指数,因为指数偏移了127。在该情形中,编码器电路710可以接收指数的五个lsb(即,110002)并输出数字7(即,001112)。

对于正切函数,浮点数可能被限制在零和π/2之间的区间。因此,二进制数格式的真指数小于或等于零。根据ieee754标准,浮点数的指数偏差被选择为具有除msb以外全部为一(即,对于单精度浮点数格式为011111112),并且在浮点数的指数的除了msb之外的所有位中,使用零代替一并且使用一代替零来编码小于或等于零的真指数。例如,-24的真指数可以以单精度浮点数格式被编码为011001112。因此,在一些实施例中,编码器电路710可以包括将从指数接收的p位逐位反转的反转器,并且如果希望的话,可以将这些反转器构建到右移电路720中。

右移电路720可以接收前导位以及尾数的接下来的(i+j-1)个最高有效位(msb),并且根据在编码器电路710中确定的数将这些位右移。右移电路720可以是桶形移位器,其针对被右移的每个位在最高有效位位置处插入零。

出自右移电路720的i个msb可以被分配给c,并且出自右移电路720的接下来的j位可以被分配给a。

图8示出了根据一些实施例的提取电路的例示性示图。如图8所示,提取电路可以接收根据图2所示的浮点数格式的浮点数并且生成以浮点数格式表示图5中所示的定点数的部分b的浮点数b(即,fpb)。

如图8所示,提取电路可以包括可选的编码器电路810、掩码表820、应用掩码电路830和浮点减法器840。编码器电路810可以从指数接收p位并生成地址信号以取回存储在掩码表820中的k位二进制掩码。掩码表820可以是一个或多个存储电路,它们能够一起存储2p个掩码,每个掩码为n位宽。例如,预定数量的查找表(lut)或随机存取存储器(ram)可以实施掩码表820。

作为示例,考虑其中掩码表820是存储电路的情形,该存储电路在地址零处存储在真指数为零(即,单精度浮点数的指数为127或单精度浮点数格式的011111112)时需要应用的掩码,在地址一处存储在真指数为负1(即,12610或单精度浮点数格式的011111102)时需要应用的掩码,等等。在该情形中,编码器电路810可以是逐位反转器电路,或者如果希望的话,可以是从对应的偏差位中减去指数位的减法器。替代地,编码器电路810可以是接收p位并且作为响应生成另一个p位的任何电路。例如,仅举几例,编码器电路810可以包括桶形移位器、存储电路或组合逻辑。

作为示例,当真指数为零时需要应用的掩码可以包括为零的(i+j-1)个msb和为一的(n-i-j+1)个lsb,并且当真指数为一时需要应用的掩码可以包括为零的(i+j-2)个msb和为一的(n-i-j+2)个lsb,……,并且当真指数为(i+j-1)或更大时需要应用的掩码可以不包括零且n位都为一。

注意,在该示例中,需要应用的掩码的(n-i-j+1)个lsb全部是一,独立于真指数的值。因此,在一些实施例中,掩码表820可以只存储需要应用的掩码的(i+j-1)个msb,并且将从掩码表820取回的(i+j-1)个位与全部为一的(n-i-j+1)个位连结起来。

应用掩码电路830可以将从掩码表820取回的掩码应用于n位尾数,从而生成(1+b)*2指数。例如,逐位逻辑and电路可以实施应用掩码电路830。

浮点减法器840可以从该数中减去1.0*2指数以生成采用浮点数格式的b(即,fpb)。

图10是根据一些实施例的在三个近似值之间进行选择的例示性浮点正切运算器电路的示图。如所示,浮点正切运算器电路包括可以包括阈值指示器电路1115、比较器1030和上阈值检查电路1040的控制电路1002、可以包括右移电路1010、定点减法器1020、掩码表1050、应用掩码电路1060、以及浮点减法器1070的提取电路1005、定点减法器1075、存储电路1082、1084和1086、浮点加法器1071、浮点减法器1074、浮点乘法器1072和1076、尾数反转电路1088、以及复用器1090。

提取电路1005可以接收浮点数x并且生成定点数c和a以及浮点数fpb。如果希望的话,提取电路1005可以使用右移电路1010和定点减法器1020从输入值x中提取定点数c和a(例如,图5的定点数的部分c和a)。在一些实施例中,提取电路1005可以是图6的提取电路610。

如果希望的话,浮点正切运算器可以使用掩码表1050、应用掩码电路1060和浮点减法器1070来提取采用浮点数格式(即,fpb)的b(例如,图5的定点数的部分b)。在一些实施例中,掩码表1050、应用掩码电路1060和浮点减法器1070可以分别是图8中的掩码表820、应用掩码电路830和浮点减法器840。

浮点正切运算器电路可以分别基于来自存储电路1082和1084的c和a来取回采用浮点数格式的tan(c)和tan(a)。浮点加法器1071可以将tan(a)和fpb相加,并且浮点加法器1073可以将出自浮点加法器1071的总和加到tan(c)以生成等式(6)的分子。

浮点乘法器1072可以将tan(c)与出自浮点加法器1071的总和相乘,并且浮点减法器1074可以从一减去前面的结果以生成公式(6)的分母。

浮点减法器1074的输出可以使用定点减法器1075和尾数反转电路1088来反转。例如,定点减法器1075可以生成指数并且尾数反转电路1088可以生成等式(6)的反转的分母的尾数。

例如,尾数反转电路1088可以计算出自浮点减法器1074的浮点数的尾数的倒数。如果希望的话,尾数反转电路1088可以接收尾数的仅一部分位(即,frac)并且负责隐含的前导位。换言之,尾数反转电路1088可以计算函数1/1.frac。由于分母在区间[1,2)(即,区间包括大于或等于1.0且小于2.0的所有值)中,所以尾数反转电路1088的输出可以在区间(0.5,1](即,区间包括大于0.5且小于或等于1.0的所有值)中。

浮点数格式的分母的倒数可能需要标准化的尾数和适当的指数。例如,如果尾数反转电路1088的输出小于1.0(即,如果分母的倒数的尾数的msb为0),尾数反转电路1088的输出的标准化可以向左移一位,并且指数可以被减少一。

浮点数格式的分母的倒数的指数可能需要将实指数的符号反转到与偏差指数相反。考虑将实指数、偏差指数、反转的偏差指数和偏差分别表示为expreal、exp、invexp和bias的情形。进一步考虑在反转之前偏差指数是exp=expreal+bias并且因此expreal=exp-bias。在该情形中,反转的偏差指数(即分母的倒数的指数)是invexp=-expreal+bias=2*bias-exp。换言之,反转的偏差指数等于偏差的两倍(即2*bias)和分母的指数(即exp)之间的差值。

在ieee754标准中,所有浮点精度(即半精度、单精度、双精度和四精度)的偏差在msb位置处为零,随后是在所有其它位位置处为一(例如,根据ieee754标准的单精度浮点数格式的011111112)。因此,偏差的两倍(即2*bias)在lsb位置为零并且在所有其它位位置为一(例如,根据ieee754标准的单精度浮点数格式的111111102)。

如上所述,尾数反转电路1088的输出的标准化可以涉及如果分母的倒数的尾数的msb为零,则将反转的偏差指数减少一。这可以在确定采用浮点数格式的分母的倒数的指数的同一操作中实现。

例如,考虑分母的倒数的尾数的msb是一(即,m=1)的情形。在该情形中,尾数已经被标准化,不需要左移,并且分母的倒数的指数可以通过从2*bias(即,单精度浮点数格式的111111102)中减去exp来确定。

作为另一示例,考虑分母的倒数的尾数的msb为零(即,m=0)的情形。在该情形中,尾数需要被标准化,需要左移一位,并且分母的倒数的指数可以通过从2*bias-1(即,单精度浮点数格式的111111012)中减去exp来确定。

因此,对于ieee754标准中的任何精度,如果希望的话,2*bias(即102)的两个lsb或2*bias-1(即,012)的两个lsb可以被m!m(即,msb与分母的倒数的尾数的msb的反转的连结)代替以负责标准化操作。

在一些实施例中,尾数反转电路1088可以实施分段多项式近似运算、newton-raphson迭代或与计算尾数的倒数相关的任何其它技术。此外,尾数反转电路1088可以包含可以使用复用器实施的1位置标准化电路。

根据等式(6),浮点乘法器1076可以将反转的分母与分子相乘以确定输入值的正切。

控制电路1002可以判断x是否低于第一预定阈值(例如,小于或等于2-m/2或者可能或可能不基于尾数位的数量的任何其它预定阈值)。例如,阈值指示器电路1115和比较器1030可以判断输入值是否小于第一预定阈值。

类似地,控制电路1002可以判断x是否高于第二预定阈值(例如,大于或等于π/2-q*ulp)。例如,上阈检查电路1040可以判断输入值是否大于第二预定阈值。

复用器1090可以基于来自控制电路1002的控制信号选择输出tan(x)。例如,如果控制电路1002确定输入值小于第一预定阈值,控制电路1002可以指示复用器1090选择输入值作为输出(即,tan(x)=x),如果控制电路1002确定输入值高于第二预定阈值,控制电路1002可以指示复用器1090选择存储电路1086的输出作为输出tan(x),存储电路1086可以存储针对预定范围的输入值的正切值(例如,针对在由π/2-q*ulp和π/2限制的区间内的输入值),并且如果控制电路1002确定输入值大于或等于第一预定阈值并且小于或等于第二预定阈值,控制电路1002可以指示复用器1090选择浮点乘法器1076的输出。

图11是根据一些实施例的用于在集成电路中计算浮点数的三角函数的例示性操作的流程图。

在1110处,集成电路可以在近似电路的输入端口处接收第一浮点数。例如,诸如图1的可编程集成电路100的集成电路可以包括图4的带有近似电路410的浮点正切运算器电路400,该近似电路410在输入端口处接收浮点数x作为第一浮点数。

在1120处,集成电路可以使用近似电路中的提取电路基于第一浮点数生成第一和第二定点数和第二浮点数。例如,图6的近似电路410的提取电路610可以生成定点数a和c以及浮点数fpb。

在1130处,集成电路可以分别基于第一和第二定点数,从近似电路中的存储三角函数的输出值的预定浮点数的第一和第二存储电路取回预定浮点数的第三和第四浮点数。例如,图6中的近似电路410的存储电路620和630可以存储三角函数的输出值的预定浮点数,并且定点数a和c可以分别访问存储电路620和630以取回浮点数fptan(a)和fptan(b)。

在1140处,集成电路可以使用近似电路中的算术电路对第二、第三和第四浮点数执行浮点算术运算,以生成第五浮点数作为第一浮点数的三角函数的近似值。例如,图6的算术电路640可以对fpb、fptan(a)和fptan(c)执行浮点算术运算以在算术电路640的输出处生成浮点数,该浮点数为浮点数x的三角函数的近似值。

虽然操作1110、1120、1130和1140是以特定顺序描述的,但应该理解,其它操作可以在所描述的操作之间执行,可以调整所描述的操作以使它们在稍微不同的时间发生或所述操作可以分布在允许在与处理相关联的各区间发生处理操作的系统中。例如,可以在操作1130之前、之后或同时执行操作1120。

根据一些实施例,机器可读介质可以编码指令,该指令用于在集成电路上执行方法(例如,用于配置算术电路以生成浮点数的正切的指令)。适当的计算机或类似设备可以执行这些指令,从而在集成电路中实施方法。例如,个人计算机可以配备有可以与集成电路连接的接口,并且合适的软件工具和/或用户在个人计算机的帮助下可以通过接口将该方法编程到集成电路中。

在一些实施例中,用于执行该方法的指令可以由编码在相同或额外的机器可读介质上的其它指令生成。换言之,在计算机或类似设备上执行的第一组指令(例如,c语言编译器或电子设计自动化(eda)工具)可以生成第二组指令(例如,用于对可配置电路编程的汇编器代码或一系列位),由此第二组指令包括在集成电路(例如,微处理器或诸如图1的可编程集成电路100的可编程集成电路器件)上执行的方法。

机器可读介质可以包括允许存储指令的任何类型的设备或技术,包括可以是易失性(例如,动态随机存取存储器(dram)、静态随机存取存储器(sram)等)或非易失性(例如,可编程只读存储器(prom)、闪存存储器等)的半导体存储器、磁性存储设备、光学存储设备或其组合。

图12呈现可以被编码有机器可执行程序的磁性数据存储介质1200的截面,所述机器可执行程序可由诸如前述个人计算机或其它计算机或类似设备的系统执行。介质1200可以是软盘或硬盘或磁带,其具有可以是常规的适合的基板1210、和在一侧或两侧上的可以是常规的适合的涂层1220,该涂层1220包含极性或取向可能会被磁性改变的磁畴。除了其是磁带的情况外,介质1200还可以具有用于接纳磁盘驱动或其它数据存储设备的轴的开口。

根据一些实施例,介质1200的涂层1220的磁畴可以被极化或定向以便以可能常规的方式对机器可执行程序进行编码,以由诸如个人计算机或其它计算机或类似系统的编程系统执行,该编程系统具有插座或外围附件,要配置的集成电路可以插入其中以用于配置集成电路的适当部分,该适当部分包括其专用处理块(如果有的话)。

图13示出了可以被编码有前述机器可执行程序的光学可读数据存储介质1300的截面,所述机器可执行程序将由诸如前述个人计算机或其它计算机或类似设备的系统来执行。介质1300可以是蓝光光盘(bd)、常规光盘(cd)只读存储器(rom)或数字通用盘(dvd,有时也称为数字视频盘)只读存储器(rom)或诸如cdr、cdrw、dvdr、dvdrw、dvd+r、dvd+rw或dvd-ram的任何可重写介质或光学可读且磁光可重写的磁光盘。介质1300可以具有适当的基板1310和通常在基板1310的一侧或两侧上的适当的涂层1320。

如众所周知,在基于cd或基于dvd的介质的情况下,涂层1320是反射性的,并且印有布置在一个或多个层上的多个凹坑1330以对机器可执行程序进行编码。通过将激光反射离开涂层1320的表面来读取凹坑的布置。保护涂层1340可以设置在涂层1320的顶部。

如众所周知,在磁光盘的情况下,涂层1320不具有凹坑1330,但是具有多个磁畴,当例如通过激光被加热到特定温度以上时,可以磁性地改变磁畴的极性或取向。可以通过测量从涂层1320反射的激光的极化来读取磁畴的取向。如上所述,磁畴的排列可以对程序进行编码。

本文描述的方法和装置可以被并入到任何适合的电路或电路系统中。例如,该方法和装置可以被并入许多类型的设备中,例如微处理器或其它集成电路。仅举几个示例,示例性集成电路包括可编程阵列逻辑(pal)、可编程逻辑阵列(pla)、现场可编程逻辑阵列(fpga)、电可编程逻辑器件(epld)、电可擦除可编程逻辑器件(eepld)、逻辑单元阵列(lca)、现场可编程门阵列(fpga)、粗粒度可重构架构(cgpa)、数字信号处理(dsp)电路、专用标准产品(assp)、专用集成电路(asic)。

本文描述的集成电路可以是包括以下部件中的一个或多个的数据处理系统的部分:处理器;存储器;i/o电路;和外围设备。数据处理系统可以用于各种应用中,例如计算机连网、数据连网、仪表设备、视频处理、数字信号处理、或需要使用有效生成浮点数的正切的电路的优点的任何适合的其它应用。

集成电路器件可以被配置为执行各种不同的逻辑功能。例如,集成电路器件可以被配置作为与系统处理器协同工作的处理器或控制器。集成电路也可以用作仲裁器,用于仲裁对数据处理系统中的共享资源的访问。在又一个示例中,集成电路可以被配置作为处理器和系统中其它部件中的一个之间的接口。在一个实施例中,集成电路可以是受让人所拥有的器件系列之一。

虽然方法操作是以特定顺序描述的,但应该理解,可以在所描述的操作之间执行其它操作,可以调整所描述的操作使得它们在稍微不同的时间发生或所描述的操作可以分布在允许在与处理相关联的各间隔发生处理操作的系统中。

以上所述仅是对实施例的原理的说明,并且本领域的技术人员可以做出各种修改而不脱离本文公开的实施例的范围和精神。上述实施例可以单独或以任何组合来实施。

以下示例涉及其它实施例。

示例1是用于计算第一浮点数的三角函数的电路,包括:在输入端口处接收第一浮点数的近似电路,并且近似电路包括:被耦合到输入端口、基于第一浮点数生成第一和第二定点数以及第二浮点数的提取电路;耦合到提取电路的第一和第二存储电路,其存储三角函数的输出值的预定浮点数并分别基于第一和第二定点数输出预定浮点数的第三和第四浮点数;以及被耦合到所述提取电路和所述第一和第二存储电路的算术电路,所述算术电路对第二、第三和第四浮点数执行浮点算术运算,以生成第五浮点数作为第一浮点数的三角函数的近似值。

示例2是示例1的电路,还包括:第三存储电路,其存储所述三角函数的额外的输出值的额外的预定浮点数,并且基于所述第一浮点数输出所述额外的预定浮点数的第六浮点数;以及被耦合到第三存储电路和近似电路的选择电路,其基于控制信号在第一、第五和第六浮点数当中选择第一浮点数的三角函数。

示例3是示例2的电路,还包括:控制电路,所述控制电路接收第一浮点数并生成控制信号使得控制信号指示选择电路在第一浮点数位于第一区间中时选择第一浮点数,在第一浮点数位于第二区间时选择第五浮点数,并且在第一浮点数位于第三区间中时选择第六浮点数,其中第一、第二和第三区间是不相交的。

示例4是示例2的电路,其中,第三存储电路存储针对预定输入区间的三角函数的额外输出值的额外预定浮点数,并且其中,当第一浮点数位于预定输入区间中时,在读取访问操作期间基于第一浮点数的读取地址从第三存储电路取回第六浮点数。

示例5是示例2的电路,还包括:接收第七浮点数并将第七浮点数映射到0和π/2之间的区间以生成第一浮点数的映射电路。

示例6是示例5的电路,还包括:耦合到映射电路和选择电路的恢复电路,所述恢复电路基于第七浮点数将来自选择电路的第一浮点数的三角函数恢复到-π/2和π/2之间的区间。

示例7是示例1到6中任一项的电路,其中第一浮点数具有尾数和指数,并且其中,提取电路还包括:将尾数的第一数量的位向右移动第二数量的位以生成第一和第二定点数的右移电路,其中第二数量的位是基于指数的。

示例8是示例1到6中任一项的电路,其中,第一浮点数具有尾数和指数,并且其中,提取电路还包括:基于指数的第一数量的位提供掩码的第三存储电路;将来自第三存储电路的掩码应用到尾数以生成中间浮点数的掩码应用电路;以及从中间浮点数减去额外预定浮点数以生成第二浮点数的浮点减法器。

示例9是示例1至8中任一项的电路,其中,算术电路还包括:基于第二、第三和第四浮点数的浮点加法来生成第五浮点数的分子的第一浮点算术电路;以及基于第二和第三浮点数的浮点加法、与第四浮点数的浮点乘法以及从一进行的浮点减法来生成第五浮点数的分母的第二浮点算术电路。

示例10是示例9的电路,其中,算术电路还包括:被耦合到第二浮点算术电路的尾数反转电路,所述尾数反转电路生成第五浮点数的分母的倒数;以及将来自浮点算术电路的第五浮点数的分子与来自尾数反转电路的第五浮点数的分母的倒数相乘以生成第五浮点数的浮点乘法器电路。

示例11是示例10的电路,其中,尾数反转电路执行分段多项式近似。

示例12是示例10的电路,其中,尾数反转电路执行newton-raphson迭代。

示例13是示例10到12中任一项的电路,其中,尾数反转电路还包括左移电路,如果在移位运算前的最高有效位是零,左移电路将分母的倒数的尾数向左移动一位。

示例14是示例10到13中任一项的电路,其中尾数反转电路还包括桶形移位器,桶形移位器将浮点指数的偏差向左移动一位以生成两倍偏差。

示例15是示例14的电路,其中,桶形移位器分别用分母的倒数的最高有效位和分母的倒数的反转替换两倍的偏差的第二最低有效位和最低有效位以生成标准化指数。

示例16是示例15的电路,还包括:从标准化指数减去分母的指数以生成分母的倒数的指数的定点减法器。

示例17是示例9到16中任一项的电路,其中,第二浮点算术电路还包括:将第二和第三浮点数相加以生成第一总和的浮点加法器电路。

示例18是示例17的电路,其中,第二浮点算术电路还包括:将第一总和与第四浮点数相乘以生成积的额外浮点乘法器电路。

示例19是示例18的电路,其中,第二浮点算术电路还包括:从一减去所述积以生成第五浮点数的分母的浮点减法器电路。

示例20是一种用于计算第一浮点数的三角函数的方法,包括:在近似电路的输入端口处接收第一浮点数;使用近似电路中的提取电路基于第一浮点数生成第一和第二定点数以及第二浮点数;基于第一和第二定点数分别从近似电路中的存储三角函数的输出值的预定浮点数的第一和第二存储电路取回预定浮点数的第三和第四浮点数;以及使用近似电路中的算术电路对第二、第三和第四浮点数执行浮点数算术运算以生成第五浮点数作为第一浮点数的三角函数的近似值。

示例21是示例20的方法,还包括:基于第一浮点数从存储三角函数的额外输出值的额外预定浮点数的第三存储电路取回额外预定浮点数的第六浮点数;使用接收第一浮点数的控制电路生成控制信号,以使得控制信号在第一浮点数位于第一区间时具有第一值,在第一浮点数位于第二区间时具有第二值,并且在第一浮点数位于第三区间时具有第三值,其中第一、第二和第三区间是不相交的;以及使用控制信号指示被耦合到第三存储电路和近似电路的选择电路在第一、第五和第六浮点数中选择第一浮点数的三角函数。

示例22是示例21的方法,其中取回第六浮点数还包括:生成基于第一浮点数的读取地址;以及当第一浮点数位于预定输入区间时使用读取地址执行第三存储电路的读取访问操作。

示例23是示例20的方法,其中第一浮点数具有尾数和指数,并且其中使用近似电路中的提取电路生成第一和第二定点数以及第二浮点数还包括:使用右移电路将尾数的第一数量的位向右移动第二数量的位以生成第一和第二定点数,其中第二数量的位是基于指数的;使用指数的第三数量的位从第三存储电路取回掩码;将来自第三存储电路的掩码应用到尾数以生成第六浮点数;以及从第六浮点数减去额外的预定浮点数以生成第二浮点数。

示例24是示例23的方法,还包括:使用近似电路中的算术电路通过对第二、第三和第四浮点数执行浮点算术运算来生成第五浮点数。

示例25是示例24的方法,其中执行第二、第三和第四浮点数的浮点算术运算还包括:基于第二、第三和第四浮点数的浮点加法生成第五浮点数的分子;基于第二和第三浮点数的浮点加法、与第四浮点数的浮点乘法、以及从一进行的浮点减法来生成第五浮点数的分母;生成第五浮点数的分母的倒数;以及将第五浮点数的分子与第五浮点数的分母的倒数相乘以生成第五浮点数。

示例26是被编码有用于配置电路以计算第一浮点数的三角函数的指令的非暂态机器可读存储介质,其中所述电路包括第一存储电路、近似电路和被耦合到存储电路和近似电路的选择电路,并且其中所述近似电路包括提取电路、第二和第三存储电路和算术电路,所述指令包括:用于配置提取电路以基于第一浮点数生成第一和第二定点数以及第二浮点数的指令;用于配置存储三角函数的输出值的预定浮点数的第二和第三存储电路以分别基于第一和第二定点数来输出预定浮点数的第三和第四浮点数的指令;以及用于配置算术电路对第二、第三和第四浮点数执行浮点算术运算以生成第五浮点数作为第一浮点数的三角函数的近似值的指令。

示例27是示例26的非暂态机器可读存储介质,还包括:用于配置存储三角函数的额外输出值的额外的预定浮点数的第一存储电路以基于所述第一浮点数输出额外的预定浮点数的第六浮点数的指令;以及用于配置选择电路以基于控制信号来在第一、第五和第六浮点数当中选择第一浮点数的三角函数的指令。

示例28是示例26的非暂态机器可读存储介质,还包括:用于生成示例16的指令的指令。

示例29是示例26的非暂态机器可读存储介质,其中算术电路包括第一和第二浮点算术电路,所述存储介质还包括:用于配置第一浮点算术电路以基于第二、第三和第四浮点数的浮点加法来生成第五浮点数的分子的指令;以及用于配置第二浮点算术电路以基于第二和第三浮点数的浮点加法、与第四浮点数的浮点乘法以及从一进行的浮点减法来生成第五浮点数的分母的指令。

示例30是示例29的非暂态机器可读存储介质,其中算术电路还包括尾数反转电路和浮点乘法器电路,所述存储介质还包括:用于配置尾数反转电路以生成第五浮点数的分母的倒数的指令;以及用于配置浮点乘法器电路以将来自第一浮点算术电路的第五浮点数的分子与来自尾数反转的第五浮点数的分母的倒数相乘以生成第五浮点数的指令。

示例31是用于计算第一浮点数的三角函数的集成电路,包括:存储三角函数的输出值的预定浮点数并基于所述第一浮点数输出预定浮点数的第二浮点数的存储电路;对第一浮点数的三角函数进行近似以生成第三浮点数的近似电路;以及被耦合到存储电路和近似电路的、基于控制信号在第一、第二和第三浮点数当中选择第一浮点数的三角函数的选择电路。

示例32是示例31的集成电路,还包括:控制电路,其接收第一浮点数并生成控制信号,以使得控制信号指示选择电路在第一浮点数位于第一区间中时选择第一浮点数,在第一浮点数位于第二区间中时选择第二浮点数,并且在第一浮点数位于第三区间中时选择第三浮点数,其中第一、第二和第三区间是不相交的。

示例33是示例31的集成电路,其中存储电路存储针对预定输入区间的三角函数的输出值的预定浮点数,并且其中当第一浮点数位于预定输入区间中时,基于第一浮点数的读取地址在读取访问操作期间从存储电路中取回第二浮点数。

示例34是示例31至33中任一项的集成电路,其中近似电路还包括:接收第一浮点数并基于第一浮点数生成第一和第二定点数以及第四浮点数的提取电路。

示例35是示例34的集成电路,其中第一浮点数具有尾数和指数,并且其中提取电路还包括:将尾数的第一数量的位向右移动第二数量的位以生成第一和第二定点数的右移电路,其中第二数量的位基于指数。

示例36是示例34的集成电路,其中第一浮点数具有尾数和指数,并且其中提取电路还包括:基于指数的第一数量的位提供掩码的额外存储电路;将来自额外存储电路的掩码应用到尾数的第二数量的位以生成中间浮点数的掩码应用电路;以及从中间浮点数减去额外的预定浮点数以生成第四浮点数的浮点减法器。

示例37是示例34的集成电路,其中近似电路还包括:存储三角函数的输出值的第一额外预定浮点数并基于第一定点数输出第一额外预定浮点数的第五浮点数的第一额外存储电路;以及存储三角函数的输出值的第二额外预定浮点数并基于第二定点数输出第二额外预定浮点数的第六浮点数的第二额外存储电路。

示例38是示例37的集成电路,其中近似电路还包括:接收第四、第五和第六浮点数并且对第四、第五和第六浮点数执行浮点算术运算以生成第三浮点数的算术电路。

示例39是示例38的集成电路,其中运算电路还包括:基于第四、第五和第六浮点数的浮点加法生成第三浮点数的分子的第一浮点算术电路;基于第四和第五浮点数的浮点加法、与第六浮点数的浮点乘法以及从一进行的浮点减法来生成第三浮点数的分母第二浮点算术电路;生成第三浮点数的分母的倒数的除法器电路;以及将来自第一浮点算术电路的第三浮点数的分子与来自除法器的第三浮点数的分母的倒数相乘以生成第三浮点数的浮点乘法器电路。

示例40是示例31的集成电路,其中存储电路选自由先进先出电路、后进先出电路、串入并出移位寄存器电路、并入串出移位寄存器电路、随机存取存储器电路、只读存储器电路、内容可寻址存储器电路和寄存器文件组成的组。

示例41是示例31到40中任一项的集成电路,还包括:引脚;以及从引脚接收串行化数据信号并且将串行化数据信号的至少一部分并行化的串行接收器电路。

示例42是示例31到40中任一项的集成电路,还包括:引脚;以及从选择电路接收并行数据信号、将并行数据信号串行化以生成串行化数据信号、并且将串行化数据信号发射到引脚的串行发射器电路。

示例43是示例31到40中任一项的集成电路,还包括:被耦合到选择电路的可编程逻辑区域。

示例44是示例43的集成电路,其中可编程逻辑区域还包括:多个查找表电路。

示例45是示例31到40中任一项的集成电路,还包括:被耦合到选择电路的输出端口的互连资源。

示例46是示例45的集成电路,其中互连资源还包括:水平互连资源;以及竖直互连资源。

示例47是示例45的集成电路,其中互连资源还包括:多个导电线。

示例48是示例47的集成电路,还包括位于多个导电线中的第一导电线和多个导电线中的第二导电线之间的可编程连接。

示例49是示例31到40中任一项的集成电路,其中近似电路的至少一部分被实施在专用处理块中。

呈现上面所描述的实施例用于举例说明而非限制的目的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1