多速率系统折叠中的非折叠算法的制作方法

文档序号:6596163阅读:209来源:国知局
专利名称:多速率系统折叠中的非折叠算法的制作方法
技术领域
本发明涉及电路设计,尤其涉及设计表示的电路优化。
背景技术
对于数字电路(例如,超大规模集成(VLSI)技术的规模)的设计而言,设计者通常采用计算机辅助技术。已经开发了描述数字电路的标准语言(诸如硬件描述语言(HDL)) 来辅助设计和模拟复杂的数字电路。若干种硬件描述语言(诸如VHDL和Verilog)已经演进为工业标准。VHDL和Verilog是通用硬件描述语言,其允许通过使用抽象数据类型来定义门级、寄存器传输级(RTL)或者行为级的硬件模型。随着设备技术的持续发展,已经开发了各种产品设计工具来使HDL适用于更新的设备和设计风格。在用HDL代码来设计集成电路时,首先对该代码进行编写,之后由HDL编译器对该代码进行编译。HDL源代码以一定级别对电路元件进行描述,而编译器则根据编译产生RTL 网表。该RTL网表通常是独立于工艺的网表,因为其独立于特定销售商的集成电路(诸如现场可编程门阵列(FPGA)或者专用集成电路(ASIC)的工艺/架构。该RTL网表对应于电路元件的图示(与行为表示不同)。然后执行映射操作以从独立于工艺的RTL网表转换成工艺专用网表,该工艺专用网表能够用于创建销售商的工艺/架构中的电路。众所周知,FPGA 销售商利用不同的工艺/架构来实现他们的集成电路中的逻辑电路。因此,对独立于工艺的RTL网表进行映射,以创建专用于特定销售商的工艺/架构的网表。在该过程中通常需要的一个操作是,规划特定集成电路的版图、控制时序问题以及管理集成电路的区域之间的互连。这有时称为“布图规划”。典型的布图规划操作将集成电路的电路面积分成多个区域(有时称为“块”),之后分配驻留在块中的逻辑。这些区域可以是矩形或者非矩形。该操作有两个效果逻辑的位置的评估误差从集成电路级降低到块级(这趋向于降低时序评估的误差);以及布局布线典型地更快地运行,因为其已经从一个非常大的问题降低为一系列较简单的问题。已经将大量的优化努力投入到资源和资源利用的分配上。电路级优化明显有助于最佳设计(包括电路修改和重新布局),以获得期望的时序和期望的面积。例如,电路布局相关的优化包括加法器树或者门分解、逻辑复制、位片划分以及迂回移除。另外,用于数字信号处理的数据流编程中的发展已经通过使用尤其是用于并行计算机的数据流图而在电路优化中提供了明显的进步。数据流图表示是流行的硬件和软件方法,在该方法中,算法被描述为直接图,其中节点表示计算(或者函数或者子任务)而边缘表示数据路径(节点之间的通信)。数据流算法主要考虑数据的流动而不考虑实际的计算过程,因此对于并行硬件上的并发实现方式而言,数据流算法是用于描述数字信号处理应用的自然模式。对于并发实现方式而言,任务被分成之后被调度到并行处理器上的子任务。例如,图IA示出了描述计算y[n] = ay[n-l]+x[n]的电路框图。这是一种反馈函数,其中计算输出y[n]依赖于其之前输出y[n-l]的值。该框图示出了用于存储输出y的之前值的延迟块D,该延迟块D可以是延迟寄存器。乘法块X用于将延迟输出y[n-l]与常数a相乘。加法块“ + ”用于将输入x[n]与乘法后的延迟输出ay[n-l]相加。电路框图的关键特征是能够从该电路框图中理解并获得电路的功能。例如,计算y[n] = ay[n-l]+x[n] 能够在电路操作级从图IA的电路框图中被计算出。图IB示出了该框图的数据流图,其中节点A表示加法块以及节点B表示乘法块。 从B到A的边缘(B — A)表示从乘法块到加法块的数据路径,而从A到B的边缘(A — B) 表示从加法块到乘法块的数据路径。延迟D被插入从A到B的数据路径中,以表明从A到 B的边缘(A —B)包含一个延迟(例如,1个时钟周期的延迟)。输入分支x[n]和输出分支y[n]以虚线示出,主要是用于说明与图IA中的框图的相互关系。实际上,通常不在数据流图中示出输入和输出分支(例如,图1C)。可替换地,延迟D可以示出在边缘的附近(图 1C)。其他信息也可以被包含在数据流图中,例如,表明节点A和B的执行消耗了一个数据样本并产生了输出的、与同步数据流图相关的信息。这由来自到达节点A/B的边缘的数字1以及来自离开节点A/B的边缘的数字1表示。每个节点都可以具有与其相关联的执行时间,例如,执行节点A(加法计算)所需的时间量是2个时间单位(例如,2个时钟周期), 而执行节点B(乘法计算)所需的时间量是4个时间单位。这分别由节点A和节点B附近的括号(2)和中的数字表示。典型地,在数据流级,数据流图的操作是仅与该数据流相关的操作,而与功能或者计算操作无关。例如,数据流图的关键路径被定义为在包含零延迟的所有路径中具有最长计算时间的路径。因此,图IB所示的数据流图中的关键路径是路径B —A,其需要6个时间单位。优化关键路径是在数据流级优化数据流图的示例。所示的数据流图描述了单速率系统,其中,所有的节点都消耗一个数据样本并且产生与时钟周期相关的一个输出。在多速率系统中,消耗和产生的数据样本的数量可以不是1,诸如在节点以不同频率进行操作的系统中或者在抽取器(decimator)或插入器 (interpolator)中。例如,丨2抽取器每隔一个数据样本就进行舍弃,从而每消耗2个数据样本就产生一个数据输出。丨2插入器对于每个数据样本引入附加数据输出,从而每消耗 1个数据样本就产生2个数据输出。除了适于数字信号处理之外,数据流图表示还具有另一优点,即对于数据流描述的任何实现而言都生成相同的结果,只要保持数据流动的完整性。因此,数据流图表示是将电路设计表示调度和映射到硬件上的必不可少的工具。当前的数据流图表示采用节点和边缘,同时使用线性编程来优化数据的流动以获得期望的时钟。与实际电路相关的信息是不相关的,并且通常不再被呈现在数据流图表示中。

发明内容
本发明涉及用于设计电路的方法和装置,尤其涉及用于数字电路表示的优化处理。在一个实施方式中,除了在数据流级对数据流图表示进行优化,本发明公开了在电路操作级对电路的部分数据流图表示进行优化来产生数据流图。要在电路操作级被优化的数据流图表示可以是电路框图或者数据流图,其中,在经历电路操作级的优化之前优选将其转换成电路框图。在在电路操作级被优化之后得到的数据流图可以是数据流图或者电路框图,其中,在经历数据流级的优化之前优选将其转换成数据流图。在一个方面中,数据流图表示在在数据流级优化之前在电路操作级被优化,以产生优化的数据流图。数据流级优化典型地修改数据流路径,包括移除或者引入一个或多个延迟寄存器来获得期望的时序。数据流级操作通常对数据流动进行操作,例如,用于最佳并行处理器操作的输入数据的可用性。因此,数据流算法通常与电路或者操作级无关,而是仅与数据流路径相关。数据流级优化通常包括折叠部分数据流图以获得更小的记忆空间、重新调整部分数据流图的时序以获得更好的时序、以及找到最佳调度算法来将数据流图映射到可编程硬件设备。相反地,电路操作级优化使用逻辑等效电路来对电路进行修改以实现期望的目的,诸如简化电路、减少部件、减少记忆空间或者获得期望的时序。电路操作级优化通常对电路部件进行操作,从而在保留功能的同时对电路进行修改。在一个实施方式中,本发明向数据流图中引入了电路操作级优化,以在将设计映射到硬件之前更好地优化电路表示。在一个方面中,在使用电路操作级对设计表示进行优化之后,能够通过使用数据流图算法(诸如折叠、重新调整时序以及对硬件映射进行调度) 来对该设计表示进行进一步的优化。例如,重新调整时序优化可以包括向部分电路中添加多个流水线寄存器组或者从部分电路中移除多个流水线寄存器组。在在电路操作级以及在数据流级对数据流图进行优化以产生优化的数据流图之后,本方法还包括将优化后的数据流图映射到硬件上,诸如将优化后的数据流图映射到可编程硬件设备上;将优化后的数据流图应用到电路;以及将优化后的数据流图调度给单一处理器、多处理器、顺序处理器以及并行处理器的其中之一。在一个实施方式中,数据流图表示典型地由节点和边缘表示,因此不能为电路操作级优化提供电路块的细节。在一个方面中,本发明将电路的部分数据流图表示转换成电路框图,以便于电路操作级优化。对于随后的数据流算法优化而言,还能够将电路框图转换回数据流图表示。从框图向数据流图表示的转换可以包括将功能设备或者块转换成节点以及将数据路径转换成边缘。从数据流图表示向框图的转换可以包括将表示电路功能的节点转换成等效的电路功能设备或者块;以及将边缘转换成数据路径。由于数据流图典型地不包含详细的电路,所以或许需要附加信息来允许节点向功能块的转换。在优选实施方式中,本发明公开了一种针对多速率DSP系统的数据图表示的优化算法。在一个方面中,在数据路径优化之前,该方法将多速率数据图转换成单速率数据图。 之后,在数据流级优化之前,可以将电路操作级优化应用到转换后的单速率数据图。由于电路优化的数据图是单速率数据图,所以使用单速率算法的数据流级操作可以用于优化设计表不。单速率优化典型地包括调度、折叠方程计算以及重新调整时序。调度是将操作分配给硬件资源。折叠方程用于确定硬件部件之间的切换和延迟值。重新调整时序用于使得所述调度可行。为了直接优化多速率系统,多速率优化主要依赖于经过速率改变器(例如, 上采样器或者下采样器)的路径的折叠方程的计算。应当在调度算法和折叠方程计算中考虑系统的多速率特性,从而增加了复杂性并降低了找到到硬件部件的最佳调度和映射的几率。单速率调度是受到更广泛研究的课题,并且存在着比多速率调度更高效的优化算法。通过采用本发明的转换后的单速率数据图,能够杠杆影响这些有效的算法,并因此能够找到更好的调度。在一个实施方式中,本发明的将多速率数据图转换成单速率数据图包括用适当的因子来展开多速率数据图。所述展开优选用与时钟值成反比的展开因子来展开多速率数据流图中的时钟域。该方法比通过使用与时钟成线性比例的折叠因子来折叠每个时钟域来生成单速率系统要好。在一个实施方式中,在转换成单速率(例如,通过用与时钟值成反比的展开因子来展开多速率系统)之后,在电路操作级对转换后的单速率系统进行优化。在一个方面中, 本发明的在电路操作级对数据流图进行优化包括在在电路操作级对数据流图进行优化之前,首先将表示数据流图的电路功能的节点转换成等效电路功能。电路操作级优化可以包括使用逻辑等效电路来进行优化,优选针对数字设计(诸如速率改变器、重新采样器、抽取器以及插入器)。例如,在插入器表示中,对于对信号进行上采样而言,引入零输入。在一个方面中,本发明公开了通过对由上采样器导致的零输入进行优化来针对数据流图表示进行电路操作级优化。而且,在抽取器表示中,对于对信号进行下采样而言,终止输出或者不使用输出。在一个方面中,本发明公开了通过对由下采样器导致的未使用的输出进行优化来针对数据流图表示进行电路操作级优化。在一个实施方式中,可以将本发明的在电路操作级对数据流图进行优化应用到设计电路的速率改变器部分。速率改变器能够引入冗余操作,因此在一个实施方式中,本发明公开了一种包括电路操作级优化的优化过程,以至少消除冗余操作,该冗余操作例如可由速率改变器行为(诸如零输入或者未使用的输出)的转换所导致。在一个实施方式中,将设计电路的数据流图表示的速率改变器部分展开成单速率数据流图表示。之后,在电路操作级对从速率改变器部分的展开操作产生的零输入和/或未使用的输出进行优化,以产生电路优化的数据流图。该电路优化的数据流图之后可以在影射到硬件上之前,在数据流级优化中经历优化。本发明包括方法以及执行这些方法的装置(包括执行这些方法的数据处理系统以及当在数据处理系统上被执行时促使该系统执行这些方法的计算机可读媒介)。根据附图以及随后的详细说明,本发明其它的特点将变得显而易见。


通过示例的方式示出了本发明,并且本发明不受附图中的图形的限制,其中,相同的标号指代相同的元件。图1A-1C用电路示意图和数据流图示出了设计的示例性表示;图2示出了可以与本发明一起使用的数据处理系统的框图示例;图3A-;3B示出了示例性的电路操作级优化;图4A-4B示出了针对数据流表示的示例性流水线优化;图5A-5C示出了用于构建数据流图来重新调整时序的现有技术方法;图6A-6C示出了示例性的未优化的系统;
图7A-7C示出了使用并行处理器的示例性的优化系统;图8A-8B示出了示例性的展开变换;图9A-9C示出了另一示例性展开变换;图10示出了示例性的折叠变换;图1IA-IIC示出了示例性的下采样器;图12A-12C示出了示例性的上采样器;图13、14A_14B、15、16和17A-17C示出了根据本发明优选实施方式的示例性优化
方法;图18示出了根据本发明实施方式的用于设计电路模块的方法;图19-20示出了根据本发明实施方式的两个优化方案;图21示出了根据本发明另一实施方式的用于设计电路模块的方法;图22-M示出了根据本发明实施方式的用于设计电路模块的优选方法。
具体实施例方式下面的描述和附图对本发明进行了说明,但是不应被解释为限制本发明。描述了许多具体细节来提供对本发明的透彻理解。然而,在某些实例中,为了避免使本发明的描述变得模糊,没有描述众所周知的或常规的细节。本公开中对“一个实施方式”或者“一实施方式”的引用并不是必须指代同一实施方式;因此,这种引用指的是至少一个。本发明的至少一个实施方式致力于在将设计表示映射到硬件部件上之前将多速率数字信号系统转换成单速率数字信号系统。单速率设计表示能够用经过充分研究的优化算法来更简单地实现,因此其能够比相应的多速率系统更容易地找到更好的调度。在一个方面中,该转换用与时钟值成反比的最小展开因子来展开多速率系统中的不同时钟域,以便整个系统成为单速率。在另一实施方式中,本发明致力于在调度、折叠、重新调整时序或者映射到硬件部件之前用操作级优化来优化数据流表示。基于操作级的电路优化与多速率系统的转换相结合是特别有用的。例如,重采样器(诸如抽取器或者插入器)的转换会引入冗余逻辑,诸如由上采样器导致的零输入以及由下采样器导致的未使用的输出。根据本发明实施方式的操作级优化能够消除由单速率转换导致的浪费的操作,从而降低手动优化。本发明的许多方法可以用数字处理系统来执行,诸如传统的通用计算机系统。被设计或者编程来执行仅一个功能的专用计算机也可以使用。图2示出了可以与本发明一起使用的典型计算机系统的一个示例。注意,虽然图 2示出了计算机系统的各种部件,但是其并不意欲表示任何特定的结构或者将这些部件进行互连的方式,因为这些细节与本发明不相关。还应当意识到,网络计算机和具有更少部件或者可能更多部件的其他数据处理系统也可以与本发明一起使用。图2的计算机系统可以例如是Sim工作站,或者运行Windows操作系统的个人计算机(PC),或者苹果的Macintosh 计算机。如图2所示,数据处理系统形式的计算机系统101包括总线102,该总线102耦合到微处理器103、R0M 107、易失性RAM 105以及非易失性存储器106。微处理器103耦合到高速缓存存储器104,如图2中的示例所示。总线102将这些各种部件互连在一起,并且还将这些部件103、107、105和106与显示控制器和显示设备108以及外围设备(诸如输入/ 输出(I/O)设备,其可以是鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、摄像机以及本领域公知的其他设备)互连在一起。典型地,输入/输出设备110通过输入/输出控制器109耦合到该系统。易失性RAM 105典型地被实施为动态RAM(DRAM),其需要持续的供电来刷新或者保持存储器中的数据。非易失性存储器106典型地是即使从该系统移除电源之后仍然能够保持数据的磁硬盘驱动器或者磁光驱动器或者光驱或者DVD RAM或者其他类型的存储器系统。典型地,非易失性存储器也可以是随机存取存储器,虽然这里并不需要。虽然图2显示非易失性存储器是直接耦合到数据处理系统中的其余部件的本地设备,但是应当意识到,本发明可以使用远离该系统的非易失性存储器,诸如通过诸如调制解调器或者以太网接口之类的网络接口耦合到该数据处理系统的网络存储器设备。总线102可以包括通过本领域公知的各种桥接器、控制器和/或适配器彼此连接的一个或多个总线。在一个实施方式中,I/O控制器109包括用于控制USB外围设备的USB (通用串行总线)适配器和 /或用于控制IEEE-1394外围设备的IEEE-1394总线适配器。根据本文的描述显而易见的是,本发明的各个方面可以至少部分地在软件中得到体现。也就是说,这些技术可以响应于计算机系统或者其他数据处理系统中的处理器(诸如微处理器)而在该计算机系统或者其他数据处理系统中实现,所述处理器执行包含在存储器(诸如ROM 107、易失性RAM 105、非易失性存储器106、高速缓存器104或者远程存储设备)中的指令序列。在各种实施方式中,可以将硬连线电路与软件指令结合使用来实施本发明。因此,所述技术并不局限于硬件电路和软件的任何具体结合或局限于由数据处理系统执行的指令的任何特定源。另外,在整个说明书中,将各种功能和操作描述为由软件代码执行或导致,以简化描述。然而,本领域技术人员应当意识到,这种表述的意思是,所述功能是由处理器(诸如微处理器10 对代码的执行引起的。机器可读介质可以用于存储软件和数据,当由数据处理系统执行所述软件和数据时会促使所述系统执行本发明的各种方法。这种可执行的软件和数据可以存储在各种位置中,包括例如图1所示的ROM 107、易失性RAM 105、非易失性存储器106和/或高速缓存器 104。这些软件和/或数据的一部分可以存储在这些存储设备中的任意设备中。因此,机器可读介质可以包括用于提供(即,存储和/或传送)机器(例如,计算机、网络设备、个人数字助理、制造工具、具有一个或多个处理器组的任何设备等)可访问形式的信息的任何机构。例如,机器可读介质可以包括可记录/不可记录媒体(例如,只读存储器(ROM)、随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备等)以及电、 光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)等。电路操作级的电路优化是设计的重要部分,主要用于降低浪费的操作,从而在保留功能的同时获得期望的时序和记忆空间。图3A示出了示例性的功能y = AB£+紐C+匹,其中A、S、G分别表示A、B、C的补码。该电路框图示出了三个3输入乘法模块和一个3输入加法模块,用于提供函数y。可以在电路操作级对函数y进行优化,从而将函数y简化成具有两个乘积的加法的等效函数。y = ABC+ABC+BCy = ABC+ABC+BC (A+A)
y = ABC+ABC+BCA+BCAy = AB (C+C) +AC (B+B)y = AB+AC图IBB示出了电路操作级优化之后,同一函数y的等效电路框图表示。该新的表示仅具有两个2输入乘法模块和一个2输入加法模块,并且表示同一函数。该电路操作级优化能够在保留功能的同时提供简化。优选在电路框图执行电路操作级优化。对于数据流图,要将功能降低成节点,因此即使可执行,操作级优化也是困难的。因此,电路操作级和数据流级的优化是两个在很大程度上独立且分离的操作。优选针对数据流图执行数据流级优化。数据流图是用于基于数据流来编程信号处理器的技术,并且其应当通过增强代码的模块性来使编程任务简单并允许更自然地描述算法。另外,数据流处理提供了并行硬件上的DSP应用程序的并发实施。下面概述的典型的数据流优化包括流水线、重新调整时序、 展开以及折叠。Keshab K. Parhi于1999年在Wiley-Interscience出版社出版的“VLSI Digital Signal Processing Systems :Design and Implementation"中对数据图技术进行了详细描述。流水线是数据流级的操作,其中流水线的概念源自水管,即将水不断地发送给管子而不必等待水从管中流出。流水线能够简化关键数据路径,这能够增加时钟速度或者降低功耗。流水线还能够用于并行处理中,在该并行处理中,在时钟周期中对多个输出进行并行计算。考虑图4所示的数据流图,该数据流图包括节点A和节点B。将信号x[n]提供给节点A,从而生成输出ζ [η],之后将输出ζ [η]提供给节点B,从而生成输出y [η]。在不使用流水线的情况下,在下一信号x[n+l]能够被发送之前,信号χ [η]不得不在到达y[n]的所有路径上进行传播,并由节点A和节点B两者进行处理。如图4A所示,输入信号x[n]与中间信号z[n]之间的延迟是节点A的处理时间。假设在从节点A到节点B的信号路径上没有延迟,则信号ζ [η]在从节点A输出之后立即出现在节点B的输入处。类似地,信号ζ [η] 与输出信号y[n]之间的延迟时间是节点B的处理时间。因此,在节点A和B的处理时间之后出现了输出信号y[n]。在不使用流水线的情况下,下一信号x[n+l]在到达节点A之前不得不等待,直到信号y[n]出现为止。换言之,信号z[n]是节点B的输入,并且在节点B完成处理之前不能被改变。信号x[n+l]能够被最早地发送给节点A的时刻是节点B完成处理的时刻,例如, 在输出信号y[n]出现的时刻。从图4A中能够看出,数据流图的周期时间是2,这意味着每个输入信号χ需要节点A和节点B两者的处理时间。图4B示出了应用到图4A中的数据流图的流水线的概念。在节点A和节点B之间的数据路径上引入了延迟D。延迟D可以是顺序元件,诸如寄存器、存储器单元、触发器等。 例如,寄存器对输入信号进行采样并保持(存储),以便能够将该输入信号与电路的时钟同步输出。另外,应当理解的是,数据流图边缘上的一个延迟表示典型因寄存器存在于相应路径上引入的等待时间的单位。然而,该等待时间的单位也可以通过其他方式来实现,诸如对于读取存储器单元的不同的控制信号。在添加了延迟D的情况下,信号x[n]在节点A的处理时间之后通过节点A成为信号21[11]。信号Zl[n]在被输出为信号^[11]之前被延迟元件D延迟。在通过节点B处理之后,信号4[11]成为输出信号y[n]。如图4B所示,输入信号χ [η]与输出信号y[n]之间的时间因延迟时间而被延长了。然而,只要节点A完成了处理,下一信号x[n+l]就能够被立即发送,而不必等待其通过节点B进行传播。节点B的输入是τ2 [η],该输入不受节点A的操作的影响,而是仅受到时钟的控制将信号穿过延迟元件D。因此,图4Β的流水线电路的周期时间是1,这意味着每个输入信号χ要求节点A或者节点B的处理时间,无论哪一个都是更长的。流水线优化的折中是初始输出的延迟时间,这意味着通过采用延迟元件D,第一输出信号y将被延迟元件D延迟了额外的延迟时间。可替换地,流水线概念可以用并行处理来实施,因为这两种技术以不同的方式采用了计算中可用的并发性。流水线系统以交错的方式对设计进行处理,而并行系统通过使用复制硬件来对设计进行处理。流水线概念可以被推广到数据流图。该技术称为重新调整时序,其也是一种数据流级的操作,并且包括改变设计中的延迟元件的位置的变换,而不影响其输入和输出特性。重新调整时序算法已经被用于优化电路设计。典型地,同步电路仅在信号沿着组合路径从一个寄存器传输到另一寄存器时才能够恰当地工作,其中,组合路径是在指定数量的时钟周期中(例如,在一个时钟周期中)不包含寄存器(例如,存储器单元、触发器、延迟元件等)的路径。因此,这些路径上寄存器之间的最大信号延迟(例如,由于路径上组合计算元件的计算时间以及线延迟)确定了电路能够恰当工作的最小时钟周期。可以将寄存器放置于或者重新布置于电路的路径上,以降低该路径上的最大信号延迟并降低电路的时钟周期。通常的重新调整时序算法可以用于基于电路的时序模型来对电路中的某些寄存器进行重新分布,以最小化时钟周期。典型地,可以通过将构成电路的组合计算单元、延迟(例如,因寄存器导致)以及互连的时序模型组成整体来获得电路的时序模型。互连延迟很难进行建模,因此通常可以忽略。通常通过将模块的组合计算单元的时序模型聚集起来,来生成电路系统(其包括一个或多个电路模块)的典型时序模型。已经基于数据流图研究并形成了针对单速率重新调整时序的算法,例如Keshab K. Parhi 于 1999 年在 Wiley-Interscience 出版社出版的 “VLSI Digital Signal Processing Systems :Design and Implementation,,一书中的第 91—118 页。例如,重新调整时序算法包括割集重新调整时序以及流水线。另外,还存在着使用数据流图的、针对时钟周期最小化或者寄存器最小化的重新调整时序的算法。数据流图由节点和边缘构成,其中节点表示组合计算单元,边缘则将节点互连。延迟(例如,寄存器)被表示为边缘上的权重。 每个节点都可以具有与其相关联的执行时间。例如,图5A-5C示出了用于构建数据流图来重新调整时序的现有技术。图5A示出了电路框图,图5B示出了等效数据流图。图5A中的组合计算单元(例如,加法器205、乘法器207和209)被表示为计算节点(例如,图5B中的节点225、227和229)。组合计算单元处的执行时间由节点的计算时间表示。例如,节点225具有2ns的计算时间,这是由加法器 205要求的;并且每个节点227和2 具有4ns的计算时间,这是由乘法器(例如,209或者 207)要求的。边缘231表示乘法器207与加法器205之间的连接。边缘231具有权重1, 表示寄存器217(或者因寄存器217导致的一个时钟周期等待时间)。类似地,边缘233具有一个表示寄存器215的延迟。边缘235表示乘法器209与207之间的连接;并且不存在与边缘235相关联的延迟。数据流图中的关键路径是包含零延迟边缘的所有路径(组合路径)中具有最长计算时间的路径。例如,在图5B中,从节点2 到节点227的路径包含具有零延迟的边缘 235 ;以及从节点2 到节点227的路径花费了最长的计算时间(例如,8ns,其中4ns是用于节点2 的,4ns是用于节点227的)。因此,图2中的电路的最小时钟周期是8ns。重新调整时序的过程将包括改变延迟元件(例如,数据流图5B中的边缘231和 233中的延迟D)的位置。图5C示出了重新调整时序后的数据流图,其中,边缘233上的延迟可被移动到边缘235上。关键路径成为节点225与节点2 之间的路径,其花费了 6ns的计算时间。因此,将延迟从边缘233移动到边缘235允许修改后的(重新调整时序后的)数据流图以降低后的6ns的时钟周期进行操作。在数据流级的重新调整时序过程优化之后, 可以通过将加法器205与乘法器209之间的寄存器215移动到乘法器209与207之间来将修改后的数据流图实施到硬件上。可以例如通过应用针对时钟周期最小化的公知的重新调整时序算法来最大化输出设计的时钟速度。在数据流图上形成这些重新调整时序算法。通常包含寄存器和存储器的硬件模块并不直接匹配为单个节点。因此,用节点和边缘的组合来将电路图转换成数据流图,以便充分表示它们的时序行为。例如,将电路设计分解成构成模块的实际寄存器以及组合计算元件并将节点分配给每个组合计算元件。典型地,将设计中的电路模块转换成节点和边缘集,其对应于模块中的组合单元以及将组合单元连接在一起的网。换言之,通过将构成硬件模块的组合计算单元、延迟以及互连的时序模型组成整体来典型地构建每个硬件模块的时序模型。在转换特定硬件模块时使用的节点和边缘集的聚集实际上是该硬件模块的时序模型(数据流图)。可以通过使用来自数据流图模型的详细实现方式的数据来构建硬件模块的时序模型。通过将增加数量的寄存器提供给该模块、重新调整(或者优化)该硬件模块的时序以及在添加新的寄存器时检测该模块中的关键路径来确定该模块的最小时钟周期来获得该数据。重新调整时序算法可以用于改善并行硬件上的时序。图6A示出了用于二阶递归数字滤波器的数据流图。节点F和G表示加法器,节点A、B、C和E表示乘法器,块D表示边缘上的延迟。从该数据流图可以看出,节点不能以任意顺序来运行。图6B中示出了节点之间的优先权,其中,节点A和B要在节点F之前完成,节点C、E和F要在节点G之前完成。 因此,节点A和B首先运行,其次节点F运行,最后节点G运行。节点C和E可以被分布在第一次序或者第二次序中。对于图6C中所示的3处理器调度,周期时间为3。图7A示出了在计算并实施了重新调整时序算法之后的同一数据流图,其中,在到节点G的边缘中添加了 3个延迟。通过采用重新调整时序后的图,如图7B所示,节点之间的优先权改变了。仅存在着两个顺序,其中,节点A、B、C、E和F处于一个次序,节点G处于另一次序。对于调度和映射到3处理器硬件而言,如图7C所示,周期时间改善为2。数据流图的另一变换是展开,其中,创建新的程序来描述原始程序的不止一个迭代。例如,通过因子2来展开数据图描述了数据图的2个连续的迭代。展开能够显示隐藏的并发,以便能够将设计调度到更小的迭代周期,以增加实现的吞吐量。展开还能够用于根据串行处理架构来设计并行处理架构。例如,考虑DSP程序y [n] = ay [η_2]+χ [η],其数据流图如图8Α所示。考虑到样本能够无限期地进行运行,因此η可以从零变化到无穷大。如果索引η用业和业+1替换,则上述程序可以用下面的2个连续迭代的2个程序来表示y[2k] = ay[2k-2]+x[2k]y[2k+l] = ay[2k-l]+χ[2k+l]例如,对于k = 3,这 2 个方程是 y [6] = ay W]+χ [6]和 y [7] = ay [5]+χ [7],对于 η = 6和η = 7的原始程序而言,它们是相同的。针对展开变换的数据流图表示如图8Β所
7J\ ο展开变换可以用于将多速率系统展开成单速率系统。图9A示出了多速率系统的数据流图表示,其包括节点A和B。与节点相关联的数字表示那个节点的输入和输出样本。 例如,节点A采用一个输入数据并生成两个输出数据,而节点B采用三个输入数据并生成两个输出数据,如图9B所示。图9C示出了用于将图9A的多速率数据图转换成单速率数据图的展开变换,其中节点被复制并且节点A的输出与节点B的输入相匹配。另一优化变换是折叠,其中多个操作被时分多路传输到单功能单元上。通过仅在一个功能单元中执行多个操作,可以降低功能单元的数量,从而降低芯片面积。芯片面积降低的折中是频率的增加,其中时分多路传输的功能单元不得不以多个时钟频率值进行运行。可以针对单时钟或者多时钟来实施折叠算法。由于折叠改变了功能单元的时钟频率, 所以多速率系统能够用于比单速率系统进一步降低芯片面积。图10示出了折叠变换概念,其中三个相同的功能单元(由同一节点Z表示)运行在不同的输入上并生成不同的输出。折叠变换将功能单元的数量降低为1,并引入了针对其余功能单元的输入和输出的多个多路复用器。折叠因子是3,意味着将三个功能单元折叠成1个。用于剩余功能单元的时钟频率也类似地被同一折叠因子所增加,其中通过多路复用器的控制信号来对输入和输出进行时分多路传输。在一个实施方式中,可以将本发明的优化应用到电路设计表示,优选应用到多速率电路中。在一个方面中,例如,本发明的优化将电路操作级优化应用到数据流图,以降低浪费的操作和从数据图变换产生的冗余电路。例如,重新采样操作能够引入冗余电路,例如下采样器(或者抽取器)可以具有终止的输出,或者上采样器(或插入器)可以具有零输入,可以为了更好的电路、时序或者芯片面积来对冗余电路进行优化。图IlA示出了具有时间索引η的示例性样本正弦波输入序列。图IlB示出了因子为3的下采样器,其中每3个样本输入有两个样本被终止。输出下采样器的正弦频率被降低了 3倍。就数据流图表示而言,图IlC示出了因子为3的下采样器的表示。索引η由索引 3k、3k+l和3k+2替换。仅与输入χ[3k]相对应的输出y[3k]被提供给下一级,而另两个输入x[3k+l]和x[3k+2]被终止并且根本没有被使用。由于被终止的输入x[3k+l]和x[3k+2] 没有被使用,所以根据本发明的实施方式,它们能够被优化掉。图12A示出了具有时间索引η的示例性样本正弦波输入序列。图12Β示出了因子为3的上采样器,其中对于每个样本输入,添加两个样本。输出上采样器的正弦频率被增加了 3倍。就数据流图表示而言,图12C示出了因子为3的上采样器的表示。索引η由索引 3k、3k+l和3k+2替换。输出y[3k]对应于输入χ[3k],而另两个输出y [3k+l]和y[3k+2]从零输入x[3k+l]和x[3k+2]生成。由于输入x[3k+l]和x[3k+2]是零输入,所以能够根据本发明的实施方式对它们进行优化。下采样器还能够遭受混叠,因为原始信号中存在的任何频率都将被映射到被抽取后的信号频谱中的某个位置。上采样器能够引入高频镜像,该高频镜像源自连续样本之间的快速变化。因此,下采样器之前通常都具有抗混叠滤波器,而上采样器之后通常都跟随有抗镜像滤波器。其他技术还可以包括多相算法。图13-17示出了根据本发明在电路操作级对数据流图进行优化的示例。图13示出了速率改变器或者重采样器电路,其包括因子为3的上采样器、滤波器以及因子为2的下采样器。图14A示出了图13中的速率改变器电路的电路框图,其使用3抽头有限脉冲响应 (FIR)滤波器。该电路包括因子为3的上采样器、因子为2的下采样器、延迟ζ—1、加法器以及系数为I^b1和Id2的乘法器。图14B示出了同一速率改变器电路的多速率数据流图表示。 加法器被转换成节点A1和A2,乘法器被转换成节点Mp M2和M3。因子为3的上采样器被转换成具有一个输入和3个输出的节点B,如节点B的附近所示。因子为2的下采样器被转换成具有2个输入和1个输出的节点C,如节点C的附近所示。节点A和节点M各自消耗1 个输入并生成1个输出,如每个节点的附近所示。从节点B到节点M2的边缘以及从节点B 到节点M3的边缘各自都具有延迟D。该数据流图可以被认为是多速率系统,其中不同的采样速率用于该设计的不同部分。本发明意识到直接在数据流级对图14B中的数据流图进行优化或许会丢失在电路操作级对电路的简化。另外,对图14B中所示的多速率数据流图进行优化会很复杂,并且找到用于映射到可编程硬件设备的最佳调度的几率低。因此,在一个实施方式中,本发明在电路操作级执行对数据流图的优化。在另一实施方式中,本发明在优化之前在数据流级或者在电路操作级将多速率数据流图转换(例如,展开)成单速率数据流图。首先将图14B所示的数据流图转换成图14A所示的框图。采用没有包含在数据流图中的加法电路关联来讲节点A和B转换成加法器。数据路径中的延迟D也由延迟寄存器 ζ"1来替换,该延迟寄存器广由时钟信号提供时序。通过采用增3和减2的速率改变器,最低的公倍数将是6。通过用与时钟成反比的因子来展开每个时钟域,可将多速率系统转换成单速率系统。例如,增3上采样器丨3用因子6/3 = 2来展开,减2下采样器丨2用因子6/2 = 3来展开。上采样器还进一步被提供有零输入,并且一些下采样器的输出被终止。单速率展开系统如图15所示。将操作级优化应用到图15的电路(例如,通过消除未使用的输出端口并通过后向传播来优化掉相关块)得到了图16的电路。进一步通过采用零源传播来消除零输入以及从图16中消除增益和加法器来进行优化,得到了图17的电路。最后,通过进一步消除图 17A中的仅具有一个输入的加法器来得到图17B的电路。图17B的数据流图表示如图17C 所示。从图17C中的优化后的电路可以看出,可以应用使用数据流图的优化,诸如调度、 折叠、重新调整时序以及到硬件的映射。由于该电路是通过使用本发明的展开算法对多速率系统进行转换得到的单速率系统,所以能够使用采用单速率系统的优化。通过在电路操作级对数据流图表示进行优化,以及通过将图14B的多速率数据流图表示展开成单速率数据流图表示,该方法能够得到图17C的结果。
图18示出了根据本发明实施方式的用于设计电路模块的方法。该电路模块由数据流图表示或者实现方式来表示,例如,由节点来表示功能单元,由边缘来表示功能单元之间的数据路径。可替换地,有时可以在数据流图表示中表示功能单元。数据路径之间由时钟信号控制的寄存器由延迟值(诸如等待时间单位)来表示。通过采用表示电路模块的数据流图,操作1001在电路操作级对该数据流图表示的一部分进行优化,例如通过转换成具有电路优化后的特性的功能等效设计。在电路操作级的优化能够通过在保留功能的同时对电路设计进行修改来生成电路优化后的数据流图表示。优选执行该修改来获得更好的时序、 更好的芯片面积、更低的功率、更少的硬件部件或者获得期望的目的。例如,使用电路操作级的优化可以包括使用逻辑等效电路或计算的优化。该优化能够在重新采样器、抽取器或者插入器上执行,优选在展开抽取器或者插入器之后执行。在展开变换之后,下采样器(或者抽取器)能够具有未使用的输出,这能够呈现浪费的操作或者冗余电路。这些未使用的输出可以通过电路操作级优化来进行优化。而且,上采样器(或者插入器)可以具有零输入,这可以通过电路操作级优化来进行优化。在一个方面中,当电路的数据流图表示的部分包括表示电路功能的节点时,该方法还可以包括在在电路操作级对该部分数据流图表示进行优化之前将该节点转换成电路功能。另外,该方法还可以包括将数据流图表示的任意边缘转换成数据路径,并在具有延迟特性的数据路径中插入延迟寄存器。在通过操作级优化进行优化之后,可以在数据流级对数据流图表示进行优化,例如,通过使用线性编程技术(诸如数据流算法),如操作1002所示。使用数据流算法的优化可以包括用于获得期望目的(诸如时钟速率)的折叠、展开、调度以及重新调整时序。数据流图表示优选包括节点和具有延迟的边缘,因此该方法还可以包括在在数据流级进行优化之前将功能单元转换成节点以及将数据路径转换成边缘。在一个实施方式中,在数据流级对数据流图进行优化出现在在电路操作级对电路的数据流图表示进行优化之后。在数据流优化之后,在操作1003中,将该设计映射到硬件部件。可以在单个处理器或者在并行处理器执行该优化和映射。在一个实施方式中,对优化后的数据流图表示进行映射包括将优化后的数据流图映射到可编程硬件设备;将优化后的数据流图实施到电路上;或者将优化后的数据流图调度到单一处理器、多处理器、顺序处理器以及并行处理器中的其中之一。图19示出了根据本发明实施方式的优化策略。该优化策略在电路操作级对上采样器的零输入进行优化,例如,用于消除由插入器导致的零收入(操作1011)。如果不修改的话零输入会呈现浪费的操作。另外,数据流图中的零输入或许不会被识别为冗余电路或者浪费的操作,因此本发明的设计方法对数据流图表示(优选对由上采样器导致的零输入)执行电路操作级优化,以改善电路操作。操作1012通过采用数据流算法在数据流级继续对部分数据流图表示进行优化,并映射到硬件设备(操作1013)。在一个实施方式中,在数据流级的优化出现在在电路操作级的优化之后。在电路操作级对上采样器电路进行优化能够产生电路优化后的数据流图表示(例如,通过消除与上采样器电路的零输入相关的冗余操作),并且该电路优化后的数据流图表示之后经历数据流级的优化来产生优化后的数据流图。图20示出了根据本发明实施方式的另一优化策略。该优化策略使用电路操作级来对下采样器的未使用输出(例如,由抽取器导致)进行优化(操作1016)。类似于零输入, 如果不修改的话未使用的输出能够呈现浪费的操作。而且,数据流图中的未使用输出或许不会被识别为冗余电路或者浪费的操作,因此本发明的设计方法对数据流图表示(优选对由下采样器导致的未使用输出)执行操作级优化,以改善电路操作。操作1017采用数据流算法来继续执行操作级优化,并映射到硬件(操作1018)。在一个实施方式中,在数据流级的优化出现在在电路操作级的优化之后。在电路操作级对下采样器进行优化能够产生电路优化后的数据流图表示(例如,通过消除与下采样器电路的未使用输出相关的冗余操作), 并且该电路优化后的数据流图表示之后经历数据流级的优化来产生优化后的数据流图。图21示出了根据本发明另一实施方式的用于设计电路模块的方法;从电路设计、 设计的电路图开始或者从设计的数据流图表示开始,操作1021将部分数据流图表示转换成电路示意图或者框图。该转换可以包括通过采用针对延迟边缘而插入的延迟寄存器来将边缘转换成数据流路径。该转换还可以将节点转换成功能单元,优选在附加的外部信息的帮助下进行,因为典型数据流图不携带功能信息。在将数据图部分转换成电路示意图的情况下,可以执行对这些部分的电路操作级优化(操作102 。这些优化可以消除浪费和冗余,并且能够从电路操作的角度来改善电路设计,在数据图表示的情况下很难实现这样的改善。在一个方面中,对上采样器的零输入或者下采样器的未使用输出执行这些优化。在电路操作级优化(例如,在电路操作级的优化)之后,可以在操作1023中将电路示意图转换回数据流表示。向数据流图的转换典型地是向电路示意图的转换的反向转换,其中在存在或者不存在延迟的情况下,用节点来替换功能单元并用边缘来替换数据路径。操作10 继续用数据流算法来执行操作级优化(例如在数据流级优化数据流图表示),并映射到硬件(操作102 。可以包括该优化的其他方面,例如在电路操作级的优化之后出现在数据流级的优化,在数据流级的优化可以包括折叠、展开、重新调整时序或者调度,以及映射到硬件可以包括映射到可编程硬件设备、实施优化后的数据流图表示或者调度到单一处理器或多处理器。图22示出了根据本发明实施方式的用于设计电路模块的优选方法。操作1031将部分多速率系统表示转换成单速率系统表示。该表示可以是数据流图表示。该多速率表示可以包括采用不同频率、不同时钟域的实现方式以及具有不同输入/输出样本的功能节点。多速率表示还可以包括重新采样器、上采样器或者下采样器。在转换到单速率表示之后,操作1032在电路操作级对转换后的单速率表示进行优化。该电路操作级优化可以包括将数据流图表示转换成电路示意图表示,以使电路优化简单。重新转换到数据流图表示也可以在电路操作级优化之后实施。操作1034在数据流级继续执行优化,并之后映射到硬件 (操作1035)。与使用与单速率表示相关的更简单的算法一起,采用单速率表示的数据流优化可以更为简单,因此能够提供更好的机会找到该设计的到单一处理器或者到多个并行处理器的最佳调度。图23示出了针对设计优化的优选实施方式。操作1041通过使用与时钟值成反比的最小展开因子来将多速率系统表示(诸如数据流图)展开成单速率表示。可以从不同时钟域的时钟值来计算要被用作公因子的最小公倍数因子。最小展开因子可以是被每个时钟域的时钟值相除的最小公倍数因子。例如,2到3重新采样器系统可以包括因子为3的上采样器和因子为2的下采样器。公因子可以是6,因此针对输入的因子为3的采样器的展开因子可以被设置为2,针对输出的因子为2的下采样器的展开因子可以被设置为3,并且针对重新采样器逻辑的展开因子可以被设置为6。在通过展开因子进行单速率转换之后,操作1042之后在电路操作级对转换后的单速率表示进行优化,以产生数据流图。该优化可以包括使用逻辑等效进行优化、优化掉由上采样器导致的零输入以及优化掉由下采样器导致的未使用端口。操作1044在数据流级继续执行优化,并之后映射到硬件(操作1045)。图M示出了针对设计优化的优选实施方式。操作1051将数据流图表示的速率改变器部分展开成单速率数据流图表示。在通过展开执行单速率转换之后,操作1052在电路操作级优化掉上采样器的零输入及其相关电路。操作1053之后在电路操作级优化掉下采样器的未使用输出及其相关电路。操作IOM在数据流级继续执行优化,并之后映射到硬件 (操作 1055)。在前面的描述中,已经参考本发明的具体示例性实施方式描述了本发明。显然,可以在不背离所附权利要求书中阐述的本发明的更宽的精神和范围的情况下对本发明做出各种修改。因此,应当认为,本说明书和附图是说明性的而非限制性的。
权利要求
1.一种用于设计电路的方法,该方法包括在电路操作级对所述电路的部分数据流图表示进行优化以生成数据流图;以及在数据流级对所述数据流图进行优化以生成优化后的数据流图。
2.根据权利要求1所述的方法,其中,所述在数据流级对所述数据流图进行优化在所述在电路操作级对所述电路的数据流图表示进行优化之后发生。
3.根据权利要求1所述的方法,其中,所述电路的部分所述数据流图表示包括表示电路功能的节点,并且该方法还包括在电路操作级对所述部分数据流图表示进行优化之前,将所述节点转换成所述电路功能。
4.根据权利要求1所述的方法,其中,在电路操作级进行优化包括使用逻辑等效电路进行优化。
5.根据权利要求1所述的方法,其中,在数据流级对数据流图进行优化包括下述各项中的至少一者折叠部分所述数据流图、展开部分所述数据流图、重新调整部分所述数据流图的时序、以及找到最佳调度算法。
6.根据权利要求1所述的方法,该方法还包括下述步骤中的一个步骤 将所述优化后的数据流图映射到可编程硬件设备;将所述优化后的数据流图实施到电路;以及将所述优化后的数据流图调度到单一处理器、多处理器、顺序处理器、以及并行处理器中的一者。
7.一种包含可执行计算机程序指令的机器可读介质,当所述可执行计算机程序指令由数字处理系统执行时促使所述系统执行用于设计电路的方法,该方法包括在电路操作级对所述电路的部分数据流图表示进行优化以生成数据流图;以及在数据流级对所述数据流图进行优化以生成优化后的数据流图。
8.根据权利要求7所述的介质,其中,所述在数据流级对所述数据流图进行优化在所述在电路操作级对所述电路的数据流图表示进行优化之后发生。
9.根据权利要求7所述的介质,其中,所述电路的部分所述数据流图表示包括表示电路功能的节点,并且所述方法还包括在电路操作级对所述部分数据流图表示进行优化之前,将所述节点转换成所述电路功能。
10.根据权利要求7所述的介质,其中,在电路操作级进行优化包括使用逻辑等效电路进行优化。
11.根据权利要求7所述的介质,其中,在数据流级对数据流图进行优化包括下述各项中的至少一者折叠部分所述数据流图、展开部分所述数据流图、重新调整部分所述数据流图的时序、以及找到最佳调度算法。
12.根据权利要求7所述的介质,其中所述方法还包括下述步骤中的一个步骤 将所述优化后的数据流图映射到可编程硬件设备;将所述优化后的数据流图实施到电路;以及将所述优化后的数据流图调度到单一处理器、多处理器、顺序处理器、以及并行处理器中的一者。
13.一种用于设计电路的数据处理系统,该数据处理系统包括用于在电路操作级对所述电路的部分数据流图表示进行优化以生成数据流图的装置;以及用于在数据流级对所述数据流图进行优化以生成优化后的数据流图的装置。
14.根据权利要求13所述的系统,其中,所述在数据流级对所述数据流图进行优化在所述在电路操作级对所述电路的数据流图表示进行优化之后发生。
15.根据权利要求13所述的系统,其中,所述电路的部分所述数据流图表示包括表示电路功能的节点,并且所述方法还包括在电路操作级对所述部分数据流图表示进行优化之前,将所述节点转换成所述电路功能。
16.根据权利要求13所述的系统,其中,在电路操作级进行优化包括使用逻辑等效电路进行优化。
17.根据权利要求13所述的系统,其中,在数据流级对数据流图进行优化包括下述各项中的至少一者折叠部分所述数据流图、展开部分所述数据流图、重新调整部分所述数据流图的时序、以及找到最佳调度算法。
18.根据权利要求13所述的系统,该系统还包括下述各项中的一者 用于将所述优化后的数据流图映射到可编程硬件设备的装置; 用于将所述优化后的数据流图实施到电路的装置;以及用于将所述优化后的数据流图调度到单一处理器、多处理器、顺序处理器、以及并行处理器中的一者的装置。
19.一种用于设计电路的方法,该方法包括将所述电路的多速率数据流图表示转换成单速率数据流图表示; 在电路操作级对部分所述单速率数据流图表示进行优化以生成数据流图;以及在数据流级对所述数据流图进行优化以生成优化后的数据流图。
20.根据权利要求19所述的方法,其中,将多速率数据流图转换成单速率数据流图包括展开所述多速率数据流图。
21.根据权利要求20所述的方法,其中,展开所述多速率数据流图包括用与时钟成反比的展开因子来展开所述多速率数据流图中的时钟域。
22.根据权利要求19所述的方法,其中,所述电路的部分所述单速率数据流图表示包括表示电路功能的节点,并且其中在电路操作级对所述单速率数据流图表示进行优化包括在电路操作级进行优化之前,首先将所述节点转换成所述电路功能。
23.根据权利要求19所述的方法,其中,在电路操作级进行优化包括使用逻辑等效电路进行优化。
24.根据权利要求19所述的方法,其中,所述电路包括样本速率改变器部件,并且其中由电路操作级进行优化包括对由所述样本速率改变器部件导致的零输入进行优化以及对由所述样本速率改变器部件导致的未使用输出进行优化中的一者。
25.根据权利要求19所述的方法,其中,在数据流级对数据流图进行优化包括下述各项中的至少一者折叠部分所述数据流图、展开部分所述数据流图、重新调整部分所述数据流图的时序、以及找到最佳调度算法。
26.根据权利要求25所述的方法,其中,重新调整时序包括下列各项中的至少一者将若干流水线寄存器组添加到部分所述电路中、以及从部分所述电路中移除若干流水线寄存器组。
27.根据权利要求19所述的方法,该方法还包括下述步骤中的一个步骤将所述优化后的数据流图映射到可编程硬件设备;将所述优化后的数据流图实施到电路;以及将所述优化后的数据流图调度到单一处理器、多处理器、顺序处理器、以及并行处理器中的一者。
28.一种包含可执行计算机程序指令的机器可读介质,当所述可执行计算机程序指令由数字处理系统执行时促使所述系统执行用于设计电路的方法,该方法包括将所述电路的多速率数据流图表示转换成单速率数据流图表示;在电路操作级对部分所述单速率数据流图表示进行优化以生成数据流图;以及在数据流级对所述数据流图进行优化以生成优化后的数据流图。
29.根据权利要求观所述的介质,其中,将多速率数据流图转换成单速率数据流图包括展开所述多速率数据流图。
30.根据权利要求四所述的介质,其中,展开所述多速率数据流图包括用与时钟成反比的展开因子来展开所述多速率数据流图中的时钟域。
31.根据权利要求观所述的介质,其中,所述电路的部分所述单速率数据流图表示包括表示电路功能的节点,并且其中在电路操作级对所述单速率数据流图表示进行优化包括在电路操作级进行优化之前,首先将所述节点转换成所述电路功能。
32.根据权利要求观所述的介质,其中,在电路操作级进行优化包括使用逻辑等效电路进行优化。
33.根据权利要求观所述的介质,其中,所述电路包括样本速率改变器部件,并且其中由电路操作级进行优化包括对由所述样本速率改变器部件导致的零输入进行优化以及对由所述样本速率改变器部件导致的未使用输出进行优化中的一者。
34.根据权利要求观所述的介质,其中,在数据流级对数据流图进行优化包括下述各项中的至少一者折叠部分所述数据流图、展开部分所述数据流图、重新调整部分所述数据流图的时序、以及找到最佳调度算法。
35.根据权利要求34所述的介质,其中,重新调整时序包括下列各项中的至少一者将若干流水线寄存器组添加到部分所述电路中、以及从部分所述电路中移除若干流水线寄存器组。
36.根据权利要求观所述的介质,其中所述方法还包括下述步骤中的一个步骤将所述优化后的数据流图映射到可编程硬件设备;将所述优化后的数据流图实施到电路;以及将所述优化后的数据流图调度到单一处理器、多处理器、顺序处理器、以及并行处理器中的一者。
37.一种用于设计电路的数据处理系统,该数据处理系统包括用于将所述电路的多速率数据流图表示转换成单速率数据流图表示的装置;用于在电路操作级对部分所述单速率数据流图表示进行优化以生成数据流图的装置;以及用于在数据流级对所述数据流图进行优化以生成优化后的数据流图的装置。
38.根据权利要求37所述的系统,其中,将多速率数据流图转换成单速率数据流图包括展开所述多速率数据流图。
39.根据权利要求38所述的系统,其中,展开所述多速率数据流图包括用与时钟成反比的展开因子来展开所述多速率数据流图中的时钟域。
40.根据权利要求37所述的系统,其中,所述电路的部分所述单速率数据流图表示包括表示电路功能的节点,并且其中在电路操作级对所述单速率数据流图表示进行优化包括在电路操作级进行优化之前,首先将所述节点转换成所述电路功能。
41.根据权利要求37所述的系统,其中,在电路操作级进行优化包括使用逻辑等效电路进行优化。
42.根据权利要求37所述的系统,其中,所述电路包括样本速率改变器部件,并且其中由电路操作级进行优化包括对由所述样本速率改变器部件导致的零输入进行优化以及对由所述样本速率改变器部件导致的未使用输出进行优化中的一者。
43.根据权利要求37所述的系统,其中,在数据流级对数据流图进行优化包括下述各项中的至少一者折叠部分所述数据流图、展开部分所述数据流图、重新调整部分所述数据流图的时序、以及找到最佳调度算法。
44.根据权利要求43所述的系统,其中,重新调整时序包括下列各项中的至少一者将若干流水线寄存器组添加到部分所述电路中、以及从部分所述电路中移除若干流水线寄存器组。
45.根据权利要求37所述的系统,该系统还包括下述各项中的一者用于将所述优化后的数据流图映射到可编程硬件设备的装置;用于将所述优化后的数据流图实施到电路的装置;以及用于将所述优化后的数据流图调度到单一处理器、多处理器、顺序处理器、以及并行处理器中的一者的装置。
46.一种用于设计电路的方法,该方法包括将所述电路的数据流图表示的速率改变器部分展开成单速率数据流图表示;在电路操作级对因展开所述速率改变器部分而产生的零输入和未使用输出中的至少一者进行优化,以生成数据流图;以及在数据流级对所述数据流图进行优化以生成优化后的数据流图。
47.根据权利要求46所述的方法,其中,速率改变器包括上采样器、下采样器、重新采样器、抽取器、以及插入器中的一者。
48.根据权利要求46所述的方法,其中,在电路操作级进行优化包括使用逻辑等效电路进行优化。
49.根据权利要求46所述的方法,其中,在数据流级对数据流图进行优化包括下述各项中的至少一者折叠部分所述数据流图、展开部分所述数据流图、重新调整部分所述数据流图的时序、以及找到最佳调度算法。
50.根据权利要求46所述的方法,该方法还包括下述步骤中的一个步骤将所述优化后的数据流图映射到可编程硬件设备上;将所述优化后的数据流图实施到电路;以及将所述优化后的数据流图调度到单一处理器、多处理器、顺序处理器、以及并行处理器中的一者。
51.—种包含可执行计算机程序指令的机器可读介质,当所述可执行计算机程序指令由数字处理系统执行时促使所述系统执行用于设计电路的方法,该方法包括将所述电路的数据流图表示的速率改变器部分展开成单速率数据流图表示;在电路操作级对因展开所述速率改变器部分而产生的零输入和未使用输出中的至少一者进行优化,以生成数据流图;以及在数据流级对所述数据流图进行优化以生成优化后的数据流图。
52.根据权利要求51所述的介质,其中,速率改变器包括上采样器、下采样器、重新采样器、抽取器、以及插入器中的一者。
53.根据权利要求51所述的介质,其中,在电路操作级进行优化包括使用逻辑等效电路进行优化。
54.根据权利要求51所述的介质,其中,在数据流级对数据流图进行优化包括下述各项中的至少一者折叠部分所述数据流图、展开部分所述数据流图、重新调整部分所述数据流图的时序、以及找到最佳调度算法。
55.根据权利要求51所述的介质,所述方法还包括下述步骤中的一个步骤将所述优化后的数据流图映射到可编程硬件设备;将所述优化后的数据流图实施到电路;以及将所述优化后的数据流图调度到单一处理器、多处理器、顺序处理器、以及并行处理器中的一者。
56.一种用于设计电路的数据处理系统,该数据处理系统包括用于将所述电路的数据流图表示的速率改变器部分展开成单速率数据流图表示的装置;用于在电路操作级对因展开所述速率改变器部分而产生的零输入和未使用输出中的至少一者进行优化以生成数据流图的装置;以及用于在数据流级对所述数据流图进行优化以生成优化后的数据流图的装置。
57.根据权利要求56所述的系统,其中,速率改变器包括上采样器、下采样器、重新采样器、抽取器、以及插入器中的一者。
58.根据权利要求56所述的系统,其中,在电路操作级进行优化包括使用逻辑等效电路进行优化。
59.根据权利要求56所述的系统,其中,在数据流级对数据流图进行优化包括下述各项中的至少一者折叠部分所述数据流图、展开部分所述数据流图、重新调整部分所述数据流图的时序、以及找到最佳调度算法。
60.根据权利要求56所述的系统,该系统还包括下述各项中的一者用于将所述优化后的数据流图映射到可编程硬件设备的装置;用于将所述优化后的数据流图实施到电路的装置;以及用于将所述优化后的数据流图调度到单一处理器、多处理器、顺序处理器、以及并行处理器中的一者的装置。
全文摘要
用于通过将展开用作多速率折叠的预处理来优化电路表示的方法和装置。在本发明的至少一个实施方式中,在使用数据流算法进行优化并将设计映射到硬件上之前使用电路操作级来对电路的部分数据流图表示进行优化。在一个方面中,本发明公开了通过对由上采样器导致的零输入进行优化或者对由下采样器导致的未使用输出进行优化来针对数据流图表示进行电路操作级优化。在本发明的至少一个实施方式中,多速率数据图在数据流优化之前被转换成单速率数据图。在一个方面中,将多速率数据图转换成单速率数据图包括用与时钟值成反比的最小展开因子来展开多速率数据图。
文档编号G06F17/50GK102282558SQ200980154558
公开日2011年12月14日 申请日期2009年11月12日 优先权日2008年11月14日
发明者M·伊斯皮尔 申请人:新思公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1