两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

多速率系統(tǒng)折疊中的非折疊算法的制作方法

文檔序號:6596163閱讀:248來源:國知局
專利名稱:多速率系統(tǒng)折疊中的非折疊算法的制作方法
技術領域
本發(fā)明涉及電路設計,尤其涉及設計表示的電路優(yōu)化。
背景技術
對于數(shù)字電路(例如,超大規(guī)模集成(VLSI)技術的規(guī)模)的設計而言,設計者通常采用計算機輔助技術。已經(jīng)開發(fā)了描述數(shù)字電路的標準語言(諸如硬件描述語言(HDL)) 來輔助設計和模擬復雜的數(shù)字電路。若干種硬件描述語言(諸如VHDL和Verilog)已經(jīng)演進為工業(yè)標準。VHDL和Verilog是通用硬件描述語言,其允許通過使用抽象數(shù)據(jù)類型來定義門級、寄存器傳輸級(RTL)或者行為級的硬件模型。隨著設備技術的持續(xù)發(fā)展,已經(jīng)開發(fā)了各種產(chǎn)品設計工具來使HDL適用于更新的設備和設計風格。在用HDL代碼來設計集成電路時,首先對該代碼進行編寫,之后由HDL編譯器對該代碼進行編譯。HDL源代碼以一定級別對電路元件進行描述,而編譯器則根據(jù)編譯產(chǎn)生RTL 網(wǎng)表。該RTL網(wǎng)表通常是獨立于工藝的網(wǎng)表,因為其獨立于特定銷售商的集成電路(諸如現(xiàn)場可編程門陣列(FPGA)或者專用集成電路(ASIC)的工藝/架構。該RTL網(wǎng)表對應于電路元件的圖示(與行為表示不同)。然后執(zhí)行映射操作以從獨立于工藝的RTL網(wǎng)表轉(zhuǎn)換成工藝專用網(wǎng)表,該工藝專用網(wǎng)表能夠用于創(chuàng)建銷售商的工藝/架構中的電路。眾所周知,F(xiàn)PGA 銷售商利用不同的工藝/架構來實現(xiàn)他們的集成電路中的邏輯電路。因此,對獨立于工藝的RTL網(wǎng)表進行映射,以創(chuàng)建專用于特定銷售商的工藝/架構的網(wǎng)表。在該過程中通常需要的一個操作是,規(guī)劃特定集成電路的版圖、控制時序問題以及管理集成電路的區(qū)域之間的互連。這有時稱為“布圖規(guī)劃”。典型的布圖規(guī)劃操作將集成電路的電路面積分成多個區(qū)域(有時稱為“塊”),之后分配駐留在塊中的邏輯。這些區(qū)域可以是矩形或者非矩形。該操作有兩個效果邏輯的位置的評估誤差從集成電路級降低到塊級(這趨向于降低時序評估的誤差);以及布局布線典型地更快地運行,因為其已經(jīng)從一個非常大的問題降低為一系列較簡單的問題。已經(jīng)將大量的優(yōu)化努力投入到資源和資源利用的分配上。電路級優(yōu)化明顯有助于最佳設計(包括電路修改和重新布局),以獲得期望的時序和期望的面積。例如,電路布局相關的優(yōu)化包括加法器樹或者門分解、邏輯復制、位片劃分以及迂回移除。另外,用于數(shù)字信號處理的數(shù)據(jù)流編程中的發(fā)展已經(jīng)通過使用尤其是用于并行計算機的數(shù)據(jù)流圖而在電路優(yōu)化中提供了明顯的進步。數(shù)據(jù)流圖表示是流行的硬件和軟件方法,在該方法中,算法被描述為直接圖,其中節(jié)點表示計算(或者函數(shù)或者子任務)而邊緣表示數(shù)據(jù)路徑(節(jié)點之間的通信)。數(shù)據(jù)流算法主要考慮數(shù)據(jù)的流動而不考慮實際的計算過程,因此對于并行硬件上的并發(fā)實現(xiàn)方式而言,數(shù)據(jù)流算法是用于描述數(shù)字信號處理應用的自然模式。對于并發(fā)實現(xiàn)方式而言,任務被分成之后被調(diào)度到并行處理器上的子任務。例如,圖IA示出了描述計算y[n] = ay[n-l]+x[n]的電路框圖。這是一種反饋函數(shù),其中計算輸出y[n]依賴于其之前輸出y[n-l]的值。該框圖示出了用于存儲輸出y的之前值的延遲塊D,該延遲塊D可以是延遲寄存器。乘法塊X用于將延遲輸出y[n-l]與常數(shù)a相乘。加法塊“ + ”用于將輸入x[n]與乘法后的延遲輸出ay[n-l]相加。電路框圖的關鍵特征是能夠從該電路框圖中理解并獲得電路的功能。例如,計算y[n] = ay[n-l]+x[n] 能夠在電路操作級從圖IA的電路框圖中被計算出。圖IB示出了該框圖的數(shù)據(jù)流圖,其中節(jié)點A表示加法塊以及節(jié)點B表示乘法塊。 從B到A的邊緣(B — A)表示從乘法塊到加法塊的數(shù)據(jù)路徑,而從A到B的邊緣(A — B) 表示從加法塊到乘法塊的數(shù)據(jù)路徑。延遲D被插入從A到B的數(shù)據(jù)路徑中,以表明從A到 B的邊緣(A —B)包含一個延遲(例如,1個時鐘周期的延遲)。輸入分支x[n]和輸出分支y[n]以虛線示出,主要是用于說明與圖IA中的框圖的相互關系。實際上,通常不在數(shù)據(jù)流圖中示出輸入和輸出分支(例如,圖1C)??商鎿Q地,延遲D可以示出在邊緣的附近(圖 1C)。其他信息也可以被包含在數(shù)據(jù)流圖中,例如,表明節(jié)點A和B的執(zhí)行消耗了一個數(shù)據(jù)樣本并產(chǎn)生了輸出的、與同步數(shù)據(jù)流圖相關的信息。這由來自到達節(jié)點A/B的邊緣的數(shù)字1以及來自離開節(jié)點A/B的邊緣的數(shù)字1表示。每個節(jié)點都可以具有與其相關聯(lián)的執(zhí)行時間,例如,執(zhí)行節(jié)點A(加法計算)所需的時間量是2個時間單位(例如,2個時鐘周期), 而執(zhí)行節(jié)點B(乘法計算)所需的時間量是4個時間單位。這分別由節(jié)點A和節(jié)點B附近的括號(2)和中的數(shù)字表示。典型地,在數(shù)據(jù)流級,數(shù)據(jù)流圖的操作是僅與該數(shù)據(jù)流相關的操作,而與功能或者計算操作無關。例如,數(shù)據(jù)流圖的關鍵路徑被定義為在包含零延遲的所有路徑中具有最長計算時間的路徑。因此,圖IB所示的數(shù)據(jù)流圖中的關鍵路徑是路徑B —A,其需要6個時間單位。優(yōu)化關鍵路徑是在數(shù)據(jù)流級優(yōu)化數(shù)據(jù)流圖的示例。所示的數(shù)據(jù)流圖描述了單速率系統(tǒng),其中,所有的節(jié)點都消耗一個數(shù)據(jù)樣本并且產(chǎn)生與時鐘周期相關的一個輸出。在多速率系統(tǒng)中,消耗和產(chǎn)生的數(shù)據(jù)樣本的數(shù)量可以不是1,諸如在節(jié)點以不同頻率進行操作的系統(tǒng)中或者在抽取器(decimator)或插入器 (interpolator)中。例如,丨2抽取器每隔一個數(shù)據(jù)樣本就進行舍棄,從而每消耗2個數(shù)據(jù)樣本就產(chǎn)生一個數(shù)據(jù)輸出。丨2插入器對于每個數(shù)據(jù)樣本引入附加數(shù)據(jù)輸出,從而每消耗 1個數(shù)據(jù)樣本就產(chǎn)生2個數(shù)據(jù)輸出。除了適于數(shù)字信號處理之外,數(shù)據(jù)流圖表示還具有另一優(yōu)點,即對于數(shù)據(jù)流描述的任何實現(xiàn)而言都生成相同的結果,只要保持數(shù)據(jù)流動的完整性。因此,數(shù)據(jù)流圖表示是將電路設計表示調(diào)度和映射到硬件上的必不可少的工具。當前的數(shù)據(jù)流圖表示采用節(jié)點和邊緣,同時使用線性編程來優(yōu)化數(shù)據(jù)的流動以獲得期望的時鐘。與實際電路相關的信息是不相關的,并且通常不再被呈現(xiàn)在數(shù)據(jù)流圖表示中。

發(fā)明內(nèi)容
本發(fā)明涉及用于設計電路的方法和裝置,尤其涉及用于數(shù)字電路表示的優(yōu)化處理。在一個實施方式中,除了在數(shù)據(jù)流級對數(shù)據(jù)流圖表示進行優(yōu)化,本發(fā)明公開了在電路操作級對電路的部分數(shù)據(jù)流圖表示進行優(yōu)化來產(chǎn)生數(shù)據(jù)流圖。要在電路操作級被優(yōu)化的數(shù)據(jù)流圖表示可以是電路框圖或者數(shù)據(jù)流圖,其中,在經(jīng)歷電路操作級的優(yōu)化之前優(yōu)選將其轉(zhuǎn)換成電路框圖。在在電路操作級被優(yōu)化之后得到的數(shù)據(jù)流圖可以是數(shù)據(jù)流圖或者電路框圖,其中,在經(jīng)歷數(shù)據(jù)流級的優(yōu)化之前優(yōu)選將其轉(zhuǎn)換成數(shù)據(jù)流圖。在一個方面中,數(shù)據(jù)流圖表示在在數(shù)據(jù)流級優(yōu)化之前在電路操作級被優(yōu)化,以產(chǎn)生優(yōu)化的數(shù)據(jù)流圖。數(shù)據(jù)流級優(yōu)化典型地修改數(shù)據(jù)流路徑,包括移除或者引入一個或多個延遲寄存器來獲得期望的時序。數(shù)據(jù)流級操作通常對數(shù)據(jù)流動進行操作,例如,用于最佳并行處理器操作的輸入數(shù)據(jù)的可用性。因此,數(shù)據(jù)流算法通常與電路或者操作級無關,而是僅與數(shù)據(jù)流路徑相關。數(shù)據(jù)流級優(yōu)化通常包括折疊部分數(shù)據(jù)流圖以獲得更小的記憶空間、重新調(diào)整部分數(shù)據(jù)流圖的時序以獲得更好的時序、以及找到最佳調(diào)度算法來將數(shù)據(jù)流圖映射到可編程硬件設備。相反地,電路操作級優(yōu)化使用邏輯等效電路來對電路進行修改以實現(xiàn)期望的目的,諸如簡化電路、減少部件、減少記憶空間或者獲得期望的時序。電路操作級優(yōu)化通常對電路部件進行操作,從而在保留功能的同時對電路進行修改。在一個實施方式中,本發(fā)明向數(shù)據(jù)流圖中引入了電路操作級優(yōu)化,以在將設計映射到硬件之前更好地優(yōu)化電路表示。在一個方面中,在使用電路操作級對設計表示進行優(yōu)化之后,能夠通過使用數(shù)據(jù)流圖算法(諸如折疊、重新調(diào)整時序以及對硬件映射進行調(diào)度) 來對該設計表示進行進一步的優(yōu)化。例如,重新調(diào)整時序優(yōu)化可以包括向部分電路中添加多個流水線寄存器組或者從部分電路中移除多個流水線寄存器組。在在電路操作級以及在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化以產(chǎn)生優(yōu)化的數(shù)據(jù)流圖之后,本方法還包括將優(yōu)化后的數(shù)據(jù)流圖映射到硬件上,諸如將優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備上;將優(yōu)化后的數(shù)據(jù)流圖應用到電路;以及將優(yōu)化后的數(shù)據(jù)流圖調(diào)度給單一處理器、多處理器、順序處理器以及并行處理器的其中之一。在一個實施方式中,數(shù)據(jù)流圖表示典型地由節(jié)點和邊緣表示,因此不能為電路操作級優(yōu)化提供電路塊的細節(jié)。在一個方面中,本發(fā)明將電路的部分數(shù)據(jù)流圖表示轉(zhuǎn)換成電路框圖,以便于電路操作級優(yōu)化。對于隨后的數(shù)據(jù)流算法優(yōu)化而言,還能夠?qū)㈦娐房驁D轉(zhuǎn)換回數(shù)據(jù)流圖表示。從框圖向數(shù)據(jù)流圖表示的轉(zhuǎn)換可以包括將功能設備或者塊轉(zhuǎn)換成節(jié)點以及將數(shù)據(jù)路徑轉(zhuǎn)換成邊緣。從數(shù)據(jù)流圖表示向框圖的轉(zhuǎn)換可以包括將表示電路功能的節(jié)點轉(zhuǎn)換成等效的電路功能設備或者塊;以及將邊緣轉(zhuǎn)換成數(shù)據(jù)路徑。由于數(shù)據(jù)流圖典型地不包含詳細的電路,所以或許需要附加信息來允許節(jié)點向功能塊的轉(zhuǎn)換。在優(yōu)選實施方式中,本發(fā)明公開了一種針對多速率DSP系統(tǒng)的數(shù)據(jù)圖表示的優(yōu)化算法。在一個方面中,在數(shù)據(jù)路徑優(yōu)化之前,該方法將多速率數(shù)據(jù)圖轉(zhuǎn)換成單速率數(shù)據(jù)圖。 之后,在數(shù)據(jù)流級優(yōu)化之前,可以將電路操作級優(yōu)化應用到轉(zhuǎn)換后的單速率數(shù)據(jù)圖。由于電路優(yōu)化的數(shù)據(jù)圖是單速率數(shù)據(jù)圖,所以使用單速率算法的數(shù)據(jù)流級操作可以用于優(yōu)化設計表不。單速率優(yōu)化典型地包括調(diào)度、折疊方程計算以及重新調(diào)整時序。調(diào)度是將操作分配給硬件資源。折疊方程用于確定硬件部件之間的切換和延遲值。重新調(diào)整時序用于使得所述調(diào)度可行。為了直接優(yōu)化多速率系統(tǒng),多速率優(yōu)化主要依賴于經(jīng)過速率改變器(例如, 上采樣器或者下采樣器)的路徑的折疊方程的計算。應當在調(diào)度算法和折疊方程計算中考慮系統(tǒng)的多速率特性,從而增加了復雜性并降低了找到到硬件部件的最佳調(diào)度和映射的幾率。單速率調(diào)度是受到更廣泛研究的課題,并且存在著比多速率調(diào)度更高效的優(yōu)化算法。通過采用本發(fā)明的轉(zhuǎn)換后的單速率數(shù)據(jù)圖,能夠杠桿影響這些有效的算法,并因此能夠找到更好的調(diào)度。在一個實施方式中,本發(fā)明的將多速率數(shù)據(jù)圖轉(zhuǎn)換成單速率數(shù)據(jù)圖包括用適當?shù)囊蜃觼碚归_多速率數(shù)據(jù)圖。所述展開優(yōu)選用與時鐘值成反比的展開因子來展開多速率數(shù)據(jù)流圖中的時鐘域。該方法比通過使用與時鐘成線性比例的折疊因子來折疊每個時鐘域來生成單速率系統(tǒng)要好。在一個實施方式中,在轉(zhuǎn)換成單速率(例如,通過用與時鐘值成反比的展開因子來展開多速率系統(tǒng))之后,在電路操作級對轉(zhuǎn)換后的單速率系統(tǒng)進行優(yōu)化。在一個方面中, 本發(fā)明的在電路操作級對數(shù)據(jù)流圖進行優(yōu)化包括在在電路操作級對數(shù)據(jù)流圖進行優(yōu)化之前,首先將表示數(shù)據(jù)流圖的電路功能的節(jié)點轉(zhuǎn)換成等效電路功能。電路操作級優(yōu)化可以包括使用邏輯等效電路來進行優(yōu)化,優(yōu)選針對數(shù)字設計(諸如速率改變器、重新采樣器、抽取器以及插入器)。例如,在插入器表示中,對于對信號進行上采樣而言,引入零輸入。在一個方面中,本發(fā)明公開了通過對由上采樣器導致的零輸入進行優(yōu)化來針對數(shù)據(jù)流圖表示進行電路操作級優(yōu)化。而且,在抽取器表示中,對于對信號進行下采樣而言,終止輸出或者不使用輸出。在一個方面中,本發(fā)明公開了通過對由下采樣器導致的未使用的輸出進行優(yōu)化來針對數(shù)據(jù)流圖表示進行電路操作級優(yōu)化。在一個實施方式中,可以將本發(fā)明的在電路操作級對數(shù)據(jù)流圖進行優(yōu)化應用到設計電路的速率改變器部分。速率改變器能夠引入冗余操作,因此在一個實施方式中,本發(fā)明公開了一種包括電路操作級優(yōu)化的優(yōu)化過程,以至少消除冗余操作,該冗余操作例如可由速率改變器行為(諸如零輸入或者未使用的輸出)的轉(zhuǎn)換所導致。在一個實施方式中,將設計電路的數(shù)據(jù)流圖表示的速率改變器部分展開成單速率數(shù)據(jù)流圖表示。之后,在電路操作級對從速率改變器部分的展開操作產(chǎn)生的零輸入和/或未使用的輸出進行優(yōu)化,以產(chǎn)生電路優(yōu)化的數(shù)據(jù)流圖。該電路優(yōu)化的數(shù)據(jù)流圖之后可以在影射到硬件上之前,在數(shù)據(jù)流級優(yōu)化中經(jīng)歷優(yōu)化。本發(fā)明包括方法以及執(zhí)行這些方法的裝置(包括執(zhí)行這些方法的數(shù)據(jù)處理系統(tǒng)以及當在數(shù)據(jù)處理系統(tǒng)上被執(zhí)行時促使該系統(tǒng)執(zhí)行這些方法的計算機可讀媒介)。根據(jù)附圖以及隨后的詳細說明,本發(fā)明其它的特點將變得顯而易見。


通過示例的方式示出了本發(fā)明,并且本發(fā)明不受附圖中的圖形的限制,其中,相同的標號指代相同的元件。圖1A-1C用電路示意圖和數(shù)據(jù)流圖示出了設計的示例性表示;圖2示出了可以與本發(fā)明一起使用的數(shù)據(jù)處理系統(tǒng)的框圖示例;圖3A-;3B示出了示例性的電路操作級優(yōu)化;圖4A-4B示出了針對數(shù)據(jù)流表示的示例性流水線優(yōu)化;圖5A-5C示出了用于構建數(shù)據(jù)流圖來重新調(diào)整時序的現(xiàn)有技術方法;圖6A-6C示出了示例性的未優(yōu)化的系統(tǒng);
圖7A-7C示出了使用并行處理器的示例性的優(yōu)化系統(tǒng);圖8A-8B示出了示例性的展開變換;圖9A-9C示出了另一示例性展開變換;圖10示出了示例性的折疊變換;圖1IA-IIC示出了示例性的下采樣器;圖12A-12C示出了示例性的上采樣器;圖13、14A_14B、15、16和17A-17C示出了根據(jù)本發(fā)明優(yōu)選實施方式的示例性優(yōu)化
方法;圖18示出了根據(jù)本發(fā)明實施方式的用于設計電路模塊的方法;圖19-20示出了根據(jù)本發(fā)明實施方式的兩個優(yōu)化方案;圖21示出了根據(jù)本發(fā)明另一實施方式的用于設計電路模塊的方法;圖22-M示出了根據(jù)本發(fā)明實施方式的用于設計電路模塊的優(yōu)選方法。
具體實施例方式下面的描述和附圖對本發(fā)明進行了說明,但是不應被解釋為限制本發(fā)明。描述了許多具體細節(jié)來提供對本發(fā)明的透徹理解。然而,在某些實例中,為了避免使本發(fā)明的描述變得模糊,沒有描述眾所周知的或常規(guī)的細節(jié)。本公開中對“一個實施方式”或者“一實施方式”的引用并不是必須指代同一實施方式;因此,這種引用指的是至少一個。本發(fā)明的至少一個實施方式致力于在將設計表示映射到硬件部件上之前將多速率數(shù)字信號系統(tǒng)轉(zhuǎn)換成單速率數(shù)字信號系統(tǒng)。單速率設計表示能夠用經(jīng)過充分研究的優(yōu)化算法來更簡單地實現(xiàn),因此其能夠比相應的多速率系統(tǒng)更容易地找到更好的調(diào)度。在一個方面中,該轉(zhuǎn)換用與時鐘值成反比的最小展開因子來展開多速率系統(tǒng)中的不同時鐘域,以便整個系統(tǒng)成為單速率。在另一實施方式中,本發(fā)明致力于在調(diào)度、折疊、重新調(diào)整時序或者映射到硬件部件之前用操作級優(yōu)化來優(yōu)化數(shù)據(jù)流表示?;诓僮骷壍碾娐穬?yōu)化與多速率系統(tǒng)的轉(zhuǎn)換相結合是特別有用的。例如,重采樣器(諸如抽取器或者插入器)的轉(zhuǎn)換會引入冗余邏輯,諸如由上采樣器導致的零輸入以及由下采樣器導致的未使用的輸出。根據(jù)本發(fā)明實施方式的操作級優(yōu)化能夠消除由單速率轉(zhuǎn)換導致的浪費的操作,從而降低手動優(yōu)化。本發(fā)明的許多方法可以用數(shù)字處理系統(tǒng)來執(zhí)行,諸如傳統(tǒng)的通用計算機系統(tǒng)。被設計或者編程來執(zhí)行僅一個功能的專用計算機也可以使用。圖2示出了可以與本發(fā)明一起使用的典型計算機系統(tǒng)的一個示例。注意,雖然圖 2示出了計算機系統(tǒng)的各種部件,但是其并不意欲表示任何特定的結構或者將這些部件進行互連的方式,因為這些細節(jié)與本發(fā)明不相關。還應當意識到,網(wǎng)絡計算機和具有更少部件或者可能更多部件的其他數(shù)據(jù)處理系統(tǒng)也可以與本發(fā)明一起使用。圖2的計算機系統(tǒng)可以例如是Sim工作站,或者運行Windows操作系統(tǒng)的個人計算機(PC),或者蘋果的Macintosh 計算機。如圖2所示,數(shù)據(jù)處理系統(tǒng)形式的計算機系統(tǒng)101包括總線102,該總線102耦合到微處理器103、R0M 107、易失性RAM 105以及非易失性存儲器106。微處理器103耦合到高速緩存存儲器104,如圖2中的示例所示。總線102將這些各種部件互連在一起,并且還將這些部件103、107、105和106與顯示控制器和顯示設備108以及外圍設備(諸如輸入/ 輸出(I/O)設備,其可以是鼠標、鍵盤、調(diào)制解調(diào)器、網(wǎng)絡接口、打印機、掃描儀、攝像機以及本領域公知的其他設備)互連在一起。典型地,輸入/輸出設備110通過輸入/輸出控制器109耦合到該系統(tǒng)。易失性RAM 105典型地被實施為動態(tài)RAM(DRAM),其需要持續(xù)的供電來刷新或者保持存儲器中的數(shù)據(jù)。非易失性存儲器106典型地是即使從該系統(tǒng)移除電源之后仍然能夠保持數(shù)據(jù)的磁硬盤驅(qū)動器或者磁光驅(qū)動器或者光驅(qū)或者DVD RAM或者其他類型的存儲器系統(tǒng)。典型地,非易失性存儲器也可以是隨機存取存儲器,雖然這里并不需要。雖然圖2顯示非易失性存儲器是直接耦合到數(shù)據(jù)處理系統(tǒng)中的其余部件的本地設備,但是應當意識到,本發(fā)明可以使用遠離該系統(tǒng)的非易失性存儲器,諸如通過諸如調(diào)制解調(diào)器或者以太網(wǎng)接口之類的網(wǎng)絡接口耦合到該數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡存儲器設備??偩€102可以包括通過本領域公知的各種橋接器、控制器和/或適配器彼此連接的一個或多個總線。在一個實施方式中,I/O控制器109包括用于控制USB外圍設備的USB (通用串行總線)適配器和 /或用于控制IEEE-1394外圍設備的IEEE-1394總線適配器。根據(jù)本文的描述顯而易見的是,本發(fā)明的各個方面可以至少部分地在軟件中得到體現(xiàn)。也就是說,這些技術可以響應于計算機系統(tǒng)或者其他數(shù)據(jù)處理系統(tǒng)中的處理器(諸如微處理器)而在該計算機系統(tǒng)或者其他數(shù)據(jù)處理系統(tǒng)中實現(xiàn),所述處理器執(zhí)行包含在存儲器(諸如ROM 107、易失性RAM 105、非易失性存儲器106、高速緩存器104或者遠程存儲設備)中的指令序列。在各種實施方式中,可以將硬連線電路與軟件指令結合使用來實施本發(fā)明。因此,所述技術并不局限于硬件電路和軟件的任何具體結合或局限于由數(shù)據(jù)處理系統(tǒng)執(zhí)行的指令的任何特定源。另外,在整個說明書中,將各種功能和操作描述為由軟件代碼執(zhí)行或?qū)е?,以簡化描述。然而,本領域技術人員應當意識到,這種表述的意思是,所述功能是由處理器(諸如微處理器10 對代碼的執(zhí)行引起的。機器可讀介質(zhì)可以用于存儲軟件和數(shù)據(jù),當由數(shù)據(jù)處理系統(tǒng)執(zhí)行所述軟件和數(shù)據(jù)時會促使所述系統(tǒng)執(zhí)行本發(fā)明的各種方法。這種可執(zhí)行的軟件和數(shù)據(jù)可以存儲在各種位置中,包括例如圖1所示的ROM 107、易失性RAM 105、非易失性存儲器106和/或高速緩存器 104。這些軟件和/或數(shù)據(jù)的一部分可以存儲在這些存儲設備中的任意設備中。因此,機器可讀介質(zhì)可以包括用于提供(即,存儲和/或傳送)機器(例如,計算機、網(wǎng)絡設備、個人數(shù)字助理、制造工具、具有一個或多個處理器組的任何設備等)可訪問形式的信息的任何機構。例如,機器可讀介質(zhì)可以包括可記錄/不可記錄媒體(例如,只讀存儲器(ROM)、隨機存取存儲器(RAM);磁盤存儲介質(zhì);光存儲介質(zhì);閃存設備等)以及電、 光、聲或其它形式的傳播信號(例如,載波、紅外信號、數(shù)字信號等)等。電路操作級的電路優(yōu)化是設計的重要部分,主要用于降低浪費的操作,從而在保留功能的同時獲得期望的時序和記憶空間。圖3A示出了示例性的功能y = AB£+紐C+匹,其中A、S、G分別表示A、B、C的補碼。該電路框圖示出了三個3輸入乘法模塊和一個3輸入加法模塊,用于提供函數(shù)y??梢栽陔娐凡僮骷墝瘮?shù)y進行優(yōu)化,從而將函數(shù)y簡化成具有兩個乘積的加法的等效函數(shù)。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ōu)化之后,同一函數(shù)y的等效電路框圖表示。該新的表示僅具有兩個2輸入乘法模塊和一個2輸入加法模塊,并且表示同一函數(shù)。該電路操作級優(yōu)化能夠在保留功能的同時提供簡化。優(yōu)選在電路框圖執(zhí)行電路操作級優(yōu)化。對于數(shù)據(jù)流圖,要將功能降低成節(jié)點,因此即使可執(zhí)行,操作級優(yōu)化也是困難的。因此,電路操作級和數(shù)據(jù)流級的優(yōu)化是兩個在很大程度上獨立且分離的操作。優(yōu)選針對數(shù)據(jù)流圖執(zhí)行數(shù)據(jù)流級優(yōu)化。數(shù)據(jù)流圖是用于基于數(shù)據(jù)流來編程信號處理器的技術,并且其應當通過增強代碼的模塊性來使編程任務簡單并允許更自然地描述算法。另外,數(shù)據(jù)流處理提供了并行硬件上的DSP應用程序的并發(fā)實施。下面概述的典型的數(shù)據(jù)流優(yōu)化包括流水線、重新調(diào)整時序、 展開以及折疊。Keshab K. Parhi于1999年在Wiley-Interscience出版社出版的“VLSI Digital Signal Processing Systems :Design and Implementation"中對數(shù)據(jù)圖技術進行了詳細描述。流水線是數(shù)據(jù)流級的操作,其中流水線的概念源自水管,即將水不斷地發(fā)送給管子而不必等待水從管中流出。流水線能夠簡化關鍵數(shù)據(jù)路徑,這能夠增加時鐘速度或者降低功耗。流水線還能夠用于并行處理中,在該并行處理中,在時鐘周期中對多個輸出進行并行計算。考慮圖4所示的數(shù)據(jù)流圖,該數(shù)據(jù)流圖包括節(jié)點A和節(jié)點B。將信號x[n]提供給節(jié)點A,從而生成輸出ζ [η],之后將輸出ζ [η]提供給節(jié)點B,從而生成輸出y [η]。在不使用流水線的情況下,在下一信號x[n+l]能夠被發(fā)送之前,信號χ [η]不得不在到達y[n]的所有路徑上進行傳播,并由節(jié)點A和節(jié)點B兩者進行處理。如圖4A所示,輸入信號x[n]與中間信號z[n]之間的延遲是節(jié)點A的處理時間。假設在從節(jié)點A到節(jié)點B的信號路徑上沒有延遲,則信號ζ [η]在從節(jié)點A輸出之后立即出現(xiàn)在節(jié)點B的輸入處。類似地,信號ζ [η] 與輸出信號y[n]之間的延遲時間是節(jié)點B的處理時間。因此,在節(jié)點A和B的處理時間之后出現(xiàn)了輸出信號y[n]。在不使用流水線的情況下,下一信號x[n+l]在到達節(jié)點A之前不得不等待,直到信號y[n]出現(xiàn)為止。換言之,信號z[n]是節(jié)點B的輸入,并且在節(jié)點B完成處理之前不能被改變。信號x[n+l]能夠被最早地發(fā)送給節(jié)點A的時刻是節(jié)點B完成處理的時刻,例如, 在輸出信號y[n]出現(xiàn)的時刻。從圖4A中能夠看出,數(shù)據(jù)流圖的周期時間是2,這意味著每個輸入信號χ需要節(jié)點A和節(jié)點B兩者的處理時間。圖4B示出了應用到圖4A中的數(shù)據(jù)流圖的流水線的概念。在節(jié)點A和節(jié)點B之間的數(shù)據(jù)路徑上引入了延遲D。延遲D可以是順序元件,諸如寄存器、存儲器單元、觸發(fā)器等。 例如,寄存器對輸入信號進行采樣并保持(存儲),以便能夠?qū)⒃撦斎胄盘柵c電路的時鐘同步輸出。另外,應當理解的是,數(shù)據(jù)流圖邊緣上的一個延遲表示典型因寄存器存在于相應路徑上引入的等待時間的單位。然而,該等待時間的單位也可以通過其他方式來實現(xiàn),諸如對于讀取存儲器單元的不同的控制信號。在添加了延遲D的情況下,信號x[n]在節(jié)點A的處理時間之后通過節(jié)點A成為信號21[11]。信號Zl[n]在被輸出為信號^[11]之前被延遲元件D延遲。在通過節(jié)點B處理之后,信號4[11]成為輸出信號y[n]。如圖4B所示,輸入信號χ [η]與輸出信號y[n]之間的時間因延遲時間而被延長了。然而,只要節(jié)點A完成了處理,下一信號x[n+l]就能夠被立即發(fā)送,而不必等待其通過節(jié)點B進行傳播。節(jié)點B的輸入是τ2 [η],該輸入不受節(jié)點A的操作的影響,而是僅受到時鐘的控制將信號穿過延遲元件D。因此,圖4Β的流水線電路的周期時間是1,這意味著每個輸入信號χ要求節(jié)點A或者節(jié)點B的處理時間,無論哪一個都是更長的。流水線優(yōu)化的折中是初始輸出的延遲時間,這意味著通過采用延遲元件D,第一輸出信號y將被延遲元件D延遲了額外的延遲時間??商鎿Q地,流水線概念可以用并行處理來實施,因為這兩種技術以不同的方式采用了計算中可用的并發(fā)性。流水線系統(tǒng)以交錯的方式對設計進行處理,而并行系統(tǒng)通過使用復制硬件來對設計進行處理。流水線概念可以被推廣到數(shù)據(jù)流圖。該技術稱為重新調(diào)整時序,其也是一種數(shù)據(jù)流級的操作,并且包括改變設計中的延遲元件的位置的變換,而不影響其輸入和輸出特性。重新調(diào)整時序算法已經(jīng)被用于優(yōu)化電路設計。典型地,同步電路僅在信號沿著組合路徑從一個寄存器傳輸?shù)搅硪患拇嫫鲿r才能夠恰當?shù)毓ぷ?,其中,組合路徑是在指定數(shù)量的時鐘周期中(例如,在一個時鐘周期中)不包含寄存器(例如,存儲器單元、觸發(fā)器、延遲元件等)的路徑。因此,這些路徑上寄存器之間的最大信號延遲(例如,由于路徑上組合計算元件的計算時間以及線延遲)確定了電路能夠恰當工作的最小時鐘周期。可以將寄存器放置于或者重新布置于電路的路徑上,以降低該路徑上的最大信號延遲并降低電路的時鐘周期。通常的重新調(diào)整時序算法可以用于基于電路的時序模型來對電路中的某些寄存器進行重新分布,以最小化時鐘周期。典型地,可以通過將構成電路的組合計算單元、延遲(例如,因寄存器導致)以及互連的時序模型組成整體來獲得電路的時序模型。互連延遲很難進行建模,因此通??梢院雎?。通常通過將模塊的組合計算單元的時序模型聚集起來,來生成電路系統(tǒng)(其包括一個或多個電路模塊)的典型時序模型。已經(jīng)基于數(shù)據(jù)流圖研究并形成了針對單速率重新調(diào)整時序的算法,例如Keshab K. Parhi 于 1999 年在 Wiley-Interscience 出版社出版的 “VLSI Digital Signal Processing Systems :Design and Implementation,,一書中的第 91—118 頁。例如,重新調(diào)整時序算法包括割集重新調(diào)整時序以及流水線。另外,還存在著使用數(shù)據(jù)流圖的、針對時鐘周期最小化或者寄存器最小化的重新調(diào)整時序的算法。數(shù)據(jù)流圖由節(jié)點和邊緣構成,其中節(jié)點表示組合計算單元,邊緣則將節(jié)點互連。延遲(例如,寄存器)被表示為邊緣上的權重。 每個節(jié)點都可以具有與其相關聯(lián)的執(zhí)行時間。例如,圖5A-5C示出了用于構建數(shù)據(jù)流圖來重新調(diào)整時序的現(xiàn)有技術。圖5A示出了電路框圖,圖5B示出了等效數(shù)據(jù)流圖。圖5A中的組合計算單元(例如,加法器205、乘法器207和209)被表示為計算節(jié)點(例如,圖5B中的節(jié)點225、227和229)。組合計算單元處的執(zhí)行時間由節(jié)點的計算時間表示。例如,節(jié)點225具有2ns的計算時間,這是由加法器 205要求的;并且每個節(jié)點227和2 具有4ns的計算時間,這是由乘法器(例如,209或者 207)要求的。邊緣231表示乘法器207與加法器205之間的連接。邊緣231具有權重1, 表示寄存器217(或者因寄存器217導致的一個時鐘周期等待時間)。類似地,邊緣233具有一個表示寄存器215的延遲。邊緣235表示乘法器209與207之間的連接;并且不存在與邊緣235相關聯(lián)的延遲。數(shù)據(jù)流圖中的關鍵路徑是包含零延遲邊緣的所有路徑(組合路徑)中具有最長計算時間的路徑。例如,在圖5B中,從節(jié)點2 到節(jié)點227的路徑包含具有零延遲的邊緣 235 ;以及從節(jié)點2 到節(jié)點227的路徑花費了最長的計算時間(例如,8ns,其中4ns是用于節(jié)點2 的,4ns是用于節(jié)點227的)。因此,圖2中的電路的最小時鐘周期是8ns。重新調(diào)整時序的過程將包括改變延遲元件(例如,數(shù)據(jù)流圖5B中的邊緣231和 233中的延遲D)的位置。圖5C示出了重新調(diào)整時序后的數(shù)據(jù)流圖,其中,邊緣233上的延遲可被移動到邊緣235上。關鍵路徑成為節(jié)點225與節(jié)點2 之間的路徑,其花費了 6ns的計算時間。因此,將延遲從邊緣233移動到邊緣235允許修改后的(重新調(diào)整時序后的)數(shù)據(jù)流圖以降低后的6ns的時鐘周期進行操作。在數(shù)據(jù)流級的重新調(diào)整時序過程優(yōu)化之后, 可以通過將加法器205與乘法器209之間的寄存器215移動到乘法器209與207之間來將修改后的數(shù)據(jù)流圖實施到硬件上??梢岳缤ㄟ^應用針對時鐘周期最小化的公知的重新調(diào)整時序算法來最大化輸出設計的時鐘速度。在數(shù)據(jù)流圖上形成這些重新調(diào)整時序算法。通常包含寄存器和存儲器的硬件模塊并不直接匹配為單個節(jié)點。因此,用節(jié)點和邊緣的組合來將電路圖轉(zhuǎn)換成數(shù)據(jù)流圖,以便充分表示它們的時序行為。例如,將電路設計分解成構成模塊的實際寄存器以及組合計算元件并將節(jié)點分配給每個組合計算元件。典型地,將設計中的電路模塊轉(zhuǎn)換成節(jié)點和邊緣集,其對應于模塊中的組合單元以及將組合單元連接在一起的網(wǎng)。換言之,通過將構成硬件模塊的組合計算單元、延遲以及互連的時序模型組成整體來典型地構建每個硬件模塊的時序模型。在轉(zhuǎn)換特定硬件模塊時使用的節(jié)點和邊緣集的聚集實際上是該硬件模塊的時序模型(數(shù)據(jù)流圖)??梢酝ㄟ^使用來自數(shù)據(jù)流圖模型的詳細實現(xiàn)方式的數(shù)據(jù)來構建硬件模塊的時序模型。通過將增加數(shù)量的寄存器提供給該模塊、重新調(diào)整(或者優(yōu)化)該硬件模塊的時序以及在添加新的寄存器時檢測該模塊中的關鍵路徑來確定該模塊的最小時鐘周期來獲得該數(shù)據(jù)。重新調(diào)整時序算法可以用于改善并行硬件上的時序。圖6A示出了用于二階遞歸數(shù)字濾波器的數(shù)據(jù)流圖。節(jié)點F和G表示加法器,節(jié)點A、B、C和E表示乘法器,塊D表示邊緣上的延遲。從該數(shù)據(jù)流圖可以看出,節(jié)點不能以任意順序來運行。圖6B中示出了節(jié)點之間的優(yōu)先權,其中,節(jié)點A和B要在節(jié)點F之前完成,節(jié)點C、E和F要在節(jié)點G之前完成。 因此,節(jié)點A和B首先運行,其次節(jié)點F運行,最后節(jié)點G運行。節(jié)點C和E可以被分布在第一次序或者第二次序中。對于圖6C中所示的3處理器調(diào)度,周期時間為3。圖7A示出了在計算并實施了重新調(diào)整時序算法之后的同一數(shù)據(jù)流圖,其中,在到節(jié)點G的邊緣中添加了 3個延遲。通過采用重新調(diào)整時序后的圖,如圖7B所示,節(jié)點之間的優(yōu)先權改變了。僅存在著兩個順序,其中,節(jié)點A、B、C、E和F處于一個次序,節(jié)點G處于另一次序。對于調(diào)度和映射到3處理器硬件而言,如圖7C所示,周期時間改善為2。數(shù)據(jù)流圖的另一變換是展開,其中,創(chuàng)建新的程序來描述原始程序的不止一個迭代。例如,通過因子2來展開數(shù)據(jù)圖描述了數(shù)據(jù)圖的2個連續(xù)的迭代。展開能夠顯示隱藏的并發(fā),以便能夠?qū)⒃O計調(diào)度到更小的迭代周期,以增加實現(xiàn)的吞吐量。展開還能夠用于根據(jù)串行處理架構來設計并行處理架構。例如,考慮DSP程序y [n] = ay [η_2]+χ [η],其數(shù)據(jù)流圖如圖8Α所示??紤]到樣本能夠無限期地進行運行,因此η可以從零變化到無窮大。如果索引η用業(yè)和業(yè)+1替換,則上述程序可以用下面的2個連續(xù)迭代的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的原始程序而言,它們是相同的。針對展開變換的數(shù)據(jù)流圖表示如圖8Β所
7J\ ο展開變換可以用于將多速率系統(tǒng)展開成單速率系統(tǒng)。圖9A示出了多速率系統(tǒng)的數(shù)據(jù)流圖表示,其包括節(jié)點A和B。與節(jié)點相關聯(lián)的數(shù)字表示那個節(jié)點的輸入和輸出樣本。 例如,節(jié)點A采用一個輸入數(shù)據(jù)并生成兩個輸出數(shù)據(jù),而節(jié)點B采用三個輸入數(shù)據(jù)并生成兩個輸出數(shù)據(jù),如圖9B所示。圖9C示出了用于將圖9A的多速率數(shù)據(jù)圖轉(zhuǎn)換成單速率數(shù)據(jù)圖的展開變換,其中節(jié)點被復制并且節(jié)點A的輸出與節(jié)點B的輸入相匹配。另一優(yōu)化變換是折疊,其中多個操作被時分多路傳輸?shù)絾喂δ軉卧?。通過僅在一個功能單元中執(zhí)行多個操作,可以降低功能單元的數(shù)量,從而降低芯片面積。芯片面積降低的折中是頻率的增加,其中時分多路傳輸?shù)墓δ軉卧坏貌灰远鄠€時鐘頻率值進行運行??梢葬槍螘r鐘或者多時鐘來實施折疊算法。由于折疊改變了功能單元的時鐘頻率, 所以多速率系統(tǒng)能夠用于比單速率系統(tǒng)進一步降低芯片面積。圖10示出了折疊變換概念,其中三個相同的功能單元(由同一節(jié)點Z表示)運行在不同的輸入上并生成不同的輸出。折疊變換將功能單元的數(shù)量降低為1,并引入了針對其余功能單元的輸入和輸出的多個多路復用器。折疊因子是3,意味著將三個功能單元折疊成1個。用于剩余功能單元的時鐘頻率也類似地被同一折疊因子所增加,其中通過多路復用器的控制信號來對輸入和輸出進行時分多路傳輸。在一個實施方式中,可以將本發(fā)明的優(yōu)化應用到電路設計表示,優(yōu)選應用到多速率電路中。在一個方面中,例如,本發(fā)明的優(yōu)化將電路操作級優(yōu)化應用到數(shù)據(jù)流圖,以降低浪費的操作和從數(shù)據(jù)圖變換產(chǎn)生的冗余電路。例如,重新采樣操作能夠引入冗余電路,例如下采樣器(或者抽取器)可以具有終止的輸出,或者上采樣器(或插入器)可以具有零輸入,可以為了更好的電路、時序或者芯片面積來對冗余電路進行優(yōu)化。圖IlA示出了具有時間索引η的示例性樣本正弦波輸入序列。圖IlB示出了因子為3的下采樣器,其中每3個樣本輸入有兩個樣本被終止。輸出下采樣器的正弦頻率被降低了 3倍。就數(shù)據(jù)流圖表示而言,圖IlC示出了因子為3的下采樣器的表示。索引η由索引 3k、3k+l和3k+2替換。僅與輸入χ[3k]相對應的輸出y[3k]被提供給下一級,而另兩個輸入x[3k+l]和x[3k+2]被終止并且根本沒有被使用。由于被終止的輸入x[3k+l]和x[3k+2] 沒有被使用,所以根據(jù)本發(fā)明的實施方式,它們能夠被優(yōu)化掉。圖12A示出了具有時間索引η的示例性樣本正弦波輸入序列。圖12Β示出了因子為3的上采樣器,其中對于每個樣本輸入,添加兩個樣本。輸出上采樣器的正弦頻率被增加了 3倍。就數(shù)據(jù)流圖表示而言,圖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]是零輸入,所以能夠根據(jù)本發(fā)明的實施方式對它們進行優(yōu)化。下采樣器還能夠遭受混疊,因為原始信號中存在的任何頻率都將被映射到被抽取后的信號頻譜中的某個位置。上采樣器能夠引入高頻鏡像,該高頻鏡像源自連續(xù)樣本之間的快速變化。因此,下采樣器之前通常都具有抗混疊濾波器,而上采樣器之后通常都跟隨有抗鏡像濾波器。其他技術還可以包括多相算法。圖13-17示出了根據(jù)本發(fā)明在電路操作級對數(shù)據(jù)流圖進行優(yōu)化的示例。圖13示出了速率改變器或者重采樣器電路,其包括因子為3的上采樣器、濾波器以及因子為2的下采樣器。圖14A示出了圖13中的速率改變器電路的電路框圖,其使用3抽頭有限脈沖響應 (FIR)濾波器。該電路包括因子為3的上采樣器、因子為2的下采樣器、延遲ζ—1、加法器以及系數(shù)為I^b1和Id2的乘法器。圖14B示出了同一速率改變器電路的多速率數(shù)據(jù)流圖表示。 加法器被轉(zhuǎn)換成節(jié)點A1和A2,乘法器被轉(zhuǎn)換成節(jié)點Mp M2和M3。因子為3的上采樣器被轉(zhuǎn)換成具有一個輸入和3個輸出的節(jié)點B,如節(jié)點B的附近所示。因子為2的下采樣器被轉(zhuǎn)換成具有2個輸入和1個輸出的節(jié)點C,如節(jié)點C的附近所示。節(jié)點A和節(jié)點M各自消耗1 個輸入并生成1個輸出,如每個節(jié)點的附近所示。從節(jié)點B到節(jié)點M2的邊緣以及從節(jié)點B 到節(jié)點M3的邊緣各自都具有延遲D。該數(shù)據(jù)流圖可以被認為是多速率系統(tǒng),其中不同的采樣速率用于該設計的不同部分。本發(fā)明意識到直接在數(shù)據(jù)流級對圖14B中的數(shù)據(jù)流圖進行優(yōu)化或許會丟失在電路操作級對電路的簡化。另外,對圖14B中所示的多速率數(shù)據(jù)流圖進行優(yōu)化會很復雜,并且找到用于映射到可編程硬件設備的最佳調(diào)度的幾率低。因此,在一個實施方式中,本發(fā)明在電路操作級執(zhí)行對數(shù)據(jù)流圖的優(yōu)化。在另一實施方式中,本發(fā)明在優(yōu)化之前在數(shù)據(jù)流級或者在電路操作級將多速率數(shù)據(jù)流圖轉(zhuǎn)換(例如,展開)成單速率數(shù)據(jù)流圖。首先將圖14B所示的數(shù)據(jù)流圖轉(zhuǎn)換成圖14A所示的框圖。采用沒有包含在數(shù)據(jù)流圖中的加法電路關聯(lián)來講節(jié)點A和B轉(zhuǎn)換成加法器。數(shù)據(jù)路徑中的延遲D也由延遲寄存器 ζ"1來替換,該延遲寄存器廣由時鐘信號提供時序。通過采用增3和減2的速率改變器,最低的公倍數(shù)將是6。通過用與時鐘成反比的因子來展開每個時鐘域,可將多速率系統(tǒng)轉(zhuǎn)換成單速率系統(tǒng)。例如,增3上采樣器丨3用因子6/3 = 2來展開,減2下采樣器丨2用因子6/2 = 3來展開。上采樣器還進一步被提供有零輸入,并且一些下采樣器的輸出被終止。單速率展開系統(tǒng)如圖15所示。將操作級優(yōu)化應用到圖15的電路(例如,通過消除未使用的輸出端口并通過后向傳播來優(yōu)化掉相關塊)得到了圖16的電路。進一步通過采用零源傳播來消除零輸入以及從圖16中消除增益和加法器來進行優(yōu)化,得到了圖17的電路。最后,通過進一步消除圖 17A中的僅具有一個輸入的加法器來得到圖17B的電路。圖17B的數(shù)據(jù)流圖表示如圖17C 所示。從圖17C中的優(yōu)化后的電路可以看出,可以應用使用數(shù)據(jù)流圖的優(yōu)化,諸如調(diào)度、 折疊、重新調(diào)整時序以及到硬件的映射。由于該電路是通過使用本發(fā)明的展開算法對多速率系統(tǒng)進行轉(zhuǎn)換得到的單速率系統(tǒng),所以能夠使用采用單速率系統(tǒng)的優(yōu)化。通過在電路操作級對數(shù)據(jù)流圖表示進行優(yōu)化,以及通過將圖14B的多速率數(shù)據(jù)流圖表示展開成單速率數(shù)據(jù)流圖表示,該方法能夠得到圖17C的結果。
圖18示出了根據(jù)本發(fā)明實施方式的用于設計電路模塊的方法。該電路模塊由數(shù)據(jù)流圖表示或者實現(xiàn)方式來表示,例如,由節(jié)點來表示功能單元,由邊緣來表示功能單元之間的數(shù)據(jù)路徑??商鎿Q地,有時可以在數(shù)據(jù)流圖表示中表示功能單元。數(shù)據(jù)路徑之間由時鐘信號控制的寄存器由延遲值(諸如等待時間單位)來表示。通過采用表示電路模塊的數(shù)據(jù)流圖,操作1001在電路操作級對該數(shù)據(jù)流圖表示的一部分進行優(yōu)化,例如通過轉(zhuǎn)換成具有電路優(yōu)化后的特性的功能等效設計。在電路操作級的優(yōu)化能夠通過在保留功能的同時對電路設計進行修改來生成電路優(yōu)化后的數(shù)據(jù)流圖表示。優(yōu)選執(zhí)行該修改來獲得更好的時序、 更好的芯片面積、更低的功率、更少的硬件部件或者獲得期望的目的。例如,使用電路操作級的優(yōu)化可以包括使用邏輯等效電路或計算的優(yōu)化。該優(yōu)化能夠在重新采樣器、抽取器或者插入器上執(zhí)行,優(yōu)選在展開抽取器或者插入器之后執(zhí)行。在展開變換之后,下采樣器(或者抽取器)能夠具有未使用的輸出,這能夠呈現(xiàn)浪費的操作或者冗余電路。這些未使用的輸出可以通過電路操作級優(yōu)化來進行優(yōu)化。而且,上采樣器(或者插入器)可以具有零輸入,這可以通過電路操作級優(yōu)化來進行優(yōu)化。在一個方面中,當電路的數(shù)據(jù)流圖表示的部分包括表示電路功能的節(jié)點時,該方法還可以包括在在電路操作級對該部分數(shù)據(jù)流圖表示進行優(yōu)化之前將該節(jié)點轉(zhuǎn)換成電路功能。另外,該方法還可以包括將數(shù)據(jù)流圖表示的任意邊緣轉(zhuǎn)換成數(shù)據(jù)路徑,并在具有延遲特性的數(shù)據(jù)路徑中插入延遲寄存器。在通過操作級優(yōu)化進行優(yōu)化之后,可以在數(shù)據(jù)流級對數(shù)據(jù)流圖表示進行優(yōu)化,例如,通過使用線性編程技術(諸如數(shù)據(jù)流算法),如操作1002所示。使用數(shù)據(jù)流算法的優(yōu)化可以包括用于獲得期望目的(諸如時鐘速率)的折疊、展開、調(diào)度以及重新調(diào)整時序。數(shù)據(jù)流圖表示優(yōu)選包括節(jié)點和具有延遲的邊緣,因此該方法還可以包括在在數(shù)據(jù)流級進行優(yōu)化之前將功能單元轉(zhuǎn)換成節(jié)點以及將數(shù)據(jù)路徑轉(zhuǎn)換成邊緣。在一個實施方式中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化出現(xiàn)在在電路操作級對電路的數(shù)據(jù)流圖表示進行優(yōu)化之后。在數(shù)據(jù)流優(yōu)化之后,在操作1003中,將該設計映射到硬件部件。可以在單個處理器或者在并行處理器執(zhí)行該優(yōu)化和映射。在一個實施方式中,對優(yōu)化后的數(shù)據(jù)流圖表示進行映射包括將優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備;將優(yōu)化后的數(shù)據(jù)流圖實施到電路上;或者將優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器以及并行處理器中的其中之一。圖19示出了根據(jù)本發(fā)明實施方式的優(yōu)化策略。該優(yōu)化策略在電路操作級對上采樣器的零輸入進行優(yōu)化,例如,用于消除由插入器導致的零收入(操作1011)。如果不修改的話零輸入會呈現(xiàn)浪費的操作。另外,數(shù)據(jù)流圖中的零輸入或許不會被識別為冗余電路或者浪費的操作,因此本發(fā)明的設計方法對數(shù)據(jù)流圖表示(優(yōu)選對由上采樣器導致的零輸入)執(zhí)行電路操作級優(yōu)化,以改善電路操作。操作1012通過采用數(shù)據(jù)流算法在數(shù)據(jù)流級繼續(xù)對部分數(shù)據(jù)流圖表示進行優(yōu)化,并映射到硬件設備(操作1013)。在一個實施方式中,在數(shù)據(jù)流級的優(yōu)化出現(xiàn)在在電路操作級的優(yōu)化之后。在電路操作級對上采樣器電路進行優(yōu)化能夠產(chǎn)生電路優(yōu)化后的數(shù)據(jù)流圖表示(例如,通過消除與上采樣器電路的零輸入相關的冗余操作),并且該電路優(yōu)化后的數(shù)據(jù)流圖表示之后經(jīng)歷數(shù)據(jù)流級的優(yōu)化來產(chǎn)生優(yōu)化后的數(shù)據(jù)流圖。圖20示出了根據(jù)本發(fā)明實施方式的另一優(yōu)化策略。該優(yōu)化策略使用電路操作級來對下采樣器的未使用輸出(例如,由抽取器導致)進行優(yōu)化(操作1016)。類似于零輸入, 如果不修改的話未使用的輸出能夠呈現(xiàn)浪費的操作。而且,數(shù)據(jù)流圖中的未使用輸出或許不會被識別為冗余電路或者浪費的操作,因此本發(fā)明的設計方法對數(shù)據(jù)流圖表示(優(yōu)選對由下采樣器導致的未使用輸出)執(zhí)行操作級優(yōu)化,以改善電路操作。操作1017采用數(shù)據(jù)流算法來繼續(xù)執(zhí)行操作級優(yōu)化,并映射到硬件(操作1018)。在一個實施方式中,在數(shù)據(jù)流級的優(yōu)化出現(xiàn)在在電路操作級的優(yōu)化之后。在電路操作級對下采樣器進行優(yōu)化能夠產(chǎn)生電路優(yōu)化后的數(shù)據(jù)流圖表示(例如,通過消除與下采樣器電路的未使用輸出相關的冗余操作), 并且該電路優(yōu)化后的數(shù)據(jù)流圖表示之后經(jīng)歷數(shù)據(jù)流級的優(yōu)化來產(chǎn)生優(yōu)化后的數(shù)據(jù)流圖。圖21示出了根據(jù)本發(fā)明另一實施方式的用于設計電路模塊的方法;從電路設計、 設計的電路圖開始或者從設計的數(shù)據(jù)流圖表示開始,操作1021將部分數(shù)據(jù)流圖表示轉(zhuǎn)換成電路示意圖或者框圖。該轉(zhuǎn)換可以包括通過采用針對延遲邊緣而插入的延遲寄存器來將邊緣轉(zhuǎn)換成數(shù)據(jù)流路徑。該轉(zhuǎn)換還可以將節(jié)點轉(zhuǎn)換成功能單元,優(yōu)選在附加的外部信息的幫助下進行,因為典型數(shù)據(jù)流圖不攜帶功能信息。在將數(shù)據(jù)圖部分轉(zhuǎn)換成電路示意圖的情況下,可以執(zhí)行對這些部分的電路操作級優(yōu)化(操作102 。這些優(yōu)化可以消除浪費和冗余,并且能夠從電路操作的角度來改善電路設計,在數(shù)據(jù)圖表示的情況下很難實現(xiàn)這樣的改善。在一個方面中,對上采樣器的零輸入或者下采樣器的未使用輸出執(zhí)行這些優(yōu)化。在電路操作級優(yōu)化(例如,在電路操作級的優(yōu)化)之后,可以在操作1023中將電路示意圖轉(zhuǎn)換回數(shù)據(jù)流表示。向數(shù)據(jù)流圖的轉(zhuǎn)換典型地是向電路示意圖的轉(zhuǎn)換的反向轉(zhuǎn)換,其中在存在或者不存在延遲的情況下,用節(jié)點來替換功能單元并用邊緣來替換數(shù)據(jù)路徑。操作10 繼續(xù)用數(shù)據(jù)流算法來執(zhí)行操作級優(yōu)化(例如在數(shù)據(jù)流級優(yōu)化數(shù)據(jù)流圖表示),并映射到硬件(操作102 ??梢园ㄔ搩?yōu)化的其他方面,例如在電路操作級的優(yōu)化之后出現(xiàn)在數(shù)據(jù)流級的優(yōu)化,在數(shù)據(jù)流級的優(yōu)化可以包括折疊、展開、重新調(diào)整時序或者調(diào)度,以及映射到硬件可以包括映射到可編程硬件設備、實施優(yōu)化后的數(shù)據(jù)流圖表示或者調(diào)度到單一處理器或多處理器。圖22示出了根據(jù)本發(fā)明實施方式的用于設計電路模塊的優(yōu)選方法。操作1031將部分多速率系統(tǒng)表示轉(zhuǎn)換成單速率系統(tǒng)表示。該表示可以是數(shù)據(jù)流圖表示。該多速率表示可以包括采用不同頻率、不同時鐘域的實現(xiàn)方式以及具有不同輸入/輸出樣本的功能節(jié)點。多速率表示還可以包括重新采樣器、上采樣器或者下采樣器。在轉(zhuǎn)換到單速率表示之后,操作1032在電路操作級對轉(zhuǎn)換后的單速率表示進行優(yōu)化。該電路操作級優(yōu)化可以包括將數(shù)據(jù)流圖表示轉(zhuǎn)換成電路示意圖表示,以使電路優(yōu)化簡單。重新轉(zhuǎn)換到數(shù)據(jù)流圖表示也可以在電路操作級優(yōu)化之后實施。操作1034在數(shù)據(jù)流級繼續(xù)執(zhí)行優(yōu)化,并之后映射到硬件 (操作1035)。與使用與單速率表示相關的更簡單的算法一起,采用單速率表示的數(shù)據(jù)流優(yōu)化可以更為簡單,因此能夠提供更好的機會找到該設計的到單一處理器或者到多個并行處理器的最佳調(diào)度。圖23示出了針對設計優(yōu)化的優(yōu)選實施方式。操作1041通過使用與時鐘值成反比的最小展開因子來將多速率系統(tǒng)表示(諸如數(shù)據(jù)流圖)展開成單速率表示??梢詮牟煌瑫r鐘域的時鐘值來計算要被用作公因子的最小公倍數(shù)因子。最小展開因子可以是被每個時鐘域的時鐘值相除的最小公倍數(shù)因子。例如,2到3重新采樣器系統(tǒng)可以包括因子為3的上采樣器和因子為2的下采樣器。公因子可以是6,因此針對輸入的因子為3的采樣器的展開因子可以被設置為2,針對輸出的因子為2的下采樣器的展開因子可以被設置為3,并且針對重新采樣器邏輯的展開因子可以被設置為6。在通過展開因子進行單速率轉(zhuǎn)換之后,操作1042之后在電路操作級對轉(zhuǎn)換后的單速率表示進行優(yōu)化,以產(chǎn)生數(shù)據(jù)流圖。該優(yōu)化可以包括使用邏輯等效進行優(yōu)化、優(yōu)化掉由上采樣器導致的零輸入以及優(yōu)化掉由下采樣器導致的未使用端口。操作1044在數(shù)據(jù)流級繼續(xù)執(zhí)行優(yōu)化,并之后映射到硬件(操作1045)。圖M示出了針對設計優(yōu)化的優(yōu)選實施方式。操作1051將數(shù)據(jù)流圖表示的速率改變器部分展開成單速率數(shù)據(jù)流圖表示。在通過展開執(zhí)行單速率轉(zhuǎn)換之后,操作1052在電路操作級優(yōu)化掉上采樣器的零輸入及其相關電路。操作1053之后在電路操作級優(yōu)化掉下采樣器的未使用輸出及其相關電路。操作IOM在數(shù)據(jù)流級繼續(xù)執(zhí)行優(yōu)化,并之后映射到硬件 (操作 1055)。在前面的描述中,已經(jīng)參考本發(fā)明的具體示例性實施方式描述了本發(fā)明。顯然,可以在不背離所附權利要求書中闡述的本發(fā)明的更寬的精神和范圍的情況下對本發(fā)明做出各種修改。因此,應當認為,本說明書和附圖是說明性的而非限制性的。
權利要求
1.一種用于設計電路的方法,該方法包括在電路操作級對所述電路的部分數(shù)據(jù)流圖表示進行優(yōu)化以生成數(shù)據(jù)流圖;以及在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化以生成優(yōu)化后的數(shù)據(jù)流圖。
2.根據(jù)權利要求1所述的方法,其中,所述在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化在所述在電路操作級對所述電路的數(shù)據(jù)流圖表示進行優(yōu)化之后發(fā)生。
3.根據(jù)權利要求1所述的方法,其中,所述電路的部分所述數(shù)據(jù)流圖表示包括表示電路功能的節(jié)點,并且該方法還包括在電路操作級對所述部分數(shù)據(jù)流圖表示進行優(yōu)化之前,將所述節(jié)點轉(zhuǎn)換成所述電路功能。
4.根據(jù)權利要求1所述的方法,其中,在電路操作級進行優(yōu)化包括使用邏輯等效電路進行優(yōu)化。
5.根據(jù)權利要求1所述的方法,其中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化包括下述各項中的至少一者折疊部分所述數(shù)據(jù)流圖、展開部分所述數(shù)據(jù)流圖、重新調(diào)整部分所述數(shù)據(jù)流圖的時序、以及找到最佳調(diào)度算法。
6.根據(jù)權利要求1所述的方法,該方法還包括下述步驟中的一個步驟 將所述優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備;將所述優(yōu)化后的數(shù)據(jù)流圖實施到電路;以及將所述優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器、以及并行處理器中的一者。
7.一種包含可執(zhí)行計算機程序指令的機器可讀介質(zhì),當所述可執(zhí)行計算機程序指令由數(shù)字處理系統(tǒng)執(zhí)行時促使所述系統(tǒng)執(zhí)行用于設計電路的方法,該方法包括在電路操作級對所述電路的部分數(shù)據(jù)流圖表示進行優(yōu)化以生成數(shù)據(jù)流圖;以及在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化以生成優(yōu)化后的數(shù)據(jù)流圖。
8.根據(jù)權利要求7所述的介質(zhì),其中,所述在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化在所述在電路操作級對所述電路的數(shù)據(jù)流圖表示進行優(yōu)化之后發(fā)生。
9.根據(jù)權利要求7所述的介質(zhì),其中,所述電路的部分所述數(shù)據(jù)流圖表示包括表示電路功能的節(jié)點,并且所述方法還包括在電路操作級對所述部分數(shù)據(jù)流圖表示進行優(yōu)化之前,將所述節(jié)點轉(zhuǎn)換成所述電路功能。
10.根據(jù)權利要求7所述的介質(zhì),其中,在電路操作級進行優(yōu)化包括使用邏輯等效電路進行優(yōu)化。
11.根據(jù)權利要求7所述的介質(zhì),其中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化包括下述各項中的至少一者折疊部分所述數(shù)據(jù)流圖、展開部分所述數(shù)據(jù)流圖、重新調(diào)整部分所述數(shù)據(jù)流圖的時序、以及找到最佳調(diào)度算法。
12.根據(jù)權利要求7所述的介質(zhì),其中所述方法還包括下述步驟中的一個步驟 將所述優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備;將所述優(yōu)化后的數(shù)據(jù)流圖實施到電路;以及將所述優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器、以及并行處理器中的一者。
13.一種用于設計電路的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)包括用于在電路操作級對所述電路的部分數(shù)據(jù)流圖表示進行優(yōu)化以生成數(shù)據(jù)流圖的裝置;以及用于在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化以生成優(yōu)化后的數(shù)據(jù)流圖的裝置。
14.根據(jù)權利要求13所述的系統(tǒng),其中,所述在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化在所述在電路操作級對所述電路的數(shù)據(jù)流圖表示進行優(yōu)化之后發(fā)生。
15.根據(jù)權利要求13所述的系統(tǒng),其中,所述電路的部分所述數(shù)據(jù)流圖表示包括表示電路功能的節(jié)點,并且所述方法還包括在電路操作級對所述部分數(shù)據(jù)流圖表示進行優(yōu)化之前,將所述節(jié)點轉(zhuǎn)換成所述電路功能。
16.根據(jù)權利要求13所述的系統(tǒng),其中,在電路操作級進行優(yōu)化包括使用邏輯等效電路進行優(yōu)化。
17.根據(jù)權利要求13所述的系統(tǒng),其中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化包括下述各項中的至少一者折疊部分所述數(shù)據(jù)流圖、展開部分所述數(shù)據(jù)流圖、重新調(diào)整部分所述數(shù)據(jù)流圖的時序、以及找到最佳調(diào)度算法。
18.根據(jù)權利要求13所述的系統(tǒng),該系統(tǒng)還包括下述各項中的一者 用于將所述優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備的裝置; 用于將所述優(yōu)化后的數(shù)據(jù)流圖實施到電路的裝置;以及用于將所述優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器、以及并行處理器中的一者的裝置。
19.一種用于設計電路的方法,該方法包括將所述電路的多速率數(shù)據(jù)流圖表示轉(zhuǎn)換成單速率數(shù)據(jù)流圖表示; 在電路操作級對部分所述單速率數(shù)據(jù)流圖表示進行優(yōu)化以生成數(shù)據(jù)流圖;以及在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化以生成優(yōu)化后的數(shù)據(jù)流圖。
20.根據(jù)權利要求19所述的方法,其中,將多速率數(shù)據(jù)流圖轉(zhuǎn)換成單速率數(shù)據(jù)流圖包括展開所述多速率數(shù)據(jù)流圖。
21.根據(jù)權利要求20所述的方法,其中,展開所述多速率數(shù)據(jù)流圖包括用與時鐘成反比的展開因子來展開所述多速率數(shù)據(jù)流圖中的時鐘域。
22.根據(jù)權利要求19所述的方法,其中,所述電路的部分所述單速率數(shù)據(jù)流圖表示包括表示電路功能的節(jié)點,并且其中在電路操作級對所述單速率數(shù)據(jù)流圖表示進行優(yōu)化包括在電路操作級進行優(yōu)化之前,首先將所述節(jié)點轉(zhuǎn)換成所述電路功能。
23.根據(jù)權利要求19所述的方法,其中,在電路操作級進行優(yōu)化包括使用邏輯等效電路進行優(yōu)化。
24.根據(jù)權利要求19所述的方法,其中,所述電路包括樣本速率改變器部件,并且其中由電路操作級進行優(yōu)化包括對由所述樣本速率改變器部件導致的零輸入進行優(yōu)化以及對由所述樣本速率改變器部件導致的未使用輸出進行優(yōu)化中的一者。
25.根據(jù)權利要求19所述的方法,其中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化包括下述各項中的至少一者折疊部分所述數(shù)據(jù)流圖、展開部分所述數(shù)據(jù)流圖、重新調(diào)整部分所述數(shù)據(jù)流圖的時序、以及找到最佳調(diào)度算法。
26.根據(jù)權利要求25所述的方法,其中,重新調(diào)整時序包括下列各項中的至少一者將若干流水線寄存器組添加到部分所述電路中、以及從部分所述電路中移除若干流水線寄存器組。
27.根據(jù)權利要求19所述的方法,該方法還包括下述步驟中的一個步驟將所述優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備;將所述優(yōu)化后的數(shù)據(jù)流圖實施到電路;以及將所述優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器、以及并行處理器中的一者。
28.一種包含可執(zhí)行計算機程序指令的機器可讀介質(zhì),當所述可執(zhí)行計算機程序指令由數(shù)字處理系統(tǒng)執(zhí)行時促使所述系統(tǒng)執(zhí)行用于設計電路的方法,該方法包括將所述電路的多速率數(shù)據(jù)流圖表示轉(zhuǎn)換成單速率數(shù)據(jù)流圖表示;在電路操作級對部分所述單速率數(shù)據(jù)流圖表示進行優(yōu)化以生成數(shù)據(jù)流圖;以及在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化以生成優(yōu)化后的數(shù)據(jù)流圖。
29.根據(jù)權利要求觀所述的介質(zhì),其中,將多速率數(shù)據(jù)流圖轉(zhuǎn)換成單速率數(shù)據(jù)流圖包括展開所述多速率數(shù)據(jù)流圖。
30.根據(jù)權利要求四所述的介質(zhì),其中,展開所述多速率數(shù)據(jù)流圖包括用與時鐘成反比的展開因子來展開所述多速率數(shù)據(jù)流圖中的時鐘域。
31.根據(jù)權利要求觀所述的介質(zhì),其中,所述電路的部分所述單速率數(shù)據(jù)流圖表示包括表示電路功能的節(jié)點,并且其中在電路操作級對所述單速率數(shù)據(jù)流圖表示進行優(yōu)化包括在電路操作級進行優(yōu)化之前,首先將所述節(jié)點轉(zhuǎn)換成所述電路功能。
32.根據(jù)權利要求觀所述的介質(zhì),其中,在電路操作級進行優(yōu)化包括使用邏輯等效電路進行優(yōu)化。
33.根據(jù)權利要求觀所述的介質(zhì),其中,所述電路包括樣本速率改變器部件,并且其中由電路操作級進行優(yōu)化包括對由所述樣本速率改變器部件導致的零輸入進行優(yōu)化以及對由所述樣本速率改變器部件導致的未使用輸出進行優(yōu)化中的一者。
34.根據(jù)權利要求觀所述的介質(zhì),其中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化包括下述各項中的至少一者折疊部分所述數(shù)據(jù)流圖、展開部分所述數(shù)據(jù)流圖、重新調(diào)整部分所述數(shù)據(jù)流圖的時序、以及找到最佳調(diào)度算法。
35.根據(jù)權利要求34所述的介質(zhì),其中,重新調(diào)整時序包括下列各項中的至少一者將若干流水線寄存器組添加到部分所述電路中、以及從部分所述電路中移除若干流水線寄存器組。
36.根據(jù)權利要求觀所述的介質(zhì),其中所述方法還包括下述步驟中的一個步驟將所述優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備;將所述優(yōu)化后的數(shù)據(jù)流圖實施到電路;以及將所述優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器、以及并行處理器中的一者。
37.一種用于設計電路的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)包括用于將所述電路的多速率數(shù)據(jù)流圖表示轉(zhuǎn)換成單速率數(shù)據(jù)流圖表示的裝置;用于在電路操作級對部分所述單速率數(shù)據(jù)流圖表示進行優(yōu)化以生成數(shù)據(jù)流圖的裝置;以及用于在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化以生成優(yōu)化后的數(shù)據(jù)流圖的裝置。
38.根據(jù)權利要求37所述的系統(tǒng),其中,將多速率數(shù)據(jù)流圖轉(zhuǎn)換成單速率數(shù)據(jù)流圖包括展開所述多速率數(shù)據(jù)流圖。
39.根據(jù)權利要求38所述的系統(tǒng),其中,展開所述多速率數(shù)據(jù)流圖包括用與時鐘成反比的展開因子來展開所述多速率數(shù)據(jù)流圖中的時鐘域。
40.根據(jù)權利要求37所述的系統(tǒng),其中,所述電路的部分所述單速率數(shù)據(jù)流圖表示包括表示電路功能的節(jié)點,并且其中在電路操作級對所述單速率數(shù)據(jù)流圖表示進行優(yōu)化包括在電路操作級進行優(yōu)化之前,首先將所述節(jié)點轉(zhuǎn)換成所述電路功能。
41.根據(jù)權利要求37所述的系統(tǒng),其中,在電路操作級進行優(yōu)化包括使用邏輯等效電路進行優(yōu)化。
42.根據(jù)權利要求37所述的系統(tǒng),其中,所述電路包括樣本速率改變器部件,并且其中由電路操作級進行優(yōu)化包括對由所述樣本速率改變器部件導致的零輸入進行優(yōu)化以及對由所述樣本速率改變器部件導致的未使用輸出進行優(yōu)化中的一者。
43.根據(jù)權利要求37所述的系統(tǒng),其中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化包括下述各項中的至少一者折疊部分所述數(shù)據(jù)流圖、展開部分所述數(shù)據(jù)流圖、重新調(diào)整部分所述數(shù)據(jù)流圖的時序、以及找到最佳調(diào)度算法。
44.根據(jù)權利要求43所述的系統(tǒng),其中,重新調(diào)整時序包括下列各項中的至少一者將若干流水線寄存器組添加到部分所述電路中、以及從部分所述電路中移除若干流水線寄存器組。
45.根據(jù)權利要求37所述的系統(tǒng),該系統(tǒng)還包括下述各項中的一者用于將所述優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備的裝置;用于將所述優(yōu)化后的數(shù)據(jù)流圖實施到電路的裝置;以及用于將所述優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器、以及并行處理器中的一者的裝置。
46.一種用于設計電路的方法,該方法包括將所述電路的數(shù)據(jù)流圖表示的速率改變器部分展開成單速率數(shù)據(jù)流圖表示;在電路操作級對因展開所述速率改變器部分而產(chǎn)生的零輸入和未使用輸出中的至少一者進行優(yōu)化,以生成數(shù)據(jù)流圖;以及在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化以生成優(yōu)化后的數(shù)據(jù)流圖。
47.根據(jù)權利要求46所述的方法,其中,速率改變器包括上采樣器、下采樣器、重新采樣器、抽取器、以及插入器中的一者。
48.根據(jù)權利要求46所述的方法,其中,在電路操作級進行優(yōu)化包括使用邏輯等效電路進行優(yōu)化。
49.根據(jù)權利要求46所述的方法,其中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化包括下述各項中的至少一者折疊部分所述數(shù)據(jù)流圖、展開部分所述數(shù)據(jù)流圖、重新調(diào)整部分所述數(shù)據(jù)流圖的時序、以及找到最佳調(diào)度算法。
50.根據(jù)權利要求46所述的方法,該方法還包括下述步驟中的一個步驟將所述優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備上;將所述優(yōu)化后的數(shù)據(jù)流圖實施到電路;以及將所述優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器、以及并行處理器中的一者。
51.—種包含可執(zhí)行計算機程序指令的機器可讀介質(zhì),當所述可執(zhí)行計算機程序指令由數(shù)字處理系統(tǒng)執(zhí)行時促使所述系統(tǒng)執(zhí)行用于設計電路的方法,該方法包括將所述電路的數(shù)據(jù)流圖表示的速率改變器部分展開成單速率數(shù)據(jù)流圖表示;在電路操作級對因展開所述速率改變器部分而產(chǎn)生的零輸入和未使用輸出中的至少一者進行優(yōu)化,以生成數(shù)據(jù)流圖;以及在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化以生成優(yōu)化后的數(shù)據(jù)流圖。
52.根據(jù)權利要求51所述的介質(zhì),其中,速率改變器包括上采樣器、下采樣器、重新采樣器、抽取器、以及插入器中的一者。
53.根據(jù)權利要求51所述的介質(zhì),其中,在電路操作級進行優(yōu)化包括使用邏輯等效電路進行優(yōu)化。
54.根據(jù)權利要求51所述的介質(zhì),其中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化包括下述各項中的至少一者折疊部分所述數(shù)據(jù)流圖、展開部分所述數(shù)據(jù)流圖、重新調(diào)整部分所述數(shù)據(jù)流圖的時序、以及找到最佳調(diào)度算法。
55.根據(jù)權利要求51所述的介質(zhì),所述方法還包括下述步驟中的一個步驟將所述優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備;將所述優(yōu)化后的數(shù)據(jù)流圖實施到電路;以及將所述優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器、以及并行處理器中的一者。
56.一種用于設計電路的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)包括用于將所述電路的數(shù)據(jù)流圖表示的速率改變器部分展開成單速率數(shù)據(jù)流圖表示的裝置;用于在電路操作級對因展開所述速率改變器部分而產(chǎn)生的零輸入和未使用輸出中的至少一者進行優(yōu)化以生成數(shù)據(jù)流圖的裝置;以及用于在數(shù)據(jù)流級對所述數(shù)據(jù)流圖進行優(yōu)化以生成優(yōu)化后的數(shù)據(jù)流圖的裝置。
57.根據(jù)權利要求56所述的系統(tǒng),其中,速率改變器包括上采樣器、下采樣器、重新采樣器、抽取器、以及插入器中的一者。
58.根據(jù)權利要求56所述的系統(tǒng),其中,在電路操作級進行優(yōu)化包括使用邏輯等效電路進行優(yōu)化。
59.根據(jù)權利要求56所述的系統(tǒng),其中,在數(shù)據(jù)流級對數(shù)據(jù)流圖進行優(yōu)化包括下述各項中的至少一者折疊部分所述數(shù)據(jù)流圖、展開部分所述數(shù)據(jù)流圖、重新調(diào)整部分所述數(shù)據(jù)流圖的時序、以及找到最佳調(diào)度算法。
60.根據(jù)權利要求56所述的系統(tǒng),該系統(tǒng)還包括下述各項中的一者用于將所述優(yōu)化后的數(shù)據(jù)流圖映射到可編程硬件設備的裝置;用于將所述優(yōu)化后的數(shù)據(jù)流圖實施到電路的裝置;以及用于將所述優(yōu)化后的數(shù)據(jù)流圖調(diào)度到單一處理器、多處理器、順序處理器、以及并行處理器中的一者的裝置。
全文摘要
用于通過將展開用作多速率折疊的預處理來優(yōu)化電路表示的方法和裝置。在本發(fā)明的至少一個實施方式中,在使用數(shù)據(jù)流算法進行優(yōu)化并將設計映射到硬件上之前使用電路操作級來對電路的部分數(shù)據(jù)流圖表示進行優(yōu)化。在一個方面中,本發(fā)明公開了通過對由上采樣器導致的零輸入進行優(yōu)化或者對由下采樣器導致的未使用輸出進行優(yōu)化來針對數(shù)據(jù)流圖表示進行電路操作級優(yōu)化。在本發(fā)明的至少一個實施方式中,多速率數(shù)據(jù)圖在數(shù)據(jù)流優(yōu)化之前被轉(zhuǎn)換成單速率數(shù)據(jù)圖。在一個方面中,將多速率數(shù)據(jù)圖轉(zhuǎn)換成單速率數(shù)據(jù)圖包括用與時鐘值成反比的最小展開因子來展開多速率數(shù)據(jù)圖。
文檔編號G06F17/50GK102282558SQ200980154558
公開日2011年12月14日 申請日期2009年11月12日 優(yōu)先權日2008年11月14日
發(fā)明者M·伊斯皮爾 申請人:新思公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
吉木乃县| 泸西县| 新巴尔虎右旗| 吉木乃县| 漯河市| 铜山县| 高要市| 进贤县| 尤溪县| 镇远县| 林州市| 山东省| 根河市| 宜宾县| 洪湖市| 右玉县| 兴文县| 大港区| 石门县| 正镶白旗| 昌吉市| 万安县| 迭部县| 桐柏县| 南郑县| 讷河市| 山丹县| 东港市| 东阿县| 志丹县| 葵青区| 读书| 新乡市| 鸡东县| 利辛县| 特克斯县| 平果县| 来凤县| 怀远县| 淮滨县| 江西省|