发明内容
本发明的目的是提供一种可重构处理装置,使得相对大型的多路复用器也可用于使用了多位输出LUT的结构中。为了实现该目的,提供了可重构处理装置,包括一个或多个可重构处理单元,其包括一个计算单元(10),具有一个用于接收n个输入信号和s1个选择信号,以及输出k个输出信号的预处理模块,其中k<n+s1,并且其中k个输出信号是n个输入信号和s1个选择信号的部分积,一个被预处理模块的k个输出信号编址的m输出查询表,一个用于在s2进一步选择信号的控制下来选择查询表中的m个输出信号之一的输出多路复用器。
根据本发明的可重构处理装置,预处理模块减少了信号的数量,如输入信号的数量n和选择信号的数量s1,以使得为较小组的k个输出信号。预处理模块和查询表的结合相比较查询表的单独使用,可处理相对大数量的输入信号。
最好查询表是这样实施的,即查询表包括一个用于将k个地址信号解码为2k个控制信号的一个k:2k解码器,以及一个包括2k个存储元件的m列的存储单元。这样的好处是使得解码器可以读写该表。存储单元也可用于临时存储在可重构处理装置中计算的数据。
实际的实施方式的特征在于n=k以及预处理单元具有一个用于接收一个第一选择信号的第一输入,其中预处理单元处于根据每一个输入信号来产生输出信号的操作模式,其中二分之一的输出信号其值是相应的输入信号和第一选择信号的逻辑与函数,以及另一半的输出信号其值是相应的输入信号和第一选择信号的反相的逻辑与函数。在该实施例中,预处理单元具有一个相对小数量的门。
另一实施例,即其特征在于预处理单元包括一个用于选择一个进一步的操作模式的模式选择输入,其中进一步的操作模式下输出信号与其相应的输入信号相等,介绍了可重构装置的另外的灵活性,因为它使得配置计算单元作为多路复用器或者作为普通的查询表成为可能。
一种实施甚至更宽多路复用器的有效方法的特征在于可重构处理装置包括一个具有第一和第二计算单元的扩展计算单元,每个计算单元包括一个预处理模块,一个m输出查询表,以及一个输出多路复用器,扩展计算单元还包括一个用于选择第一或第二单元的输出信号作为响应于进一步的选择信号的输出信号的另外的多路复用器。
根据本发明的另一方面,提供了一种可重构处理装置,包括至少具有一个输入端的一个或多个计算单元,其通过一个输入多路复用器耦合到通信网络,其特征在于用于计算单元的输入多路复用器的选择信号是由辅助选择单元提供的,响应于配置存储器提供的辅助选择信号,每个辅助选择单元从配置存储器或通信网络中选择一个信号,因此提出了一种计算单元,其具有用于在通信网络中选择可用信号的输入多路复用器。尤其为此目的,宽输入多路复用器是重要的,以便使得可重构处理装置的不同可重构处理单元之间的彼此耦合具有高度的灵活性。输入多路复用器可进行静态和动态配置。在静态状态,由输入多路复用器所做的选择是由存储在配置存储器中的值所决定的。在动态状态下,由输入多路复用器所做的选择是在运行阶段由通信网络中可用信号决定的。在计算单元具有很多输入管脚的情况下,每一个管脚或其中的一部分可以这样耦合于多路复用器。
具体实施方式
附图1给出了包括一个或多个可重构处理单元1的可重构处理装置100。单元1通过一个具有水平总线90H和垂直总线90V的通信网络来互相通信。单元1与配置总线CB相连,其包括一个地址总线和一个数据总线,以及允许用来控制单元1功能的配置数据装载到配置存储器的控制信号。在给出的实施例中,可重构处理装置100包括一个第一60和一个第二全程解码器70,其分别激活第一控制线,如61a和第二控制线,如71b。可重构处理单元,这里由控制线选择的1ab随后被来自配置总线CB的数据重构。在又一实施例中,重构处理装置100可以仅具有本地地址解码器。也是在又一实施例中,重构处理装置根本不具有解码器,例如在该实施例中配置存储单元被排列为一串。这样,就在串中顺序转移配置数据时进行配置。
为了实现多个目的,有必要从通信网络的众多可用信号中为重构处理单元1来选择输入信号。附图2给出了一个例子,其中多路复用器13从通信网络的水平总线90H的可用信号中选择输入信号。
具有多位输出LUT(moLUT)的可重构逻辑结构在减小了实施成本的情况下显示了多功能性。实施moLUT最通常的方法与传统的SRAM相似,这是通过使用一个解码器来编址多个(LUT)存储列。4输入LUT对于随机逻辑的实施在最大范围内是有效的。因此,4输入LUT通常被应用到基于moLUT装置的实施中。LUT的类型决定了逻辑单元输入管脚的总数。由此,具有4输入moLUT的装置具有4个管脚。如果在LUT的输出端放置一个额外的2∶1多路复用器,这会导致最大的5管脚(见附图3)。这即使在实施4∶1多路复用器时也是不够的,其需要6个输入(4个主输入和2个选择输入)。因此,通常在这种装置中只能使用很小的多路复用器。
附图4A,4B,4C给出了一些现有技术多路复用器的实施方式。附图4A给出了第一种方法,其中多路复用器是由专用的电路来实施的。在这种结构中,除了为其选择正确的操作数(例如常数),多路复用器函数还通过在逻辑门的固定拓扑中进行程序连接来实施。
如附图4B所示的第二种方法,其特征是基于多路复用器的装置是由Actel设计的。在这种装置中,逻辑函数是以映射函数需求的方式通过编程多路复用器输入来实施的。基于多路复用器的可重构逻辑装置具有好的颗粒度和包括一个小设置值2∶1的多路复用器(一般是三)。由此,最大为4∶1的多路复用器也可以这种结构实施。
在附图4C所示的第三种实施方式中假设了查询表(LUT)的使用,其对大多数现有FPGA是典型的,例如来自Atmel和Xilinx。
根据这种方法,在逻辑单元中的查询表实施具有有限尺寸的单个多路复用器(典型的为4∶1多路复用器),然而更宽的多路复用器是通过使用呈现在查询表输出端中额外的2∶1多路复用器来实现的。
附图5给出了根据本发明的可重构处理单元的一个实施例中的计算单元。计算单元10包括一个预处理模块11,用于接收n=4输入信号x0,x1,x2,x3和s1=1选择信号,信号c1,以及提供k=4输出信号y0,y1,y2,y3,其中k<n+s1。它还包括一个m=2输出查询表12,13a,13b,其被预处理模块的k个输出信号编址,以及一个用于在s2=1进一步选择信号控制下选择查询表12,13a,13b的m=2输出信号其中之一作为输出信号F的输出多路复用器14。
这里提出的此种方法的基本思想是基于以如下的方式来分解多路复用器的函数,这就是其可被映射到已被小量额外逻辑加强的多位输出LUT上。通过示例,其给出了具有4输入和2输出多位输出LUT(4/2-LUT)的4∶1多路复用器的实施方式。
4∶1多路复用器可描述为具有六个变量的逻辑函数F:作为多路复用器的输入的x0,x1,x2,x3以及作为控制(选择)信号的c0,c1,如下式所示:
该公式可被进一步改为如下方式:
其中:
以及
公式2描述了具有输入A,B以及控制信号c
0的2∶1多路复用器。该多路复用器可被映射到4/2-LUT输出具有的2∶1多路复用器上。上述映射仅在函数A和B都在moLUT的存储器(存储栏)中被编码才有可能。函数A和B共需要5个不同的逻辑变量而给出的4/2-LUT仅具有4个输入。然而,A和B函数的所有部分乘积都共用同一个逻辑变量c
1。如果假设这些部分乘积
c
1x
2,c
1·x
3而是在LUT外部产生的,那么部分乘积结果y
0,y
1,y
2,y
3可作为此LUT的输入。由此,4/2-LUT如公式4所示来实施函数A和B
(4a)A=y0+y2,以及
(4b)B=y1+y3
对于标准4/2-LUT的实施所需的唯一修改是一个相对小的预处理单元11。
上述原则并不仅限于4∶2多路复用器的实施。类似于任何选择函数F:
其重写为该形式用于从输入信号x0,....xk中选择输出信号。
其中A是变量x0,x2,...,x2i和c1,....,cL的函数,B是变量x1,x3,...,x2i+1和c1,....,cL的函数。函数A另外可被改写为变量y0,y2,y2i的逻辑或形式,其中yi是一个仅取决于变量xi和选择变量c1,....cL的函数。
同样函数B可被改写为变量y1,y3,y2i+1的逻辑或形式,其中yi是一个仅取决于变量xi和选择变量c1,....cL的函数。再者,当从yi的值以及现有的选择变量c1,....cL来计算最终的函数F时,函数yi可通过预处理单元来计算。
用于产生值yi的预处理单元,其特征在于输入信号xi的数目n与输出信号yi的数目k相等,并且除了用于接收更多选择信号c2,....cL的更多的输入,预处理单元具有用于接收第一选择信号c1的第一输入。预处理单元根据每一个输入信号xi来产生输出信号yi。二分之一的输出信号yi值是相应的输入信号xi和第一选择信号ci的逻辑与函数,以及另一半的输出信号yi值是相应的输入信号xi和反相的第一选择信号c1的逻辑与函数。
通过例子,附图6给出了在本发明实际实施例中的预处理单元11。预处理单元包括4个逻辑与门11a,11b,11c,11d以及一个用于计算值y0,...y3的反相器11e。值y0和y1是由其相应的输入信号x0,x1与反相的第一选择信号c1的逻辑与函数来实现的。值y2和y3是由其相应的输入信号x2,x3与第一选择信号c1本身的逻辑与函数来实现的。
最好预处理模块包括一个用于选择更多操作模式的模式选择输入,在其更多的操作模式下输出信号yi与其相应的输入信号xi相等。如果仅有的四输入的逻辑函数是在修改的4/2-LUT中实施的,那么输入处理模块既可以如附图7A被绕过,也可以以主逻辑输入在经过它时不发生转化的形式来应用。在附图7A中通过具有引号(‘)的参考数字所指出的部分对应于附图6中具有相同参考数字的部分。在附图7B中通过具有双引号的参考数字所指出的部分对应于附图7A中具有单引号的部分。
在附图7A中所示的实施例中,每一个与门11a’,...11d’都通过各自的辅助多路复用器15a’,...15d’耦合到一个输出。多路复用器通过预处理单元11’的控制输入17’耦合到配置存储器30’的输出。
在附图7B的实施例中,反相器11e”的信号在更多的操作模式中被绕过。为达到此目的,辅助多路复用器16a”和16c”耦合到与配置存储器30”耦合的控制输入17”。在更多的操作模式中,辅助多路复用器选择逻辑值1作为其输出信号。结果是每一个输出信号yi与xi相等。另外的优点是辅助多路复用器16a”和16c”不延迟信号y0,..y3。
附图8给出了根据本发明权利要求1的可重构处理装置的进一步实施例。其包括一个具有第一10a和第二计算单元10b的扩展计算单元。每一个计算单元10a,10b包括一个预处理模块,一个m输出查询表,以及一个输出多路复用器。在给出的实施例中,计算单元10a,10b与附图5中所给出的那个是相同的。附图8中所给出的扩展计算单元还包括用于选择第一10a或第二单元10b的输出信号,以作为响应于进一步的选择信号c2的输出信号F的另一多路复用器18。
附图9给出了可重构处理装置,其中计算单元10被设置为可重构逻辑单元1的输入多路复用器。计算单元10从通信网络90H,90V可用信号中为可重构逻辑单元1来选择输入信号。虽然在附图9的实施例中可重构逻辑单元1仅具有一个输入,但其可具有多个输入。每一个或者输入的一部分可以被耦合到被设置为输入多路复用器的计算单元10。
在附图9所示的实施例中,计算单元10的选择信号是由辅助计算单元20,21,22提供的。每一个辅助计算单元20,21,22分别从配置存储器M2,M3和M4或通信网络90V中选择一个信号作为其输入信号。此选择是根据由配置存储器M1提供的辅助选择信号进行的。
值得注意的是本发明的保护范围不限于这里所描述的实施例。本发明的保护范围亦不限制于权利要求中的参考数字。词语“包括”并不排除包括权利要求中未提及的其它部分。在一个元件前面的词语“一个”并不排除多个这样的元件。实现本发明部分的手段可以包括以专用硬件的形式来实施或以编程通用处理器的形式来实施。本发明存在于每一个新特征或者特征组合中。