CN1162153A - 用于自定时算法执行的装置和方法 - Google Patents
用于自定时算法执行的装置和方法 Download PDFInfo
- Publication number
- CN1162153A CN1162153A CN97102100.7A CN97102100A CN1162153A CN 1162153 A CN1162153 A CN 1162153A CN 97102100 A CN97102100 A CN 97102100A CN 1162153 A CN1162153 A CN 1162153A
- Authority
- CN
- China
- Prior art keywords
- pulse
- group
- signal
- logic
- self
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
Abstract
一个用于自定时算法执行的装置包括一个功能逻辑组,一个参考时钟输入和一个脉冲序列发生器。功能逻辑组与在参考时钟输入接收到的参考脉冲组同步地接收输入数据;以由脉冲序列发生器按照该功能逻辑的物理特性设定的最大速率对输入数据进行算法计算;产生输出数据;并与参考脉冲组同步地传送输出数据。由脉冲序列发生器设定的最大速率独立于参考脉冲组。
Description
本发明涉及的是待审的美国专利申请,流水号为08/501970,名称是“用于相同步、可变频率计时和通信的系统和方法”,在1995年7月21日申请。
本发明一般说来涉及为高速计算机系统产生内部定时信号的装置和方法。特别地说本发明是用于自定时算法执行的装置和方法,它与主时基并不固定地同步。
在高速计算机系统中,需要一个主时基用于各种必需的切换活动。在一些计算机系统中,一个单个的时钟信号通过几个时钟放大器重新缓冲存储,为在系统中使用的所有存储器设备用作唯一的定时同步源。在另一些系统中,可能使用几个另外的相位不同的时钟信号来驱动不同组的存储器设备,但是通常都与系统中的主时基同步。
如果使用多个时钟信号,则不同的存储器设备由数据流或指令序列以相对不同的速率翻转或改变状态。经常设计这样的多时钟电路,使得在存储器设备之间的功能逻辑能够以其最快可能的速率循环。例如在流水线系统中,功能逻辑在存储器设备中间分配,使得最小目标执行时间的系统设计要求得以维持,而无需同时要求增加功能逻辑数目或存储器设备元件的协同要求增加。
在一些流水线系统中,使用上调和时钟(superharmonic clock)使一定的流水线功能单元的内部次序以较快速率协调运行,而功能单元的输入-输出边界以与系统中剩余的流水线功能单元兼容的较慢的速率协调运行。这种现有技术的方法叫做“微流水线”(micropipelining),包括这样的设备,其中一个流水线功能单元的内存储器设备有一个严格同步的上调和时钟信号,它把流水线同步的微操作与在流水线的输入端口和输出端口上经历的较慢的流速率交错在一起。不足的是,微流水线的缺点包括需要在一个低扭曲树组织中有几个时钟放大器来保证在激发由每个存储器设备实际接收到的信号中保持最低可能的扭曲,还需要一个统一的定时区间。因此不具有在统一的定时区间之内能够操作的短传播延迟的多组逻辑元件难以容纳在微流水线之内。另外,微流水线的概念特别难于通过可重配置逻辑设备(RLD),例如现场可编程门阵列(FPGA)实现,因为在一个RLD中的传播延迟从一个功能单元到另一个功能单元而变化,使得它难以具有一个半全程微流水线时钟(semi-global micropipeline clock)。
在传统的方法中,当使用RLD来实现各种逻辑设计时,用以产生实际RLD互连的大部分“工具”使用一个寄存器传输语言(RTL)范式。这种范式极大地依赖于分开的主时基时钟的存在以驱动功能逻辑和在RLD之内的存储器设备。这种范式也忽略这种效果,即在RLD之内的逻辑设计的物理实现对逻辑设计的总定时性能和硅资源的需求。事实上,RLD工具制造商常常声称他们的逻辑设计范式的优点是并不为适应RLD的物理特征而修改。
其它的高速计算机系统试图避免上面所述的与主时基同步时钟系统相关的困难,他们把计算机的功能任务分成一组异步定时的子任务。不足的是,现存的异步逻辑设计也具有许多限制,例如要求在完成运算任务后产生“完成信号”;完成时间变化或不定;要求外部时钟元件;完成时间依赖于数据;与外部电路的异步连接;与外部电路不连贯的定相数据交换;加在外部时钟电路上的延迟增加了额外的系统复杂性;难于包装在同步外部电路中;以及把整个系统的宽性能绑在外部时钟电路的网络上。
需要的是一个用于自定时算法执行的装置和方法,它在一个使用统一的定时区间的系统之内把获得最快可能的流水线频率时的固有负担从具有最短可能的级间延迟强制要求的同时发生的负担中分出来。
本发明是一个用于自定时算法执行的装置和方法。本发明的装置最好是包括一个功能逻辑组、一个参考时钟输入和一个脉冲序列发生器。功能逻辑组与在参考时钟输入上收到的参考时钟信号同步地接收输入数据;以由脉冲序列发生器按照功能逻辑组的物理特征决定的最大速率对输入数据执行算法计算;产生输出数据;以及与参考时钟信号同步地传输输出数据。由脉冲序列发生器设定的最大速率独立于参考时钟。
本发明的方法最好是包括下述步骤:与参考时钟信号同步地传送输
入数据到功能逻辑组;产生最大速率脉冲序列,以依赖于功能逻辑组的算法执行时间但独立于参考时钟的速率驱动功能逻辑组;响应最大速率脉冲序列从功能逻辑组产生输出数据;与参考时钟信号同步地从功能逻辑传输输出数据。
图1是用于自定时算法执行的装置的一个较佳实施例的框图;
图2A是本发明的脉冲序列发生器的一个较佳实施例的框图;
图2B是在脉冲序列发生器内的起动逻辑的一个较佳实施例的框图;
图2C是在该脉冲序列发生器内的延迟单元的一个较佳实施例的框图;
图2D是在脉冲序列发生器内的脉冲计数器的一个较佳实施例的框图;
图2E是在脉冲序列发生器内的门序列逻辑的一个较佳实施例的框图;
图3是本发明的功能逻辑的一个较佳实施例的框图;
图4是在该功能逻辑内的多路转换器的一个较佳实施例的框图;
图5是在该功能逻辑内的部分乘积生成器的一个较佳实施例的框图;
图6是在该功能逻辑内的部分乘积加法器的一个较佳实施例的框图;
图7是在该功能逻辑内的乘积累加器的一个较佳实施例的框图;
图8是表示本发明的操作的较佳的定时图;
图9A是表示本发明的16位乘16位的较佳的部分乘积相加的矩阵;
图9B是表示本发明的8位乘8位的较佳的部分乘积相加的矩阵;
图10是用于自定时算法执行的一个较佳方法的流程图;
图11是产生脉冲序列的一个较佳方法的流程图;
图12是用于响应上述脉冲序列产生输出的一个较佳方法的流程图。
本发明是用于自定时算法执行的一个装置和方法。通过用设计为执行所选择的算法的一个功能逻辑组给延迟单元配对,本发明以其最大可能的速度执行所选择的算法,而与驱动其它功能逻辑组的任何参考时钟无关。从而与已知的定时装置和方法相比,实现该算法的任何功能逻辑组的定时特性既不需由一个参考时钟的速度制约也不依赖于它。相反,本发明:首先,从其它功能逻辑组接收数据;其次,以基于一个功能逻辑组的一个自定时速率运算这些数据,这一功能逻辑组响应一组自定时脉冲的产生实现该算法;第三,以由其它功能逻辑组可接受的一个已知的特定时间输出数据。其结果,本发明的装置和方法比现有技术来说特别具有优点,因为它允许一个功能逻辑组以独立于另外的功能逻辑组的运行速度或参考时钟的速度操作,从而在维持最快可能的算法执行速度的同时简化了硬件设计。
本发明通过根据功能逻辑组最基本的物理结构审查这些功能逻辑组实现了这些优点。本发明不依赖于寄存器传输逻辑(RTL)范式(paradigm)。相反,本发明裁剪一个唯一的定时电路以适应实现一个算法的功能逻辑组,使得该功能逻辑组能够以其最快可能的速率运行。于是本发明通过把硅资源不仅视为算法执行而且视为定时速率的增量仲裁器(incremental arbiter),从而定义一个新的范式,为在硅资源之内实现逻辑设计。现有技术不知道这种新的范式,因为,首先,在现有技术的系统中逻辑实现的短时冲击只依赖于在存储器设备上看到的副效应;其次,功能逻辑组在现有技术中被机械地视为通过数据的管道,而事实上功能逻辑组也可以被视为减少一个功能逻辑组总执行时间的一个机会;第三,RTL范式不鼓励分析在功能逻辑和存储器设备之间的有利的或整体互连效应;第四,现有技术强调功能逻辑,不鼓励结合局部反馈以便在任何层次的算法实现上产生个体化的定时电路的设计。
本发明最好以可重配置逻辑设备(RLD),例如Xilinx XC4000系列(Xilinx,San Jose,CA)现场可编程门阵列(FPGA)实施。RLD包括一组可配置逻辑块(CLB)。每一CLB最好包括至少一个功能发生器以及一个或多个进位逻辑元件。如熟悉本技术领域的人员所知,FPGA的内部结构通过使用一个配置数据组或配置位流(比特流)可以动态重新配置。在任何给定的CLB之内,特别的逻辑功能是通过功能发生器按照配置位流而产生的。每一个功能发生器具有一个特征的、稳定的信号传播延迟。例如在Xilinx XC4000系列CLB之内,第一和第二功能发生器(类型“F”和“G”)每一个有大约4.5毫微秒(ns)的传播延迟;第三功能发生器(类型H)有大约2.5ns的传播延迟。熟悉本技术领域的人会看出,进位逻辑元件通常包括设计为具有非常小而稳定的传播延迟的进位传播逻辑线路。在Xilinx XC4000系列FPGA之内的进位传播逻辑线路的传播延迟为1.5ns。
本发明通过在RLD内有选择地组合资源产生多级反馈来产生不同的内部传播延迟。这种反馈用来产生个别的定时电路,来驱动RLD之内一个或多个功能逻辑组。本发明最好使用“惯性”延迟而不是唯一依赖于“纯”延迟。惯性延迟定义为传播需要最小脉冲宽度的延迟,而纯延迟是其延迟传播基本是与脉冲宽度无关的。惯性延迟稳定,极容易控制,很有优点。熟悉本技术领域的人会看出,本发明不需在RLD之内实施,相反可以使用其它通常已知的逻辑设备建立。
虽然本发明公开了一种实现X位乘Y位以产生一个P位积(其中X、Y和P是整数)的一个功能逻辑组,但是熟悉本技术领域的人会看出该功能逻辑组也可以设计为执行大量不同的其它算法。所述其它算法可能包括执行任何类型的算法、逻辑、图形、字处理、信号处理和网络操作的步骤。例如,本发明可以用于为有效地使用RLD内部随机存取存储器(RAM)、多端口寄存器文件或在一个RLD内的数据路径选择(例如在FPGA之内的交叉条形开关)而提供定时信号。
为清楚起见,下面图3到图7示出了一个16位乘16位产生一个32位积的例子的细节。然而熟悉本技术领域的人会看出,本发明可以用于实现多于或少于16位的乘积。另外,对于本说明书的剩余部分,下面说明的信号和位最好只有两个状态,逻辑“1”和逻辑“0”。虽然本发明的元件在说明中只响应状态变换的上升缘(例如逻辑“0”到逻辑“1”的变化),但是熟悉本技术领域的人会看出,RLD可以配置为只响应状态变化的下降缘或对上升缘和下降缘都响应。
现在参考图1,其中表示了自定时算法执行装置20的一个优选实施例的框图。装置20包括一个输入缓冲器22、功能逻辑24、一个输出缓冲器26、一个同步状态机30、和一个脉冲序列发生器34。输入缓冲器22是一个传统已知的设备,它在外部电路(未示出)收到线28上的一个参考时钟信号而在线29上保持输入允许信号为状态“1”时,加载从外部电路通过线19接收的X位被乘数或Y位的乘数。参考时钟最好使用在系列号为No08/501970,名称为“用于相同步、可变频率计时和通信的系统和方法”的美国专利申请中叙述的时钟装置实现。熟悉本技术领域的人会看出,可以代以任何传统已知的时钟发生设备来提供参考时钟信号。
输入缓冲器22通过线21输出X位被乘数和通过线23输出Y位乘数到功能逻辑24。功能逻辑24接收被乘数和乘数,并按照乘法算法以依赖于脉冲序列发生器34但独立于参考时钟的定时速率相乘。功能逻辑24执行乘法算法需要的时间是其算法执行时间。在功能逻辑24之内的传播延迟决定了它的算法执行时间,并且通常是基于它所包含的一组逻辑设备而计算的。功能逻辑24通过线25输出一个P位的乘积到输出缓冲器26。功能逻辑24的细节将在下面参考图3进行说明。输出缓冲器26是传统类型的缓冲器,它在外部电路收到线28上的参考时钟信号而在线31上保持输入允许信号为状态“1”时,通过线27加载然后输出P位乘积到外部电路。
同步状态机30是现有技术中已知的类型,它在线28上的参考时钟两次翻转且外部电路在线29上同时保持输入允许的逻辑“1”状态时,把在线32上的起动信号90转变为逻辑“1”。同步状态机30在把起动信号90设置为逻辑“1”之前等待两次参考时钟翻转,以便输入缓冲器22可以顺序从外部电路接收X位的被乘数和Y位的乘数。
脉冲序列发生器34监视线32上从同步状态机30来的起动信号90,并在起动信号90转变到逻辑“1”时依次通过线33产生和发送一组信号到功能逻辑24。下面参考图2A说明脉冲序列发生器34的操作和它所输出的信号的细节。一旦装置20以物理设备实现,或者按照一个给定的物理设备的要求设计,功能逻辑24的传播延迟和脉冲序列发生器34的定时速率就已知,于是,输出数据在从输入数据进入输入缓冲器22计时的一个已知时间之内出现在输出缓冲器26上。然而这一已知时间由于物理设备作为设备温度和老化的函数的正常性能变化而稍微改变。不过由于脉冲序列发生器34最好为功能逻辑24的一个必备部分,如下面将要叙述的,脉冲序列发生器34和功能逻辑24都经历同样的温度和时间变化。其结果脉冲序列发生器34和功能逻辑24相当匹配,脉冲序列发生器34对功能逻辑24既不“过时钟”(over-clock),也不“欠时钟”(under-clock)。
现在参考图2A,其中示出了本发明的脉冲序列发生器34的一个较佳实施例的框图。脉冲序列发生器34包括起动逻辑36、延迟单元38、脉冲计数器40和门序列逻辑42。脉冲序列发生器34的脉冲速率、脉冲持续时间和脉冲周期数(如果有的话)最好对其驱动的功能逻辑24优化。脉冲序列发生器34还最好使用接近功能逻辑24的逻辑设备实现,以便产生相似的对温度和老化效应的响应,如上所述。尽管下面只叙述了一个驱动整组功能逻辑24的脉冲序列发生器34,但是也可以设计多个脉冲序列发生器34用来在功能逻辑24运行期间以不同的速率和在不同时间驱动功能逻辑组24的特定子组。在这样可选的实施例中,多个脉冲序列发生器34中的每一个最好接收起动脉冲104。
当起动信号90在线32上转变为逻辑“1”时,起动逻辑36在线43上产生一个复位(1)脉冲105(参见图8)和在线35上产生一个起动脉冲。复位(1)脉冲105启动脉冲计数器40。起动逻辑36的细节在下面参考图2B给出。延迟单元38接收起动脉冲并在第一个已知的延迟之后,在线39上产生一个延迟单元输出信号133(参见图8)。延迟单元38的细节下面参考图2C给出。起动逻辑36通过线37接收反馈信号132(参见图8),反过来在线35上产生下一起动脉冲,于是产生一个自定时振荡。该自定时振荡的周期由与起动逻辑36、延迟单元38和线37有关的传播延迟决定。起动逻辑36和延迟单元38物理上最好放置在RLD之内,使得与线37有关的传播延迟最小。在使用Xilinx XC4000系列FPGA的示范实施例中,当使用传统的放置指令来定义CLB的安排时,与线37有关的延迟处于1.7和2.2ns之间。当在线41上从脉冲计数器40接收到一个中止信号时,起动逻辑36停止在线35上产生起动脉冲,于是中止自定时振荡。
脉冲计数器40接收线39上的延迟单元输出信号133并作为响应在线44上产生一个脉冲计数,和在线41上产生中止信号。该脉冲计数在线43上复位为一个初始脉冲计数(优选为1),并每当延迟单元输出信号133翻转时增量。一旦该脉冲计数达到一个最大的脉冲计数值时,则脉冲计数器40在线41上产生中止信号。线44包括一些足够传输最大脉冲计数的二进制位线。例如,在16位与16位的乘法中,脉冲计数由于下面的理由需要8个状态。于是,线44必须至少包括三根二进制位线,这里定义为MUX(0)92(最低有效位(LSB))、MUX(1)94和MUX(2)96(最高有效位(MSB))(参见图8)。脉冲计数器40的细节下面参考图2D给出。
门序列逻辑42通过线44接收脉冲计数和通过线39接收延迟单元输出信号133。作为响应,门序列逻辑42在线45上产生一个复位(2)信号97(参见图8),在线46上产生一个部分乘积加法器时钟信号(PPS-CLK)98(参见图8),在线47上产生一个乘积累加器时钟(1)信号(PA-CLK(1))99(参见图8),在线48上产生PA-CLK(2)100(参见图8)和在线49上产生PA-CLK(3)101(参见图8)。每一个CLK98、99、100、101最好是从脉冲计数和延迟单元输出信号133导出的一个方波信号。脉冲计数信号44、复位(2)信号97、PPS-CLK46和PA-CLK47、48、49一起作为在线33上到功能逻辑24的一组输出信号,如图1所示。然而,根据自定时范式,线33上的信号输出没有一组是有目的地与在线28上的参考时钟同步的。关于门序列逻辑42的细节下面参考图2E给出。
现在参考图2B,其中示出了本发明的起动逻辑36的一个优选实施例的框图。起动逻辑36包括按图2B中所示连接的一组逻辑设备。在以Xilinx XC4000系列FPGA实现的示范实施例中,起动逻辑36包括传统的Xilinx二进制元件FDS、AND2B1、AND2B2和OR2B1。
现在参考图2C,其中示出了本发明的延迟单元38的一个优选实施例的框图。延迟单元38优选在RDL内实现,并在一组“n”个CLB138、144、150、154中包括进位逻辑元件,其中n是一个整数。优选每一进位逻辑元件包括一个高速进位传播电路。延迟单元38在这组n个CLB中另外还包括一个功能发生器的子组以方便信号在延迟单元38和对延迟单元38的外部逻辑,亦即起动逻辑36、脉冲计数器40和门序列逻辑42之间形成通路。在一个示范的实施例中,延迟单元38是用Xilinx XC4000系列FPGA通过使用“EXAMINE CI”和“FORCE CI”指令实现的,这两个指令分别相应于检察和强迫载入信号。
在每一个CLB138、144、150、154中使用的逻辑把一个已知的延迟(对Xilinx XC4000进位逻辑元件为1.5ns,对Xilinx XC4000F型功能发生器为4.5ns)加在延迟单元38上。延迟单元38的操作频率优选通过用增加或者减少以串联方式连接的进位逻辑元件的数目而变化。在较佳实施例中,希望得到最大速率的自定时脉冲序列发生器34。因此组成延迟单元38的CLB138、144、150、154的数目取决于功能逻辑24的一个最慢的部分。其结果,如果功能逻辑24的最慢部分用″t”ns执行,则优选用总延迟等于“t”ns的一半(亦即周期的一半)的“n”个CLB组成延迟单元38。也就是说,由于RLD具有可实时重新编程的能力,延迟单元38的延迟可以在功能逻辑24进行处理操作期间动态改变。这允许功能逻辑24的第一组操作以第一自定时速率进行功能逻辑24的第二组其它操作以第二自定时速率执行等等。
在第一个CLB138中,功能发生器(1)140接收线35上的起动脉冲,并把该脉冲传给进位逻辑元件(1)139。然后进位逻辑元件(1)139通过进位输出线142把该脉冲传给第二个CLB144。在第二CLB144之内,进位逻辑元件(2)145接收脉冲并将其传给功能发生器(2)146,并通过进位输出线148也把该脉冲传给第三CLB150。传送脉冲到功能发生器(2)146使得该脉冲从延迟单元38在那一点被“分接”一下,使其成为在线39上的延迟单元输出信号133。这里“分接”定义为在延迟单元38之内的连接,它便利了延迟单元外的信号路径选择。这种“分接”也可能以另一种方案在延迟单元38之内的一个不同的位置发生,或者在几个地方发生,取决于被实现的该组功能逻辑24。其中线39被分接的准确位置在延迟单元38内优选如此选择,使得由脉冲序列发生器在线33上产生的信号与启动装置20运行的外部电路(未示出)相位一致,如参考图1叙述的那样。
在第三个CLB150中,进位逻辑元件(3)151接收脉冲并把它传送给在下一CLB中的一个进位逻辑元件,等等,直到该脉冲被传送到在“第n个”CLB154之内的进位逻辑元件(n)。在第三CLB150和“第n个”CLB154之间的任何CLB优选具有同样的结构和有与第三CLB150同样的接口。在第三CLB150之内,不需功能发生器(3)152操作延迟单元38,因为第三CLB150未被分接来把该脉冲送达延迟单元38外部的目的地。因此功能发生器(3)152可以用来实现部分功能逻辑24的操作,这极具优点。
在第n个CLB中进位逻辑元件(n)155接收脉冲并将其传送给功能发生器(n)156,它把该脉冲翻转并将翻转后的脉冲在线37上作为反馈信号132输出。正是通过对该脉冲的翻转,自定时振荡器从逻辑“1”变为逻辑“0”。熟悉本技术领域的人会看出也可以使用功能发生器(1)140使脉冲翻转。
延迟单元38的运行频率可以通过增加或减少串连的进位逻辑元件的数目而改变(亦即通过改变“n”的值)。在另一可选的实施方案中,“n”可以是零,结果使起动脉冲、反馈信号132和延迟单元输出信号133成为同一信号。还有另一个实施例,延迟单元38的运行频率可以通过附属的信号路径通过一个或多个功能发生器而改变。还有再一个实施例,其中延迟单元38的运行频率可以使用在具有良好定义的延迟特性的RLD之内的信号路径资源而修改或调整。熟悉本技术领域的人会看出,可以使用其中具有已知最大信号传播延迟的单个元件的逻辑,以不可重新配置的设备来实施延迟单元38。
现在参考图2D,其中示出了本发明的计数器40的一个优选实施例的框图。脉冲发生器40包括以图2D中所示操作连接的一组逻辑设备160、162、164(最好使用库元件ROM16X1、FDR和AND3B3在Xilinx XC4000系列FPGA中产生)。多个ROM160与触发器162连接到一起实现脉冲计数。触发器162的当前状态码Q3、Q2、Q1、Q0用于产生脉冲计数,用一个当前状态码相应于中止信号134。脉冲计数器40一直增量直到在线43上收到复位(1)脉冲105。要在ROM160中存储的编码从下面的当前状态/下一状态表中产生。
当前状态 下一状态
Q3 Q2 Q1 Q0 RD3 RD2 RD1 RD0
0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 1
0 0 1 1 0 1 0 0
0 1 0 0 0 1 0 1
0 1 0 1 0 1 1 0
0 1 1 0 0 1 1 1
0 1 1 1 1 0 0 0
1 0 0 0 1 0 0 0
1 0 0 1 1 0 0 0
1 0 1 0 1 0 0 0
1 0 1 1 1 0 0 0
1 1 0 0 1 0 0 0
1 1 0 1 1 0 0 0
1 1 1 0 1 0 0 0
1 1 1 1 1 0 0 0
现在参考图2E,其中表示了本发明的门序列逻辑42的一个优选实施例的框图。门序列逻辑42由一组示于图2E中操作连接的逻辑设备组成(最好使用库元件D3_8E、AND2B1、FD、FD_1、NOR2、OR8和OR7在Xilinx XC4000系列FPGA内部分产生)。门序列逻辑42使用在图2E中所示的一组假信号保护电路(gIitch guardian circuit)170解码8个状态。解码在时间上以在线44上的脉冲计数顺序进行。最后脉冲计数状态(亦即(0,0,0))仅被解码一次。CLK46、47、48、49由“或操作”假信号保护电路组170的输出而产生。熟悉FPGA设计技术的人会看出,门序列逻辑42的另一可选的实施例可以通过德摩根(DeMorganization)局部状态解码器使用线与门电路来代替线或门电路。按照每一CLB封装有高效双触发器的策略,优选的门序列逻辑42包括一个偶数数目的负边缘触发的触发电路和正边缘触发的触发电路,其中同样时钟的触发器互连。
现在参考图3,其中表示了本发明的功能逻辑24的一个优选实施例的框图。功能逻辑24包括一个多路转换器(MUX)50,一个部分乘积生成器(PPG)52,一个部分乘积加法器(PPS)54和一个乘积累加器(PA)56。MUX50接收线21上的X位被乘数,并响应在线44上的脉冲计数输出S位的被乘数的子集,下面参考图4将详细叙述。PPG52用S位被乘数子集乘线23上的Y位乘数,并向PPS54输出一组部分乘积,其在下面参考图5详细叙述。PPS54合并这组部分乘积并响应线46上的PPS-CLK98输出一个部分乘积和到PA56,其在下面参考图6详细叙述。PA56从起动逻辑36接收线45上的一个复位(2)脉冲107(参见图8),并作为响应复位其内部触发器(FF)为零。在接收这一复位(2)脉冲107之前,先前的P位乘积留在线25上。PA56通过把部分乘积和加到乘积累加位的一个子集而产生一个乘积累加,并响应线47、48、49上的PA-CLK(1、2、3)99、100、101(参考图8)在线25上输出一个P位的乘积,其在下面参考图7详细叙述。在每一个S位的被乘数子集由Y位乘数相乘并由PA56累加后,由功能逻辑24执行完整的X位与Y位的乘积。
现在参考图4,其中表示了在功能逻辑24中的MUX的一个优选的实施例的框图。MUX50包括一个第一MUX58和一个第二MUX60。每一个MUX58和60通过线21连接到输入缓冲器22,使得每一个接收一半的X位被乘数。第一MUX58接收被乘数的偶数位(亦即对16位的被乘数为20、22、…214),而第二个MUX60接收被乘数的奇数位(亦即对16位的被乘数为21、23、…215)。每一个MUX58、60通过线44接收脉冲计数。在X位与Y位相乘期间,脉冲计数从初始脉冲计数增量直到并包括最大脉冲计数。在被乘数为16位的场合,初始脉冲计数最好相应于线44上的(0,0,1),其中“1”是LSB,而最大脉冲计数最好相应于(0,0,0)。于是脉冲计数最好从(0,0,1)变化到(0,1,0),(0,1,1),(1,0,0),(1,0,1),(1,1,0),(1,1,1),然后为(0,0,0)。
第一和第二MUX58、60输出一个S位被乘数子集到PPG52。于是一个两位的被乘数子集(21和2i+1)被送往PPG52,其中位2i是从第一MUX58选取,而位2i+1是从第二MUX60选取。对于一个16位乘以16位的乘法,“S”等于“2”而“i”是一个整数,在脉冲计数从(0,0,1)变化到(0,0,0)时,i最好位于0到14之间。
现在参考图5,其中表示了在功能逻辑之内的PPG52的一个
较佳实施例的框图。PPG52包括第一组部分乘积乘数(PPM)51和第二组部分乘积乘数PPM53,其输入连接起来以便从第一和第二MUX58、60接收S位被乘数子集和在线23上接收Y位乘数。从第一和第二组PPM51、53的输出连接到PPS54。对于一个16位乘16位的乘法,每一组PPM51、53包括4个并行的2位乘以2位的PPM运算,产生总共32位的积,其在每次乘法运算后被送往PPS54。在线23上从16位乘数来的每一对两位的乘数被引向8个PPMs中的一个并在每一个部分乘积乘法运算期间保持恒定。对每一个脉冲计数,一个2位的被乘数子集(亦即2i和2i+1)被送往8个PPM中的每一个,从第一个2位被乘数对(20&21)开始,其时脉冲计数置为1,以最后两位被乘数对(214&215)结束,其时脉冲计数置为零。如图5中为清楚起见所示,从第一和第二组PPM51、53来的两个16位部分乘积的列位置竖直对齐,因为它们的位将由PPS54相加,这在该技术领域已公知。位20是最低有效位(LSB)而位217是最高有效位(MSB)。熟悉本技术领域的人会看出,虽然叙述的是产生16位乘以16位的部分乘积,但是同样的说明可类似地应用于产生X位乘以Y位部份乘积的一般情况。
现在参考图6,其中表示了功能逻辑24内的PPS54的一个较佳实施例的框图。PPS54包括一个PPS加法器64,一个PPS增量器66和一组PPS触发器68。连接PPS54以接收由PPG52产生的两个部分乘积。PPS54相加两个部分乘积并产生一个部分乘积和。在16位与16位的乘法的场合,从第一组PPM51来的两个LSB(20-21)直接由PPS触发器68接收;PPS加法器64从第一和第二组PPM51、53两者中相加14位(22-215);PPS增量器66从第二组PPM 53接收两个MSB(216-217)和从14位的PPS加法器64接收进位输出;产生一个18位的部分乘积和(20-217)并输出。从加法得到的部份乘积和,响应线46上的PPS-CLK98的翻转,存储在PPS触发器68内。
现在参考图7,其中表示了在功能逻辑24内的PA56的一个优选的实施例的框图。PA56包括一个为从PPS54接收部分乘积和以及执行累加而连接的PA加法器70,一个PA增量器71和用于最终存储P位乘积的一组PA触发器72、74、76、78、80、82、84、86、88。对于16乘以16的乘法:PA加法器70是一个16位的加法器;PA增量器71是一个2位增量器;而PA触发器组72、74、76、78、80、82、84、86、88包括第一触发器组72,第二触发器组74,第三触发器组76,第四触发器组78,第五触发器组80,第六触发器组82,第七触发器组84,第八组触发器86,和第九触发器组88,用以存储一个32位的乘积(p0-p31,其中p0是LSB,而p31是MSB)。从PPS54接收到的第一部分乘积和的两个LSB(20-21)响应线47上的PA-CLK(1)99的上升缘存储在第二触发器组74,从而成为32位乘积的两个LSB(p0-p1)。一个16位乘积累加子集(从16位加法器70和两位增量器71的输出的位22到位217)响应线48上的PA-CLK(2)100的上升缘存储在第一触发器组72中。16位加法器70把从PPS54接收的每一部分乘积和的位20到位215加到16位乘积累加子组上以产生一个乘积累加(从16位加法器70和两位增量器71的输出的位20到位217)。然后每一乘积累加的位22到位217成为乘积累加子组,反馈到第一触发器组72,而乘积累加位20和21,每一乘积累加之后,响应线49上的PA-CLK(3)101的顺序移过通过第三到第九触发器组76、78、80、82、84、86、88。于是:在一个PA-CLK(1)99翻转之后,位p0和p1存储在第二触发器组74中;在八个PA-CLK(2)100翻转后,位p16到位p31存储在第一触发器组72中;和在七个PA-CLK(3)101翻转后,位p2和p3存储在第九触发器组88中,位p4和p5存储在第八触发器组86中,位p6和p7存储在第七触发器组84中,位p8和p9存储在第六触发器组82中,位p10和p11存储在第五触发器组80中,位p12和p13存储在第四触发器组78中,和位p14和p15存储在第三触发器组76中。然后32位乘积(位p0到p31)通过线25送往输出缓冲器26。
现在参考图8,其中表示了本发明的操作的较佳定时图89。图8所示的定时波形是理想化了的,因此逻辑效果被认为是发生在任何状态变换的瞬间。定时图89包括起动信号90,快起动信号128,起动脉冲信号130,反馈信号132,延迟单元输出信号133,中止信号134,RESET(1)信号91,MUX(0)信号92,MUX(1)信号94,MUX(2)信号96,PPS-CLK信号98,RESET(2)信号97,PA-CLK(1)信号99,PA-CLK(2)信号100,PA-CLK(3)信号101,乘积信号102,第一起动信号104,下一起动信号106,第一PPS-CLK信号108,第一PA-CLK(1)信号109,第一PA-CLK(2)信号110,第一PA-CLK(3)信号112和乘积计算时间114。第一起动信号104由脉冲序列发生器34通过线32接收,如图2A所示。响应第一起动信号104,起动逻辑36通过在线43上发送复位(1)脉冲105并通过线44发送MUX(0)92,MUX(1)94和MUX(2)96信号到MUX50分别初始化MUX(0)92(LSB),MUX(1)94和MUX(2)96(MSB)信号为(0,0,1)。作为响应,MUX50选择头两位被乘数对(2-21)用于16位与16位相乘,如上所述。门序列逻辑42延迟送出第一PPS-CLK信号108到PPS54,直到第一个18位的部份乘积和出现在PPS触发器68的输入。在第一个18位部分乘积和存储在PPS触发器68之后,MUX(0)92,MUX(1)94和MUX(2)96信号增量到下一状态(0,1,0)以准备下一个18位的部分乘积和。门序列逻辑42也通过线47延迟发送出第一PA-CLK(1)信号109直到该18位的部分乘积和出现在第二触发器组74的输入。就在PA-CLK(1)脉冲109通过线47送出之前,起动逻辑36通过线45产生复位(2)脉冲107以清除先前的P位PRODUCT(积)102。PA-CLK(1)99在每一次完成16位与16位的乘法运算时翻转一次。仅在第一16位乘积累加子集出现在第一触发器组72的输入之后才通过线48产生第一PA-CLK(2)信号110,之后,每当下一个16位的乘积累加子集出现在第一触发器组72的输入时PA-CLK(2)100翻转。PA-CLK(2)100在每一次完成16位与16位的乘法运算过程中翻转8次。仅在第二个18位的乘积累加出现在第三触发器组76的输入之后,才通过线49产生第一PA-CLK(3)信号112,之后,每当下一个18位的乘积累加出现在第三触发器组72的输入时PA-CLK(3)101翻转。PA-CLK(3)101在每一次完成16位与16位乘积运算过程中翻转7次。由于实施本发明的一个物理设备出现的传播延迟,PRODUCT(乘积)102在乘积计算时间114之内被计算而已知。其结果,在第一起动信号104之后作为第二起动信号106可能被送往脉冲系列发生器34的最早时间是在PRODUCT信号102稳定之后。虽然只叙述了16位乘16位的情形,但是熟悉本技术领域的人会看出,可以以相似的方式实现X位与Y位的乘法。
现在参考图9A,其中表示了由本发明执行的16位乘16位的较佳的选部分乘积相加的矩阵。对于16位与16位相乘,PPS54经过8次相加而PA56经过7次累加,最后通过线25产生一个对输出缓冲器26的32位的乘积输出,如上所述。在矩阵的顶部,表示了32位积的每一位的列,其中LSB为20,MSB为231。参见标以“I,II,III,IV,V,VI,VII”和“VIII”的矩阵部分,表示了PPG52之内的8个部分乘积62的对齐。在部分“I”,16位被乘数的位20和21用16位的乘数相乘;在部份“II”,16位被乘数的位22和23用16位乘数相乘;等等,直到在部分“VIII”16位被乘数的位214和215用16位乘数相乘。PA56以在矩阵中指示的方式相加这8部分,产生一个32位的乘积。
现在参考图9B,其中表示了根据本发明执行的8位乘8位的一个优选的部分乘积相加的矩阵。对于8位与8位相乘,设计PPS54经过4次相加和PA56经过3次累加,最后通过线25产生一个16位的乘积,输出到输出缓冲器26,如上所述。在矩阵的顶部,表示了16位乘积的每一位的列,其中LSB为20,MSB为215。参考标以“I,II,III”和“IV”的矩阵部分,表示了在PPG52之内的4个部分乘积乘数62的组合。在部分“I”,8位被乘数的位20和21用8位乘数相乘;在部分“II”,8位被乘数的位22和23用8位乘数相乘,等等,直到在部分“IV”8位被乘数的位26和27用8位乘数相乘。PA56以在矩阵内指示的方式把4部分相加,产生一个16位的乘积。
现在参考图10,其中表示了用于自定时算法执行的一个较佳方法的流程图。该较佳方法从步骤200开始,其中当线29上的输入使能设为逻辑“1”时,参考时钟的翻转引起输入缓冲器22把输入数据通过线21和23以上述方式与参考时钟翻转同步传输到功能逻辑24。接着在步骤202,响应起动信号90在线32上从逻辑“0”转变到逻辑“1”,脉冲序列发生器34通过线33产生一个最大速率脉冲序列,以依赖于功能逻辑24的算法执行时间但独立于线28上的参考时钟的速率驱动功能逻辑24。在图11中详细叙述步骤202。在步骤204,功能逻辑24响应线33上的最大速率脉冲序列在线25上产生输出数据。在图12中详细叙述204。在步骤206,当在线31上的输出使能置为逻辑“1”时,输出数据响应线28上的参考时钟翻转并与之同步地从功能逻辑24通过线25传输输出数据到输出缓冲器26,如上所述。在步骤206之后,较佳方法结束。
现在参考图11,其中表示产生一个脉冲序列(图10的步骤202)的一个优选方法的流程图。该优选方法在步骤250以起动逻辑36监视线32上的起动信号90和线41上的中止信号的状态而开始。在步骤252,如果起动信号90转变为逻辑“1”而中止信号依然设定为“0”,则该方法前进到步骤254,否则该方法返回到步骤250。在步骤254,起动逻辑36初始化脉冲计数器40,如上所述。在步骤255起动逻辑36把一个起动脉冲传送到延迟单元38,如上所述。在下一步骤256,脉冲计数器40增量脉冲计数信号(亦即对16位乘16位的乘法为MUX(0)92,MUX(1)94和MUX(2)96)以响应延迟单元输出信号133,如上所述。在延迟单元38之内延迟单元输出信号被分接的位置可以改变,以便把脉冲序列发生器34的定时脉冲与连接到装置20上的外部电路相位校准。在步骤258,门序列逻辑42以上述方式响应脉冲计数信号,产生PPS-CLK信号98和PA-CLK信号99、100、101。在步骤260,如果脉冲计数信号等于最大脉冲计数信号,则该方法前进到步骤262,否则该方法返回到步骤256。在步骤262,脉冲计数器40通过设定线41上的中止信号为逻辑“1”而停止发送起动脉冲到延迟单元38。在步骤262之后,该优选方法结束。
现在参考图12,其中表示了响应脉冲序列(图12的步骤204)而产生输出数据的一个较佳方法的流程图。该较佳方法在步骤300以MUX50输入X位被乘数,PPG52输入Y位的乘数,和起动逻辑36初始化部分乘积和以及乘积累加为零而开始,如上所述。在步骤302,MUX50以上述方式选择下一S位被乘数子集。在步骤304,PPG52用Y位乘数乘当前S位被乘数子集(亦即当前子集是在步骤302中选择的下一子集),产生部分乘积送往PPS54,如上所述。在下一步骤306,PPS54产生部分乘积和并以上述方式送往PA56。在步骤308,PA56把部分乘积和加到乘积累加上,如上所述。在步骤310,如果下一S位被乘数子集还需要用Y位乘数相乘的话,则该方法返回到步骤302,否则该方法前进到312。在步骤312,PA56输出P位乘积到输出缓冲器26。在步骤312之后,该较佳方法结束。
本发明优选用于计算系统内。在现有技术中,设计提供高速特定算法实现的电路是由多层电路构造的。每一电路层接收一组信号,执行一组特定的操作,并与参考时钟同步地输出一组结果。信号从一层传输到另一层。这种现有技术的电路设计常常需要许多电路层,使得必须使用大量的硬件资源,这是不希望的。与现有技术相比,本发明通过以最大的自定时速率一次又一次重新使用最低数量的硬件资源实现一个算法而产生结果。也就是说,从接收起动信号到产生中止信号重复使用同一组硬件资源来产生结果。本发明使用比现有技术需要的高速电路少得多的硬件资源提供一种实现一个算法的设备,而不会有明显的产生结果的速率损失。这在用RLD实现一个或多个不同方式的本发明时特别具有优点。
熟悉本技术领域的人会看出,上述本发明相对于现有逻辑设计有很多优点。本发明由于现在的非同步逻辑设计特别具有优点。例如,本发明:不需要在完成操作任务后产生“完成信号”;已知或预见完成时间;不需要外部时钟元件,相反有其自己的整体脉冲系列定时元件;具有独立于数据的完成时间;可以与外部电路同步的接口;可以与外部电路进行内在的相位数据交换;在给定时元件增加延迟时只需增加局部电路另外的复杂程度;非常易于封装在同步外部电路中;只影响一组局部电路的性能而不影响整个外部电路系统。
虽然本发明是参考特定的较佳实施例叙述的,但是熟悉本技术领域的人会看出,可以进行各种修改,这样的修改可以产生本发明另外的实施方案。例如延迟单元38可以设计为随RLD配置连续循环一个脉冲,从而取消起动逻辑36。在这样的实施例中,使用一个RS触发器能够响应起动信号使多路转换器把延迟单元输出信号传送给脉冲计数器40和门序列逻辑42。熟悉本技术领域的人还会看出,功能逻辑不限于自定时乘法器。功能逻辑可以修改为提供包括(但不限于)下述功能:自定时除法器,自定时卷积器,或自定时信号处理器。下述权利要求限定了本发明对较佳实施例可能提供的变化和修改。
Claims (21)
1.自定时算法执行装置,包括:
为以第一速率接收输入数据而连接的一个功能逻辑组,用于以独立于第一速率的第二速率产生输出数据,并以第一速率传输输出数据;
一个脉冲序列发生器,用于相应于第二速率产生一个自定时脉冲序列,该脉冲序列发生器用于控制功能逻辑。
2.权利要求1的装置,其中:
该功能逻辑组具有一个予测的执行时间;第二速率是基于该预测执行时间的一个最大速率。
3.权利要求1的装置,其中功能逻辑和脉冲序列发生器这样位于一组硬件资源之内,使得能同步地响应硬件资源的操作参数变化。
4.权利要求1的装置,其中脉冲序列发生器包括产生自定时振荡的一个延迟单元。
5.权利要求4的装置,其中延迟单元包括一组串联的逻辑设备,每一个逻辑设备具有一个可预测的传播延迟。
6.权利要求5的装置,其中该组串联逻辑设备包括一组进位逻辑元件。
7.权利要求6的装置,其中该组进位逻辑元件包括在可重配置逻辑设备之内的进位传送逻辑。
8.权利要求4的装置,其中脉冲序列发生器另外包括门序列逻辑,用以产生一组时钟信号,门序列逻辑用以接收延迟单元输出信号和交付该组时钟信号到功能逻辑以提供第二速率。
9.权利要求8的装置,其中脉冲序列发生器另外包括一个脉冲计数器用以产生一个脉冲计数信号,该脉冲计数器用以接收延迟单元输出信号。
10.权利要求9的装置,其中脉冲序列发生器另外还包括起动逻辑,用以产生一个起动脉冲来起动延迟单元的操作。
11.权利要求4的装置,其中该逻辑单元包括一个乘法器,该乘法器包括:
接收被乘数的一个多路转换器;
接收乘数和被乘数位的子集的一个部分乘积生成器,用于产生一组部分乘积;
接收该组部分乘积的一个部分乘积加法器,用于产生一个部分乘积和;以及
接收部份乘积和的一个乘积累加器,用于累加部分乘积和以产生乘积,
其中乘法器按照由延迟单元产生的自定时振荡控制。
12.在一个可重配置逻辑设备内的一个脉冲序列发生器,该脉冲序列发生器包括一组产生自定时振荡的进位逻辑元件。
13.控制自定时算法执行系统的装置,该自定时算法执行系统包括功能逻辑,其接收输入数据并响应一组控制信号产生输出数据,该装置包括:
接收起动信号并作为响应产生起动脉冲的起动逻辑;
接收起动脉冲并作为响应产生延迟单元输出信号和反馈信号的延迟单元;
接收延迟单元输出信号和作为响应产生脉冲计数信号和有选择地产生中止信号的脉冲计数器;以及
接收脉冲计数信号和作为响应产生该控制信号组的门序列逻辑,
其中,该启动逻辑接收反馈信号,并作为响应,在未产生中止信号时,再产生起动脉冲。
14.为一个包括一组功能逻辑和一个脉冲序列发生器的装置所用的自定时算法执行的方法,该方法包括的步骤有:
以第一速率接收输入数据;
以独立于第一速率的第二速率产生一个自定时脉冲序列;
响应该脉冲序列以第二速率处理输入数据;以及
以第一速率输出输出数据。
15.权利要求14的方法,其中产生脉冲序列的步骤以一个依赖于与该组功能逻辑有关的执行时间的最大速率执行。
16.权利要求14的方法,其中:
接收输入数据的步骤与参考时钟同步地执行;
产生步骤以独立于参考时钟的自定时速率执行;以及
输出步骤与参考时钟同步地执行。
17.权利要求16的方法,其中产生步骤包括的步骤有:
响应起动信号产生一个自定时振荡;
维持自定时振荡,直到接收到中止信号。
18.权利要求17的方法,其中产生步骤另外还包括的步骤有:
产生一个脉冲计数信号;
产生一组控制信号相应于自定时振荡的周期的速率控制输入数据的处理。
19.权利要求14的方法,其中处理步骤包括的子步骤有:
通过把乘数和被乘数的位的子集相乘产生一组部分乘积;
通过相加该组部分乘积产生一个部分乘积和;
累加该部分乘积和与先前的部分乘积和;并重复处理步骤中的每一子步骤,直到产生一个乘积。
20.用于自定时算法执行的一个装置,该装置包括:
以第一速率接收数据的设备;
以第二速率产生自定时脉冲序列的设备,第二速率独立于第一速率;
以第二速率处理输入数据以响应自定时脉冲序列产生输出数据的设备;以及
以第一速率输出输出数据的设备。
21.权利要求20的装置,其中产生装置包括产生一个自定时振荡的设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/590,499 US5854918A (en) | 1996-01-24 | 1996-01-24 | Apparatus and method for self-timed algorithmic execution |
US590499 | 1996-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1162153A true CN1162153A (zh) | 1997-10-15 |
CN1103951C CN1103951C (zh) | 2003-03-26 |
Family
ID=24362511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN97102100.7A Expired - Fee Related CN1103951C (zh) | 1996-01-24 | 1997-01-23 | 用于自定时算法执行的装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5854918A (zh) |
JP (1) | JP3784476B2 (zh) |
CN (1) | CN1103951C (zh) |
DE (1) | DE19702326B4 (zh) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
EP1329816B1 (de) | 1996-12-27 | 2011-06-22 | Richter, Thomas | Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.) |
DE19654846A1 (de) | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
DE19704728A1 (de) * | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6317842B1 (en) * | 1999-02-16 | 2001-11-13 | Qlogic Corporation | Method and circuit for receiving dual edge clocked data |
JP2003505753A (ja) | 1999-06-10 | 2003-02-12 | ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング | セル構造におけるシーケンス分割方法 |
US6675306B1 (en) | 2000-03-10 | 2004-01-06 | Ricoh Company Ltd. | Method and apparatus for phase-lock in a field programmable gate array (FPGA) |
DE50115584D1 (de) | 2000-06-13 | 2010-09-16 | Krass Maren | Pipeline ct-protokolle und -kommunikation |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
AU2002347560A1 (en) | 2001-06-20 | 2003-01-02 | Pact Xpp Technologies Ag | Data processing method |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
WO2003060747A2 (de) | 2002-01-19 | 2003-07-24 | Pact Xpp Technologies Ag | Reconfigurierbarer prozessor |
AU2003214003A1 (en) | 2002-02-18 | 2003-09-09 | Pact Xpp Technologies Ag | Bus systems and method for reconfiguration |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
EP1537486A1 (de) | 2002-09-06 | 2005-06-08 | PACT XPP Technologies AG | Rekonfigurierbare sequenzerstruktur |
US7007114B1 (en) | 2003-01-31 | 2006-02-28 | Qlogic Corporation | System and method for padding data blocks and/or removing padding from data blocks in storage controllers |
US7492545B1 (en) | 2003-03-10 | 2009-02-17 | Marvell International Ltd. | Method and system for automatic time base adjustment for disk drive servo controllers |
US7870346B2 (en) | 2003-03-10 | 2011-01-11 | Marvell International Ltd. | Servo controller interface module for embedded disk controllers |
US7039771B1 (en) | 2003-03-10 | 2006-05-02 | Marvell International Ltd. | Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers |
US7219182B2 (en) | 2003-03-10 | 2007-05-15 | Marvell International Ltd. | Method and system for using an external bus controller in embedded disk controllers |
EP1676208A2 (en) | 2003-08-28 | 2006-07-05 | PACT XPP Technologies AG | Data processing device and method |
US7139150B2 (en) | 2004-02-10 | 2006-11-21 | Marvell International Ltd. | Method and system for head position control in embedded disk drive controllers |
US8166217B2 (en) | 2004-06-28 | 2012-04-24 | Marvell International Ltd. | System and method for reading and writing data using storage controllers |
US8032674B2 (en) | 2004-07-19 | 2011-10-04 | Marvell International Ltd. | System and method for controlling buffer memory overflow and underflow conditions in storage controllers |
US7757009B2 (en) | 2004-07-19 | 2010-07-13 | Marvell International Ltd. | Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device |
US9201599B2 (en) | 2004-07-19 | 2015-12-01 | Marvell International Ltd. | System and method for transmitting data in storage controllers |
US7386661B2 (en) | 2004-10-13 | 2008-06-10 | Marvell International Ltd. | Power save module for storage controllers |
US7240267B2 (en) | 2004-11-08 | 2007-07-03 | Marvell International Ltd. | System and method for conducting BIST operations |
US7802026B2 (en) | 2004-11-15 | 2010-09-21 | Marvell International Ltd. | Method and system for processing frames in storage controllers |
US7609468B2 (en) | 2005-04-06 | 2009-10-27 | Marvell International Ltd. | Method and system for read gate timing control for storage controllers |
EP1974265A1 (de) | 2006-01-18 | 2008-10-01 | PACT XPP Technologies AG | Hardwaredefinitionsverfahren |
US8473911B1 (en) | 2010-07-23 | 2013-06-25 | Xilinx, Inc. | Documentation generation from a computer readable symbolic representation |
US9520180B1 (en) | 2014-03-11 | 2016-12-13 | Hypres, Inc. | System and method for cryogenic hybrid technology computing and memory |
US9768762B2 (en) | 2014-09-25 | 2017-09-19 | Taiwan Semiconductor Manufacturing Company, Ltd. | Integrated circuit and method of testing |
US10579492B2 (en) * | 2017-12-29 | 2020-03-03 | Intel Corporation | Device, system and method for identifying a source of latency in pipeline circuitry |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3222536A (en) * | 1961-02-02 | 1965-12-07 | Burroughs Corp | Time-controlled logical circuit |
US3358128A (en) * | 1964-08-31 | 1967-12-12 | Burroughs Corp | Delay line arithmetic circuit |
US3553446A (en) * | 1966-08-04 | 1971-01-05 | Honeywell Inc | Carry determination logic |
US4322643A (en) * | 1980-04-28 | 1982-03-30 | Rca Corporation | Digital phase comparator with improved sensitivity for small phase differences |
JPS6055438A (ja) * | 1983-09-05 | 1985-03-30 | Matsushita Electric Ind Co Ltd | 2入力加算器 |
NL8401308A (nl) * | 1984-04-24 | 1985-11-18 | Philips Nv | Voloptelschakeling. |
US4707800A (en) * | 1985-03-04 | 1987-11-17 | Raytheon Company | Adder/substractor for variable length numbers |
US4737926A (en) * | 1986-01-21 | 1988-04-12 | Intel Corporation | Optimally partitioned regenerative carry lookahead adder |
US4841468A (en) * | 1987-03-20 | 1989-06-20 | Bipolar Integrated Technology, Inc. | High-speed digital multiplier architecture |
US4876660A (en) * | 1987-03-20 | 1989-10-24 | Bipolar Integrated Technology, Inc. | Fixed-point multiplier-accumulator architecture |
US5047975A (en) * | 1987-11-16 | 1991-09-10 | Intel Corporation | Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode |
US4982352A (en) * | 1988-06-17 | 1991-01-01 | Bipolar Integrated Technology, Inc. | Methods and apparatus for determining the absolute value of the difference between binary operands |
US5153848A (en) * | 1988-06-17 | 1992-10-06 | Bipolar Integrated Technology, Inc. | Floating point processor with internal free-running clock |
US4972362A (en) * | 1988-06-17 | 1990-11-20 | Bipolar Integrated Technology, Inc. | Method and apparatus for implementing binary multiplication using booth type multiplication |
US5173617A (en) * | 1988-06-27 | 1992-12-22 | Motorola, Inc. | Digital phase lock clock generator without local oscillator |
JP2968289B2 (ja) * | 1989-11-08 | 1999-10-25 | 株式会社リコー | 中央演算処理装置 |
US5018093A (en) * | 1990-01-02 | 1991-05-21 | Ibm Corporation | High performance self-checking adder having small circuit area |
US5038117A (en) * | 1990-01-23 | 1991-08-06 | Hewlett-Packard Company | Multiple-modulator fractional-N divider |
US5175453A (en) * | 1990-08-15 | 1992-12-29 | Lsi Logic Corporation | Configurable pulse generator, especially for implementing signal delays in semiconductor devices |
US5109394A (en) * | 1990-12-24 | 1992-04-28 | Ncr Corporation | All digital phase locked loop |
US5483478A (en) * | 1992-10-16 | 1996-01-09 | Xilinx, Inc. | Method and structure for reducing carry delay for a programmable carry chain |
US5566079A (en) * | 1992-11-12 | 1996-10-15 | Vlsi Technology, Inc. | Parameterized generic multiplier complier |
US5511181A (en) * | 1993-04-26 | 1996-04-23 | Apple Computer, Inc. | Polycyclic timing system and apparatus for pipelined computer operation |
US5450607A (en) * | 1993-05-17 | 1995-09-12 | Mips Technologies Inc. | Unified floating point and integer datapath for a RISC processor |
US5553276A (en) * | 1993-06-30 | 1996-09-03 | International Business Machines Corporation | Self-time processor with dynamic clock generator having plurality of tracking elements for outputting sequencing signals to functional units |
JPH0738423A (ja) * | 1993-07-23 | 1995-02-07 | Mitsubishi Electric Corp | 分周回路 |
US5710910A (en) * | 1994-09-30 | 1998-01-20 | University Of Washington | Asynchronous self-tuning clock domains and method for transferring data among domains |
US5576982A (en) * | 1994-10-17 | 1996-11-19 | Unisys Corporation | Fast significant bit calculator and its application to integer multiplication and division |
US5502403A (en) * | 1994-12-20 | 1996-03-26 | Cypress Semiconductor Corp. | High speed configuration independent programmable macrocell |
US5566123A (en) * | 1995-02-10 | 1996-10-15 | Xilinx, Inc. | Synchronous dual port ram |
-
1996
- 1996-01-24 US US08/590,499 patent/US5854918A/en not_active Expired - Lifetime
- 1996-12-03 JP JP32321396A patent/JP3784476B2/ja not_active Expired - Fee Related
-
1997
- 1997-01-23 CN CN97102100.7A patent/CN1103951C/zh not_active Expired - Fee Related
- 1997-01-23 DE DE19702326A patent/DE19702326B4/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE19702326B4 (de) | 2005-02-24 |
DE19702326A1 (de) | 1997-07-31 |
CN1103951C (zh) | 2003-03-26 |
JP3784476B2 (ja) | 2006-06-14 |
JPH09204236A (ja) | 1997-08-05 |
US5854918A (en) | 1998-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1103951C (zh) | 用于自定时算法执行的装置和方法 | |
US7353516B2 (en) | Data flow control for adaptive integrated circuitry | |
CN104899182B (zh) | 一种支持可变分块的矩阵乘加速方法 | |
US8296764B2 (en) | Internal synchronization control for adaptive integrated circuitry | |
US8010593B2 (en) | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements | |
US20020002573A1 (en) | Processor with reconfigurable arithmetic data path | |
US7849288B2 (en) | Alternately selecting memory units to store and retrieve configuration information in respective areas for a plurality of processing elements to perform pipelined processes | |
JPH04319758A (ja) | マルチプロセッサ・システムとその動作方法 | |
CN105930598B (zh) | 一种基于控制器流水架构的层次化信息处理方法及电路 | |
CN103984560A (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
TW201807622A (zh) | 多層人造神經網路 | |
TWI417798B (zh) | High - speed reverse transfer neural network system with elastic structure and learning function | |
WO2022199459A1 (zh) | 一种可重构处理器及配置方法 | |
CN111142938A (zh) | 一种异构芯片的任务处理方法、任务处理装置及电子设备 | |
Haghi et al. | A reconfigurable compute-in-the-network fpga assistant for high-level collective support with distributed matrix multiply case study | |
JPH0514936B2 (zh) | ||
CN113033769B (zh) | 一种概率计算神经网络方法和异步逻辑电路 | |
CN107092462B (zh) | 一种基于fpga的64位异步乘法器 | |
Wang et al. | A flexible high speed star network based on peer to peer links on FPGA | |
CN114528526B (zh) | 卷积数据处理方法、装置、卷积运算加速器和存储介质 | |
CN110457648A (zh) | 一种用于lu分解的脉动阵列结构的实现方法 | |
CN111090611A (zh) | 一种基于fpga的小型异构分布式计算系统 | |
CN111427537B (zh) | 一种基于fpga的脉动阵列并行排序方法及装置 | |
CN109343826B (zh) | 一种面向深度学习的可重构处理器运算单元 | |
Szecowka et al. | Towards hardware implementation of bzip2 data compression algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030326 Termination date: 20150123 |
|
EXPY | Termination of patent right or utility model |