專利名稱:利用電路建模進行數據處理的方法和系統的制作方法
技術領域:
本發(fā)明涉及用于流應用的建模。更具體地,本發(fā)明涉及用于實時 地或接近實時地對流應用進行建模的方法和裝置。
背景技術:
電子行業(yè)持續(xù)投入大量努力,以求獲得高性能、高功能的電路。 這方面的顯著成就體現于,在小的硅晶片區(qū)域上制造超大規(guī)模集成電 路。這種類型的集成電路通過特定順序的一系列步驟而得以發(fā)展。設 計這種器件的主要目標是,獲得與器件的具體設計的地理特征相一致 的器件。為了實現這個目標,嚴密地控制設計過程中的步驟,以保證 剛性要求得以實現。
大量使用半導體器件來構造多數的現代電子器件。為了增加這些 電子設備的性能,需要把甚至更多數目的這些器件集成到單一的硅晶 片中。由于把半導體器件縮小(即使其變小)以在給定的表面區(qū)域上 形成更多數目的器件,這些器件的結構以及用于制造這些器件的制造 技術變得更加精細。對這些半導體器件進行細化的增強的能力導致不 斷增加的定制芯片增殖,每一個芯片具有唯一的功能和應用。而這又 導致了用于有效且非昂貴地對芯片進行設計和成功測試的各種技術。
對于許多芯片設計,通過使用硬件描述語言(HDL),例如Verilog 或VHDL,對定制芯片的功能進行描述,以此來制造定制芯片。通常編 寫硬件描述語言來描述該設計在功能性宏組方面的特征。對該設計進 行計算機仿真,以確保滿足定制的設計標準。對于高度復雜的定制芯 片設計,上述過程繁重且代價高。這些芯片高度集成的結構導致未期 望的問題,例如信號時序、噪聲耦合以及信號級的問題。因此,這些 復雜的定制芯片設計包括外延驗證(extensive validation)。通常,
使用Verilog或VHDL仿真器在不同的級上執(zhí)行這個驗證。一旦在這個等 級上進行驗證,則例如使用"Synopsys"對Verilog或VHDLHDL代碼進 行綜合以形成網表,把該網表提供給ASIC (專用集成電路)工廠進行 原型制造。然后在硅中對ASIC原型進行測試。即使在利用Verilog或 VHDL仿真器進行該驗證后,典型地也可能出現未期望的問題??朔@ 些問題包括對上述過程進行更多次的反復,在仿真級和原型級進行測 試和驗證。該反復明顯增加了設計時間和成本,使得這個實踐在當今 時效性很高的市場中通常是不可忍受的。
類似的問題出現在半定制設計中,例如可編程邏輯器件??删幊?邏輯器件也被稱作"PLD",是一種公知類型的集成電路,可以被編程 以執(zhí)行特定的邏輯功能。 一種常見類型的PLD是現場可編程門陣列 (FPGA),它具有多個不同的電路片(tile),每一個電路片都允許對 其功能進行編程的特定靈活性。盡管多數PLD的編程明顯快于多數復雜
定制芯片的設計,然而這些工作仍包括明顯的延遲。
如2002年2月12日公布的美國專利No.6, 347, 395,標題為"Method and Arrangement for Rapid Silicon Prototyping"中示出并描述的 那樣,可通過快速硅原型開發(fā)方法和裝置將典型的開發(fā)周期(從最初 的設計到新的產品)縮短多于50%。然而,即使利用快速硅原型開發(fā), 也需要實質的延遲對修改的設計進行編譯,以評價新的算法或解決在 驗證期間發(fā)現的問題。
當試圖實時或接近實時地對流數據進行處理時,其中延遲度在逐 個應用的基礎上是可忍受的,這些芯片開發(fā)問題變得突出。
發(fā)明內容
因此,需要能夠克服上述缺陷的用于開發(fā)定制(包括半定制)芯 片的方式。本發(fā)明通過對這里公開的每個示例進行設計建模,解決了 這個需求和其他需求。
本發(fā)明的各個方面涉及以解決和克服上述問題的方式對流數據 進行設計建模和/或處理。根據一個示例實施例, 一種用于對硬件規(guī)范 進行建模的系統包括被設置為接收輸入數據流并發(fā)送輸出數據流的平
臺。所述系統還包括流應用源,適于以源數據率提供輸入數據流;
流應用目的地,適于以目的地數據率吸收輸出數據流;以及數據信道,
把所述平臺與通用計算機相連。所述通用計算機適于根據所述硬件規(guī) 范的至少一部分、從第一中間數據流中產生第二中間數據流,第一數 據流通過所述數據信道從所述平臺而接收,而第二數據流通過所述數 據信道而發(fā)送至所述平臺,其中,第一中間數據流基于輸入數據流, 而輸出數據流基于第二中間數據流。
本發(fā)明的另一個實施例公開了一種用于對電子設計進行建模的
方法。所述方法包括根據流過所述電子設計的流數據,把針對流應 用的所述電子設計分為用于接收流應用的輸入數據流的起始部分、中 間部分以及用于發(fā)送流應用的輸出數據流的結束部分。所述方法還包 括產生針對所述起始部分和所述結束部分的硬件規(guī)范;產生針對所 述中間部分的抽象軟件模型;以及從所述硬件規(guī)范中產生可編程邏輯 器件(PLD)實施方式的配置數據,其中,所述PLD包括由所述配置數 據進行編程的可配置邏輯和可配置路由。所述方法還包括從所述抽 象軟件模型中產生可執(zhí)行程序,以及使用所述配置數據操作所述PLD 并使用所述可執(zhí)行程序操作通用計算機,其中,所述電子設計由所述 PLD和所述通用計算機的操作來建模。
考慮下文結合附圖對本發(fā)明的各個實施例的詳細描述,將會更加 完整地理解本發(fā)明,其中.-
圖l是根據本發(fā)明用于實時抽象(abstract)流應用建模的示例 系統的框圖2是根據本發(fā)明用于實時提煉流應用建模的另一示例系統的框 圖;以及
圖3是根據本發(fā)明用于實時提煉流應用建模的示例方法的流程圖。
具體實施例方式
雖然本發(fā)明能夠適應各種修改和備選形式,然而其細節(jié)已經通過 附圖中的示例而示出,并將被詳細描述。然而應當理解的是,其意圖 不是把本發(fā)明限制為所述具體實施例。相反,本發(fā)明將覆蓋落入所附 權利要求限定的本發(fā)明的精神和范圍內的所有修改、等同物和備選。
本發(fā)明被認為大體上可用于使用如下電路的數據處理方法和裝 置該電路需要對電路配置數據的快速編譯。本發(fā)明尤其可有利地用 于實時或接近實時地處理流數據,其中延遲度在逐應用的基礎上是可 忍受的。雖然本發(fā)明不會被限制為這些應用,然而通過對該環(huán)境中的 示例的討論,可以最好地獲得對本發(fā)明各個方面的理解。
根據本發(fā)明一個示例實施例, 一種對硬件規(guī)范進行建模的系統包 括被設置為接收輸入數據流并發(fā)送輸出數據流的平臺。所述系統還包 括流應用源,適于以源數據率提供輸入數據流;流應用目的地,適 于以目的地數據率吸收輸出數據流;以及數據信道,把所述平臺與通 用計算機相連。所述通用計算機適于根據所述硬件規(guī)范的至少一部分、 從第一中間數據流中產生第二中間數據流,第一數據流通過所述數據 信道從所述平臺而接收,而第二數據流通過所述數據信道而發(fā)送至所 述平臺,其中,第一中間數據流基于輸入數據流,而輸出數據流基于 第二中間數據流。
參考圖l,示出了根據本發(fā)明的系統100的框圖,該系統用于對流 應用進行實時的抽象建模。流應用具有流數據源102,例如流視頻或音
頻源,例如視頻帶播放機、視盤播放機或音頻播放機。流應用具有流
數據目的地104,例如視頻顯示設備或音頻揚聲器。在把處理的數據傳 遞到目的地104之前,根據流應用的硬件規(guī)范由平臺106和通用計算機 108的組合對來自源102的數據進行處理。平臺106和計算機108通過信 道110進行通信。
平臺106可以是基于PLD的平臺,或可編程以執(zhí)行流應用的一部分 的其他設備。備選地,平臺106可以是基于S0C的平臺,它包括片上系 統(SOC)。 Philips Semiconductors的示例平臺106包括快速硅原型開 發(fā)和Nexperia平臺,以及Nexperia高級原型開發(fā)架構。
平臺106的示例S0C可以包括多種建造塊, 一個或更多個數字信號 處理—塊,它們典型地應用流應用的設計中。流應用的硬件規(guī)范的特定 部分可以包括可用建造塊子集的實例,而硬件規(guī)范的余下部分可以由 計算機108來建模。例如,流應用可以包括各種標準塊和創(chuàng)新的定制塊。
流應用可以由系統100來建模,而系統100具有由平臺106建模的標準塊 和由計算機108上的軟件處理功能112建模的定制塊。定制塊的各種備 選設計可以快速地由系統100來評價,因為由軟件處理功能112建模的
定制塊可以快速地被修改和重編譯。
典型地,平臺106包括用于從應用數據源102接收流數據的接收機 114。接收機114可以包括處理功能,例如把來自視頻帶播放機102的模 擬信號轉換為數字視頻流。典型地,平臺106包括用于向應用數據目的 地104提供處理的流數據的發(fā)射機116。發(fā)射機116可以包括處理功能, 例如把處理的數字視頻流轉換為視頻顯示單元104的模擬信號??梢岳?解的是,接收機114和發(fā)射機116要么可以包括在PLD或S0C中,要么可 以與PLD或SOC分離,平臺106基于該PLD或SOC。
硬件處理功能118可以執(zhí)行流應用的部分處理。硬件處理功能118 實現了與信道110的接口。信道110的示例包括例如PCI X的并行總線, 或是例如PCI Express的串行或并行通信鏈路。典型地,信道110根據 具體的流應用而提供高帶寬。信道110可以是由計算機108直接支持的 通信協議,或由計算機108支持的通信協議與另一個通信協議(例如專 有通信協議)之間的適配器。
典型地,硬件處理118通過信道110向計算機108發(fā)送從應用數據源 102接收到的、局部處理后的流數據。可以理解的是,硬件處理118可 以向計算機108僅發(fā)送流數據的一部分,例如彩色視頻數據的一個顏色 分量的數據??梢岳斫獾氖?,硬件處理118可以在不進行前處理的情況 下向計算機108發(fā)送流數據。硬件處理118還通過信道110從計算機108 接收已經由處理功能112處理過的流數據。硬件處理118向應用數據目 的地104發(fā)送流數據,該數據基于從計算機108接收到的流數據。硬件 處理118可以在向應用數據目的地104提供流數據之前執(zhí)行對流數據的 附加處理。
元件處理功能112可以是通用計算機108上編譯的軟件功能。功能
112從平臺106接收的流數據和功能112發(fā)送至平臺106的力數據可以具 有抽象數據類型,例如數字序列,每一個數字表示流視頻數據的像素 強度值。由計算機108提供的可用抽象數據操作功能,例如乘法和加法, 可以用于對抽象表示的流數據進行抽象的處理。示例功能112垂直地和 /或水平地對視頻圖像的方向進行定標。
可以理解的是,附圖中描述的元件僅用于描述,以幫助理解本發(fā) 明。如同現有技術中已知的,被描述為硬件的元件可以等同地以軟件 來實現。對特定電子電路的引用也僅為了幫助理解本發(fā)明,而且用于 執(zhí)行本質上相同功能的任意電路可以被看作是等效電路。
參考圖2,示出了根據本發(fā)明的系統200的框圖,該系統用于對流 應用進行實時的抽象建模。來自源202的流應用數據由基于PLD的平臺 204、信道206和計算機208的組合來處理,而處理后的流應用數據被傳 遞至目的地210。
平臺204可以包括從應用數據源202接收流數據并向FPGA 214提供 流數據的接收機212。 FPGA 214可以包括存儲器216,而FPGA 214可以 被編程為實現與存儲器216進行接口的DMA塊218。DMA塊218可以提供面 向存儲器216的4個獨立DMA信道。第一DMA信道可以用于把通過接收機 212從源202接收到的數據寫入存儲器216;第二DMA信道可以用于從存 儲器216讀取數據,該數據通過發(fā)射機220傳遞到應用數據目的地210; 第三DMA信道可以用于從存儲器216讀取流數據,該數據通過信道206 傳遞到計算機208;以及第四DMA信道,可以用于把通過信道206從計算 機208接收到的流數據寫入存儲器216。
存儲器216可以是雙端口存儲器,其中DMA塊218與一個端口相連, 而PFGA 214被編制用于實現與另一個端口相連的處理塊222。處理塊 222可以在把處理后的數據傳遞給計算機208之前執(zhí)行對從源202接收 到的流數據進行處理,而且處理塊222可以在把處理后的數據傳遞給目 的地210之前執(zhí)行對從計算機208接收到的流數據進行處理。因此,來 自源202的流數據在傳遞給目的地210之前,可以由處理塊222、計算機 208以及再次由處理塊222進行三次按順序的處理操作??梢岳斫獾氖?, 根據流應用規(guī)范,可以省略由處理塊222執(zhí)行的這些處理操作中的任一
或兩者。在一個實施例中,處理塊222可以包括處理器。
在一個實施例中,信道206是插入服務器計算機208的PCI-X卡。 PCI-X卡206包括另一個FPGA 224,被編程為實現線路226上的PCI-X總 線的PCI-X協議與線路228上的專有通信協議之間的適配器功能,該專 有通信協議基于FPGA 214和FPGA 224所支持的低電平差分信令。FPGA 224的適配器功能包括PCI-X核心230、存儲器映射DMA控制器232、用 于1/0事務處理的存儲器映射橋234、用于存儲器事務處理的存儲器映 射橋236、中斷控制器238和信道控制器239。 PCI-X核心230可以實現線 路226上的PCI-X總線的PCI-X協議。存儲器映射DMA控制器232可以由計 算機208控制,以從存儲器216讀取脈沖串數據傳輸,從而通過PCI-X 控制器242把流數據傳遞到計算機208的存儲器240。計算機208可以產 生導致PCI-X控制器242通過存儲器映射橋236向存儲器216發(fā)送流數據
的脈沖串數據傳輸。
來自平臺204的流數據可以存儲在存儲器240的緩沖器中。在一個
實施例中,流數據被分為數據塊,而針對這些數據塊提供了多個緩沖 器,從而一個緩沖器可從平臺204接收塊流數據,而另一個緩沖器同時 由在計算機208的處理器246上執(zhí)行的處理功能244來處理,而且把流數 據塊同時從另一個緩沖器發(fā)送至平臺204。利用更多數目的緩沖器,可
以進一步分離各種數據傳輸和數據處理功能。
在一個實施例中,在完成對處理功能244的各種設計選項的評價 后,可以把處理功能244的抽象實現轉換為FPGA 214中實現的硬件規(guī) 范,從而不再需要信道206和計算機208來執(zhí)行流應用。
參考圖3,示出了根據本發(fā)明的一種方法的示例的流程圖,該方法 用于對流應用進行實時的抽象建模。流應用把來自源的處理后的流數 據傳遞至目的地。
在步驟302,硬件平臺從應用數據源(例如視頻和/或音頻流源) 接收流數據。在步驟304,硬件平臺可選地對來自數據源的流數據執(zhí)行 處理。在步驟306,把流數據從硬件平臺傳輸到通用計算機。如果硬件 平臺在步驟304處執(zhí)行處理,則在步驟306處傳輸的流數據是步驟304 處理后的流數據,否則,步驟306處傳輸的流數據是在步驟302處從源
接收的數據。
在步驟308,通用計算機上的軟件從步驟306處傳輸的數據流中創(chuàng) 建處理后的數據流。通過對軟件進fiM彥改和重編譯,可以快速地在抽
象級上針對步驟308的處理的各種設計選項進行評價,從而允許根據評
價標準而選擇具體的設計選項。
在步驟310,把來自步驟308的處理后的數據流從通用計算機傳輸 到硬件平臺。在步驟312處,來自步驟308的處理后的數據流可選地由 硬件平臺做進一步的處理,把結果從硬件平臺發(fā)送至應用數據目的地。
因此,通過附圖和/或本發(fā)明的涉及流數據應用抽象建模的示例實 施方式的討論,對各種實施例進行了描述。本發(fā)明不應被看作限制于 這些具體的示例實施方式。本發(fā)明可應用的各種修改、等效過程以及 多種結構落入本發(fā)明的范圍。這些變體可以被看作所附權利要求中提 出的所要保護的本發(fā)明的一部分。
權利要求
1.一種用于對硬件規(guī)范進行建模的系統,包括被設置為接收輸入數據流并發(fā)送輸出數據流的平臺(106);流應用源(102),適于以源數據率提供輸入數據流;流應用目的地(104),適于以目的地數據率吸收輸出數據流;數據信道(110),把所述平臺與通用計算機相連;以及所述通用計算機,適于根據所述硬件規(guī)范的至少一部分、從第一中間數據流中產生第二中間數據流,其中第一中間數據流通過所述數據信道從所述平臺而接收,而第二中間數據流通過所述數據信道被發(fā)送至所述平臺,其中,第一中間數據流基于輸入數據流,而輸出數據流基于第二中間數據流。
2. 根據權利要求1所述的系統,其中,所述平臺基于可編程邏輯 器件(PLD)。
3. 根據權利要求2所述的系統,其中,所述基于PLD的平臺包括至 少一個存儲器,所述存儲器被設置用于存儲輸入數據流、第一中間數 據流、第二中間數據流以及輸出數據流的移動間隔。
4. 根據權利要求2所述的系統,其中,所述基于PLD的平臺適于根據所述硬件規(guī)范的至少一部分、從輸入數據流中產生第一中間數據流。
5. 根據權利要求2所述的系統,其中,所述基于PLD的平臺適于根據所述硬件規(guī)范的至少一部分、從第二中間數據流中產生輸出數據流。
6. 根據權利要求2所述的系統,其中,所述基于PLD的平臺包括具 有可配置邏輯和可配置路由的PLD。
7. 根據權利要求1所述的系統,其中,第一中間數據流是輸入流 的副本,輸出數據流是第二中間數據流的副本,而且所述通用計算機 適于根據所述硬件規(guī)范而從第一中間數據流中產生第二中間數據流。
8. —種用于對電子設計進行建模的方法,包括根據流過電子 設計的流數據,把針對流應用的所述電子設計分為用于接收流應用的 輸入數據流的起始部分、中間部分(112)以及用于發(fā)送流應用的輸出 數據流的結束部分;產生針對所述起始部分和所述結束部分的硬件規(guī) 范;產生針對所述中間部分的抽象軟件模型;以及從所述硬件規(guī)范中 產生可編程邏輯器件(PLD)實施方式的配置數據,其中,所述PLD(118)包括由所述配置數據進行編程的可配置邏輯和可配置路由;從所述抽 象軟件模型中產生可執(zhí)行程序;以及使用所述配置數據操作所述PLD, 并使用所述可執(zhí)行程序操作通用計算機(108),其中,所述操作對所 述電子設計進行建模。
9. 根據權利要求8所述的方法,還包括根據所述操作對所述電 子設計進行驗證。
10. 根據權利要求8所述的方法,還包括從所述抽象軟件模型中 產生導出的硬件規(guī)范;從所述硬件規(guī)范和所述導出的硬件規(guī)范中產生 PLD實施方式的另一配置數據;以及使用所述另一配置數據來操作所述 PLD,其中,所述操作實現了所述電子設計。
全文摘要
本發(fā)明涉及對流數據進行設計建模和/或處理。根據一個示例實施例,一種用于對硬件規(guī)范進行建模的系統包括被設置為接收輸入數據流并發(fā)送輸出數據流的平臺(106)。所述系統還包括流應用源(102),適于以源數據率提供輸入數據流;流應用目的地(104),適于以目的地數據率吸收輸出數據流;以及數據信道(110),把所述平臺與計算機(108)相連。所述計算機使用所述硬件規(guī)范以產生中間數據流,中間數據流實現了平臺建模的流水線化。
文檔編號G06F17/50GK101116076SQ200580047728
公開日2008年1月30日 申請日期2005年12月2日 優(yōu)先權日2004年12月3日
發(fā)明者格瑞·E·艾赫曼, 羅伯特·L·佩里, 蒂姆·A·龐帝斯 申請人:皇家飛利浦電子股份有限公司