欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

產(chǎn)生系統(tǒng)模型的方法與在此系統(tǒng)模型中傳輸數(shù)據(jù)的方法

文檔序號:6358026閱讀:264來源:國知局
專利名稱:產(chǎn)生系統(tǒng)模型的方法與在此系統(tǒng)模型中傳輸數(shù)據(jù)的方法
技術(shù)領(lǐng)域
本發(fā)明是有關(guān)于一種產(chǎn)生系統(tǒng)模型的方法與在此系統(tǒng)模型中傳輸數(shù)據(jù)的方法。
背景技術(shù)
由于半導(dǎo)體制程的制造技術(shù)的改良,集成電路(IC)科技在復(fù)雜度方面持續(xù)地增加。完整的系統(tǒng)單芯片(SoC)解決方案牽涉到許多組件,例如處理器、定時器、中斷控制器、 總線、內(nèi)存和/或單一電路上的嵌入式軟件等組件,其現(xiàn)可用于各式各樣的應(yīng)用中。軟件開發(fā)、早期硬件架構(gòu)探索、復(fù)雜的系統(tǒng)單芯片或處理器裝置的功能性驗證為半導(dǎo)體工業(yè)所面臨的挑戰(zhàn)。當在65納米(nm)和更小尺寸的制程制造技術(shù)上,利用可用于建構(gòu)大型且復(fù)雜的單芯片的上百萬個晶體管時,對這樣復(fù)雜的裝置進行功能性驗證的挑戰(zhàn)是成指數(shù)地成長。產(chǎn)業(yè)數(shù)據(jù)顯示超過80%以上的計劃資源被分配到這些裝置的軟件開發(fā)和功能性驗證上。傳統(tǒng)的設(shè)計流程是由描述即將制造的電路的行為或功能性開始。傳統(tǒng)上,這樣的軟件程序是以程序性程序語言(Procedural Programming Languages),例如C/C++,這些程序性程序語言以有限的實施細節(jié)來定義將進行的行為。緩存器轉(zhuǎn)換層級(Register Transfer Level ;RTL)為一種層級,在此層級上數(shù)字系統(tǒng)是就在功能性單元間的同步傳輸來描述。RTL是比門級(Gate Level)高出一個層級。在RTL中,每一執(zhí)行的運算次序(因而計時)完整地被指定。集成電路裝置的RTL模型可被用為自動化數(shù)字合成工具的一輸入, 以產(chǎn)生門級網(wǎng)絡(luò)連線表(Gate Netlist)。如在此所使用,用語“模型”是被用來描述一單元, 此單元可實現(xiàn)于軟件中并可被實施在計算機可讀取媒體上,其代表在實際裝置外的形式中的所欲裝置(例如系統(tǒng)方塊)的行為。邏輯合成工具將一個RTL描述轉(zhuǎn)換為門級網(wǎng)絡(luò)表。 門級網(wǎng)絡(luò)表更通過由所謂的配置與繞線工具(Place and Route Tool)來經(jīng)歷晶體管層級的轉(zhuǎn)換,以達到實體的集成電路層級。

發(fā)明內(nèi)容
本發(fā)明的一方面是在提供一種產(chǎn)生系統(tǒng)模型的方法與在此系統(tǒng)模型中傳輸數(shù)據(jù)的方法,可供集成電路(IC)設(shè)計者在進行RTL設(shè)計或門層級設(shè)計之前,來進行軟件的開發(fā), 以進行架構(gòu)上的變更來研發(fā)具有最佳效能與精確功能性的軟件。根據(jù)本發(fā)明的一實施例,在此產(chǎn)生系統(tǒng)模型的方法中,首先模型化系統(tǒng)單芯片的系統(tǒng)方塊為被計算機所實施的無計時功能性模型于無計時功能層級上。接著,使用無計時功能性模型于交易層級上來產(chǎn)生系統(tǒng)方塊的被計算機所實施的交易層級模型。然后,使用交易層級模型于周期精確層級上來產(chǎn)生系統(tǒng)方塊的被計算機所實施的周期精確模型。接著,操作處理器來執(zhí)行使用交易層級模型和周期精確模型其中至少一者的軟件程序,來驗證系統(tǒng)單芯片的功能性。根據(jù)本發(fā)明的另一實施例,在此產(chǎn)生系統(tǒng)模型的方法中,首先產(chǎn)生系統(tǒng)單芯片的系統(tǒng)方塊的交易層級模型于一交易層級上。接著,產(chǎn)生系統(tǒng)方塊的無計時功能性模型于無計時功能層級上,無計時功能性模型是設(shè)置來被交易層級模型所調(diào)用。然后,利用交易層級模型來產(chǎn)生系統(tǒng)方塊的周期精確模型于周期精確層級上。 根據(jù)本發(fā)明的又一實施例,在此傳輸數(shù)據(jù)的方法中,首先于于無計時功能層級上, 模型化系統(tǒng)單芯片的至少一系統(tǒng)方塊為第一無計時功能性模型與第二無計時功能性模型。 然后,分別使用第一無計時功能性模型與第二無計時功能性模型于交易層級上產(chǎn)生系統(tǒng)方塊的第一交易層級模型與第二交易層級模型。接著,分別利用第一交易層級模型與第二交易層級模型于周期精確層級上,產(chǎn)生系統(tǒng)方塊的第一周期精確模型和第二周期精確模型。 然后,從第一無計時功能性模型傳送數(shù)據(jù)至第一周期精確模型。接著,從第一周期精確模型透過周期精確總線來傳送數(shù)據(jù)至第二周期精確模型。然后,從第二周期精確模型傳送數(shù)據(jù)至第二無計時功能性模型。


為讓本發(fā)明的上述和其它目的、特征、和優(yōu)點能更明顯易懂,上文特舉一較佳實施例,并配合所附附圖,作詳細說明如下圖1是繪示根據(jù)本發(fā)明一實施例的方塊圖;圖2是繪示根據(jù)本發(fā)明一實施例的流程圖;圖3是繪示根據(jù)本發(fā)明一實施例的利用LT包裝器來從無計時功能性模型產(chǎn)生TL 模型的方塊圖;圖4是繪示根據(jù)本發(fā)明一實施例的利用AT包裝器來從無計時功能性模型產(chǎn)生TL 模型的方塊圖;圖5是繪示根據(jù)本發(fā)明一-實施例的利用TL包裝器來從TL模型產(chǎn)生CA模型的方塊圖6是繪示根據(jù)本發(fā)明一-實施例的利用簡略計時(LT)協(xié)議的突發(fā)讀取周期的時序圖7是繪示根據(jù)本發(fā)明一-實施例的利用近似計時(AT)協(xié)議的突發(fā)讀取周期的時序圖8是繪示根據(jù)本發(fā)明一 實施例的計算機系統(tǒng)的功能性組件的方塊圖。
主要組件符號說明
110a:無計時功能性模型IlOb 無計時功能性模型
120a 交易層級模型120b 交易層級模型
130a 周期精確模型130b 周期精確模型
130c 周期精確模型130d 周期精確模型
140 周期精確總線
200 流程210 步驟
220 步驟230 步驟
240 步驟
310a 無計時功能性模型310b 無計時功能性模型
314a 簡略計時包裝器314b 簡略計時包裝器
320a 交易層級模型320b 交易層級模型
325a:啟始器插槽325b :目標插槽
328 簡略計時總線350 虛擬通訊連結(jié)
360 虛擬通訊連結(jié)370 外部內(nèi)存模型
410a 無計時功能性模型410b 無計時功能性模型
416a 近似計時包裝器416b 近似計時包裝器
417a 請求隊列417b請求隊列
418a 響應(yīng)隊列418b響應(yīng)隊列
420a 交易層級模型420b交易層級模型
425a:啟始器插槽425b目標插槽
429 近似計時總線450 虛擬通訊連結(jié)
460 虛擬通訊連結(jié)
510a 無計時功能性模型510b無計時功能性模型
515a:包裝器515b包裝器
520a 交易層級模型520b交易層級模型
530a 周期精確模型530b周期精確模型
532a:啟始器交易器532b目標交易器
534a 請求隊列534b請求隊列
536a 響應(yīng)隊列536b響應(yīng)隊列
540 周期精確總線550 虛擬通訊連結(jié)
560 虛擬通訊連結(jié)
TO T13 時間
ARADDR 總線ACLK高階可擴展接口總線時脈
ARREADY 地址準備信號ARVALID :地址有效信號
RLAST 信號RDATA 總線
RREADY 信號RVALID 信號
800 計算機系統(tǒng)806 總線
807 處理器808 主存儲器
809 只讀存儲器810 儲存裝置
811 顯示裝置812 輸入裝置
814 通訊接口815 通訊連結(jié)
831 數(shù)據(jù)儲存系統(tǒng)832 數(shù)據(jù)庫
833:數(shù)據(jù)接口
具體實施例方式
由于RTL設(shè)計的緩慢模擬速度,在RTL的軟件開發(fā)是很有挑戰(zhàn)性的。在每秒數(shù)百萬個周期范圍中模擬速度對于軟件開發(fā)是有引導(dǎo)性的,而RTL典型地是提供小于每秒100至 200個周期的模擬速度。硬件加速器與模仿器(Emulator)的使用已快速地增加,而達到對軟件開發(fā)有引導(dǎo)性的每秒周期數(shù)處理量。然而,硬件加速器或模仿器只能在有RTL或門層級設(shè)計可獲得時才可使用。在RTL設(shè)計信息準備好前,在設(shè)計周期中進行架構(gòu)變更來研發(fā)可最佳地執(zhí)行并具精確功能性的軟件已經(jīng)是太晚了。很多的項目計劃被取消或太晚上市是由于軟件開發(fā)的延宕。因此,需要一種平臺或工具,以于付諸至RTL或門層級上的設(shè)計前開發(fā)軟件,而此平臺或工具是被提供于各種不同的實施例中。較高階無計時功能模型(Untimed Functional Model)或基于開放性系統(tǒng)C 促進組織的系統(tǒng) C TLM-2 簡略計時協(xié)議(Open SystemC Initiative (OSCI) SystemC TLM-2Loosely Timed(LT)protocol)的模型提供軟件開發(fā)者在付諸至RTL前的快速模擬平臺。OSCI SystemC TLM-2LT協(xié)議是被描述于電機電子工程師學(xué)會(Institute of Electrical and Electronics Engineers ;IEEE) 1666-2005 標準系統(tǒng) C i吾言參考手冊以及OSCI系統(tǒng)C TLM-2.0語言參考手冊中,在此二者全部內(nèi)容已并入本案以供參考(Hereby Incorporated by Reference) 0在模型中,制程間的溝通以及LT模型間的溝通是發(fā)生于純功能性交易層級(Purely Functional Transaction Level),在純功能性交易層級上沒有信號級功能性(Functional)或時脈級計時(Timing)粒度(Granularity),相對于周期精確RTL模擬,其可以多個數(shù)量級將模擬加速。如在此所使用,用語“周期精確”是指在周期方面將時間準確定義的計時粒度。用語“交易”是指將一完整互動編碼的電子表現(xiàn)方式,此互動是例如從中央處理器寫入一或多個位至內(nèi)存中。一交易可為多個指令的序列,此指令序列是位于比裝置所操作的基本原子層級更高的層級上。傳統(tǒng)上,位于RTL中的交易需要多個時脈周期來執(zhí)行。交易層級(Transaction Level ;TL)模型可快速地計算交易的最終結(jié)果(例如被模型化的裝置的最終結(jié)果)而不需要進行實體裝置(real device)實際所進行的每一個步驟。位于TL中的交易可不計算時間或只花費一些在時脈周期中量測不出來的“近似”的時間。相對地,RTL中的交易被認為會占用時脈周期。因此,TL模型比較低階的模型,例如RTL模型,執(zhí)行得更快(因此更準確)。較早的軟件開發(fā)可早期確認出軟件所需的確實架構(gòu)與功能性需求,以確保最后的硅芯片(Final Silicon)可確實符合軟件的需求。類似于軟件開發(fā)為硬件架構(gòu)探索的問題。因為RTL的設(shè)計無法在早期獲得,所以傳統(tǒng)上,在設(shè)計周期中,RTL所進行的硬件架構(gòu)探索會太晚發(fā)生。在設(shè)計周期中,確認在RTL 中需要變更芯片架構(gòu)的延遲問題和效能問題會太晚。較高階的OSCI-SystemC TLM-2 近似時脈(Approximately Timed (AT))協(xié)議模型相當適合于硬件架構(gòu)探索。如在此使用,用語“高”、“較高”、“低”、“較低”,是指功能性與計時粒度。例如,較高層級是對應(yīng)至比較低層級更粗糙的功能性與計時粒度。更粗糙的功能性粒度是指在不處理RTL的信號級功能性粒度的演算層級上,對裝置進行模型化。更粗糙的計時粒度是指不以計時粒度(當在無計時模型中)或以近似的計時粒度對裝置進行模型化。近似的計時粒度是指簡略計時(LT)或近似計時(AT)粒度。LT和AT計時為與交易層級 (Transaction Level ;TL)模型化有關(guān)的概算(Approximation)并描述如下。RTL為周期精確計時且被認為是相對較低的層級。AT協(xié)議提供足夠的計時粒度來較佳地近似至系統(tǒng)于周期精確RTL中最后設(shè)計時所面對的延遲。因為相較于LT的兩階段協(xié)議(Phased Protocol), AT具有四個(或更多)階段通訊協(xié)議(Phased Communication ftOtocol),所以AT具有較細的計時粒度。然而,AT計時粒度亦較高于周期精確RTL粒度。換句話說,AT足夠快速且可利用足夠的真實計時信息,來允許在付諸RTL之前,進行快速且有意義的硬件架構(gòu)探索。如在此所使用,用語“電子系統(tǒng)級(Electronic System Level ;ESL) ”以及“無計
7時功能層級”,是指使用無計時的程序型程序語言,例如C或C++的高層級,而無計時功能性模型則為在此高層級所模型化的模型。無計時功能性模型可為系統(tǒng)設(shè)計中的啟始點,且可用來探索與驗證定義裝置核心功能性的算法。一旦此模型被建立及驗證,即可利用將于以下詳述的LT或AT包裝器邏輯模塊(wrapper logic modules),來從無計時功能性模型建立軟件開發(fā)以及硬件探索的系統(tǒng)。因此,在實施例中,重復(fù)使用為建立演算無計時功能模型所投入的投資(在時間與資源方面),以加速LT或AT系統(tǒng)。LT平臺是允許軟件開發(fā)來與可允許架構(gòu)探索的AT平臺進行平行處理。簡略計時通訊協(xié)議提供最快速的模擬處理量(速度),此是因為它具有簡單的兩階段請求/響應(yīng)(request/response)協(xié)議。因為具有高模擬速度,LT很適合設(shè)計周期中的早期軟件開發(fā)。軟件開發(fā)使用核心功能、地址地圖以及系統(tǒng)緩存器,但不需任何計時粒度, 除了內(nèi)存的寫入/讀取以及緩存器的寫入讀取之外,而模型開發(fā)者可利用已知的方法來實施,例如使用SystemC的旗號(kmaphore),此為本領(lǐng)域習(xí)知技藝者所了解。另一方面,近似時脈(AT)通訊協(xié)議為四階段(啟始請求、結(jié)束請求、啟始響應(yīng)、結(jié)束響應(yīng)),且支持無阻斷(Non-blocking)行為,以提供計時粒度更進一步的精細化。如此的計時粒度可允許系統(tǒng)效能評估、早期功耗評估以及架構(gòu)探索。如此的計時粒度允許對系統(tǒng)中存在的延遲進行較LT更佳的近似,藉此允許好的效能評估以及不同的可能架構(gòu)。LT與AT協(xié)議為較高模型化層級(相對于RTL)的組件,較高模型化層級即為已知的交易層級模型化(Transaction Level Modeling ;TLM)或此處所使用的“交易層級”(TL)。 在較高的層級上,可進行設(shè)計探索來評估可達成的效能與功耗、哪一個部分要使用等等。 TL是指用來模型化數(shù)字系統(tǒng)的一高層級,其中模塊間的溝通是與功能性單元的實施細節(jié)分開。系統(tǒng)設(shè)計者所面對的另一個挑戰(zhàn)為裝置的功能性驗證。產(chǎn)業(yè)數(shù)據(jù)顯示接近60%的原型硅芯片(First silicon)由于功能失效而故障。肇因于開發(fā)驗證環(huán)境所增加的時間、 緩慢RTL模擬速度所增加的時間以及精細設(shè)計粒度而進行除錯(Debug)所增加的時間,目前用來于RTL進行復(fù)雜電子系統(tǒng)功能性驗證的技術(shù)是不適用的。各種不同的實施例是有益地提供于一較高層級上被模型化的一平臺,其中大部份的功能性驗證都可在此平臺上進行,然后于RTL驗證期間,重復(fù)使用上述的較高層級模型來加速模擬。例如,實施例可利用一語言,例如C或C++來完成無計時功能性模型,并從中產(chǎn)生TL和周期精確(Cycle Accurate ;CA)模型。實施例將無計時功能模型(例如用來進行算法開發(fā)的模型)轉(zhuǎn)換為TL(LT或AT)模型,然后更進一步轉(zhuǎn)換為最后設(shè)計的周期精確模型,接著繼續(xù)產(chǎn)生出較高層級模型來驅(qū)動較低層級。在實施例中,最后的RTL設(shè)計不會馬上準備好,因為較高層級模型可能與周期精確交易處理器(Transactor) —起使用,而非與仍處于開發(fā)階段下的系統(tǒng)方塊的最后RTL—起使用。有益的是,通過測試的有效原型硅芯片(First Pass Working Silicon)可因此來以比以前所可能的更快的速度來導(dǎo)入市場。圖1是繪示根據(jù)一實施例的功能方塊示意圖。圖1的左側(cè)和右側(cè)可分別對應(yīng)至啟始器anitiator)與目標(Target),且以具有不同字尾(分別為“a”和“b”)的類似標號來標示;此慣例在其它的附圖中也會采用。TL模型120a是由無計時功能性模型IlOa所產(chǎn)生。周期精確(CA)模型130a是由TL模型120a所產(chǎn)生。此產(chǎn)生的細節(jié)將在更下面的地方以其它附圖的內(nèi)容來描述。如此所產(chǎn)生的CA模型130a是透過CA總線140來與其它模型溝通。例如,CA模型130a可與CA模型130b溝通,CA模型130b本身是由另一無計時功能性模型IlOb透過TL模型來產(chǎn)生,或者CA模型130a可與其它的CA模型130c、130d溝通。 以前,不存在有可使無計時功能性模型,例如模型IlOaUlOb利用CA總線140來溝通以進行硬件功能性驗證的技術(shù),此是因為需要分開的CA模型(不從無計時功能性模型產(chǎn)生)。 通過使較低層級模型由較高層級模型所產(chǎn)生,如圖1中所繪示的實施例可使無計時功能性模型于較低層級來重復(fù)使用,以釋放珍貴的開發(fā)者時間與資源。圖2是繪示根據(jù)一實施例的流程圖。在流程200開始之后,在步驟210中,系統(tǒng)單芯片(System-On-Chip ;SoC)的系統(tǒng)方塊是于第一層級上的無計時功能性模型中,例如無計時功能性層級,來被模型化。在步驟220中,TL模型是利用此無計時功能性模型來于較低交易層級(TL)中產(chǎn)生。在步驟230中,周期精確(CA)模型是利用此TL模型來于較低CA 層級上產(chǎn)生030)。在步驟240中,SoC的功能性是通過操作一處理器來驗證,以利用TL模型與CA模型中的至少一者,例如一者或另一者或兩者一起,來執(zhí)行軟件程序。TL模型的產(chǎn)生與CA模型的產(chǎn)生將先于下面描述,而細節(jié)則表示于更下方的其它附圖的內(nèi)容中。初始時,裝置的無計時功能性模型是利用程序語言,例如C或C++來產(chǎn)生。簡略計時(LT)或近似計時(AT)包裝器邏輯模塊產(chǎn)生TL模型(LT或AT模型)于無計時功能性模型周圍。TL模型可作為啟始器或目標。為了啟始TL總線(LT或AT總線)上的交易,啟始器TL包裝器邏輯(Initiator TL Wrapper Logic)呼叫較高層級的無計時功能性模型, 以從高層級的無計時功能性模型擷取數(shù)據(jù),并將數(shù)據(jù)封裝(Encapsulate)入兼容SystemC TLM-2的通用酬載(Generic Payload ;GP)。包裝器邏輯利用GP來產(chǎn)生交易對象并使用 SystemC TLM-2標準的方法來將GP傳遞至其它也使用LT或AT協(xié)議的模型。目標TL模型送出它從啟始器TL模型所接收的酬載至它的功能性核心ESL模型。當目標模型想要回送數(shù)據(jù)時,它的TL包裝器邏輯從目標核心ESL模型擷取響應(yīng)數(shù)據(jù),并在啟始器所提供的參考指標(Pointer)上來更新GP。然后,目標側(cè)(Target Side)利用LT或AT來回送狀態(tài)指標至啟始器側(cè)(Initiator side)。為了啟始CA總線上的周期,TL包裝器邏輯送出交易至周期精確交易處理器(于更下面描述),周期精確交易處理器輪流將交易譯碼、擷取它的酬載以及根據(jù)具體的CA總線協(xié)議來將它推進CA總線。當目標想要回送數(shù)據(jù),TL包裝器邏輯接收上述的響應(yīng)數(shù)據(jù)(從無計時功能性模型而來)以及送出響應(yīng)交易至周期精確交易處理器。交易處理器譯碼交易并擷取它的酬載,以利用數(shù)據(jù)來驅(qū)動CA總線。為了以無計時功能性模型來開始并到達計時粒度(LT或AT,兩者皆為TL)的下一層級,各種不同的實施例利用OSCI TLM-2標準協(xié)議LT或AT來以可彼此互相溝通的組件來建立系統(tǒng)。為了利用LT或AT協(xié)議來建立系統(tǒng),無計時ESL功能性核心模型是以下述的LT 或AT包裝器來“包裝”。從無計時功能性模性來產(chǎn)生TL模型以LT包裝器來包裝無計時功能性模型圖3是繪示利用LT包裝器來從無計時功能性模型產(chǎn)生TL模型的方塊圖。如同在此所使用,用語“包裝器”是指可從較高層級模型產(chǎn)生較低層級模型的邏輯模塊。圖3的左右側(cè)是分別對應(yīng)至啟始器和目標,且以具有不同字尾(“a”對應(yīng)至啟始器而“b”對應(yīng)至目標)的類似標號來標示。LT包裝器31 將以下述的無計時功能性模型310a包裝,以形成TL模型320a (具體為LT模型320a),其中TL模型320a是透過LT總線328以及啟始器與目標插槽(Socket) 325a、32 來與其它TL模型,例如TL模型320b溝通。TL模型320a與320b 之間的虛擬通訊連接350是繪示于圖3中。在實施例中,啟始器插槽32 和目標插槽32 是透過,例如已知的功能函數(shù)、^^11印0汁()來溝通。然而,由此功能函數(shù)在啟始器與目標間所傳送的酬載(例如,一筆交易的交易數(shù)據(jù)、地址表示、數(shù)據(jù)、字節(jié)致能(Byte Enable) 等)并未以定值來傳送。相反地,b_transport()功能函數(shù)是于啟始器與目標間傳送指針 (參數(shù))至此酬載。如此做的原因為啟始器與目標兩者皆可直接地于透過b_transp0rt() 所獲得的指針(內(nèi)存地址)來進行寫入/讀取,而不用來回地于它們之間傳送定值并拖慢模擬。因此,虛擬通訊連接350不會取代基于插槽(Socket-Based)的接口。虛擬通訊連接為對應(yīng)插槽所散布的酬載的指標。如本領(lǐng)域習(xí)知技藝者所了解,指針為酬載所在內(nèi)存的地址,且可被啟始器與目標兩者存取。b_transp0rt()功能函數(shù)是于啟始器與目標間傳送此地址。位于無計時功能性模型層級的虛擬通訊連接360也被繪示。圖3可對應(yīng)至無計時功能性模型(模型310a)已經(jīng)存在的情況,或?qū)?yīng)至無計時功能性模型(模型310a) —開始不存在,但與LT包裝器一起被制造出來。在第一個情況中,無計時功能性模型310a已經(jīng)存在 (即系統(tǒng)方塊已經(jīng)于無計時功能層級被模型化),在各種不同的實施例中,與外部模型(例如外部內(nèi)存模型370)溝通的模型的一些部份被進行修改。例如,無計時功能性模型310a 具有被稱為寫入至內(nèi)存(WriteToMemory)的功能,此功能是寫入至外部內(nèi)存模型370,包裝器邏輯31 被設(shè)置來修改無計時功能性模型310a與外部內(nèi)存模塊370之間的接口。在寫入至內(nèi)存的本體(Body)中,可將碼修改如下(下面只展示虛擬程序代碼)
void WriteToMemoryO; { properties of the method; #ifdef untimedF unction
〈original code as is>
#elifLT
〈create Generic Payload> from the properties of the method (address,
data, etc).
〈create transaction object pointer to the Generic Payload> 〈send object pointer to LT_Initiator—Socket function〉
#endif
}
void LT_initiator_Socket();
〈create TLM-2 Initiator Socket〉
<send Generic Payload object pointer using TLM-2 b—transport
method of the Initiator Socket> }在無計時功能性模型310a編譯的期間,“無計時功能”或“LT”的任一者可用來作為編譯前處理器指令線選項(Pre-processor Command Line Option),以提供可實施的方式來使用原始的核心(例如無計時功能性模型)“如原本一樣”,但也允許重復(fù)使用相同的功能性核心來建立用于軟件開發(fā)的基于LT系統(tǒng)。對于第二個情況,即沒有預(yù)先存在的無計時功能性模型,無計時功能性模型功能可由LT包裝器邏輯呼叫(調(diào)用),此是因為無計時功能性模型還沒被建立,這與第一個情況相反。第二個情況較為合意,此是因為從簡略時脈域(Domain)中的函式(Function)呼叫無計時域中的函式會比較容易。換句話說,相對于周圍的其它方式,從計時域至無計時域的同步會比較容易。當外部LT模型從無計時模型請求數(shù)據(jù)或需要送出數(shù)據(jù)至另一模型時,LT 計時域會精確地知道。然后,LT模型320a會于此時來呼叫無計時模型310a。無計時功能性模型310a以零時(Zero Time)來完成它的功能(因為它未被計時)例示性的虛擬碼是表示如下
void LT_Initiator_Socket();
{
〈create TLM-2 Initiator Socket〉
〈call the untimed ESL model's WritetoMemory() function to request
dada it wants to write to the LT bus>
〈create Generic Payload> from the data received from the ESL model
(address, data, etc.)·
〈create Transaction object pointer to the Generic Payload>
<send Generic Payload object pointer using TLM-2 b_transport method
of the initiator Socket〉
void WriteToMemoryO; {
properties of the method;
#ifdef untimedFunction
〈original code as is> #elifLT
〈provide data to LT_Intiator_Socket() as request and return.
#endif }在TLM-2標準中的簡略計時通訊協(xié)議是利用阻斷傳輸接口法(blocking transport interface method),艮口 b_transport ()來完成。在這段文章中,阻斷是意指完成此功能的單一函式,以及同一啟始器緒(Initiator Thread)被阻擋而不能對目標進行另一個請求,直到它接收到它之前請求的回應(yīng)狀態(tài)。不提供反向的路徑給響應(yīng)是必要的,此是因為啟始器僅等待(被阻擋)到目標回送回應(yīng)狀態(tài)的時候。在回送狀態(tài)至啟始器之前,目標可消耗或可不消耗時間。在進行處理的期間,目標通過發(fā)出(Issue)明確的“等待”信號而不消耗時間,此是因為“等待”中止處理緒并回送控制給下方的(如本領(lǐng)域習(xí)知技藝者所知的SystemC模擬核心的)事件排程器(kheduler)。當模型或程序回送控制至事件排程器時,上下文交換(Context Switching)會消耗顯著的中央處理器時間。LT通訊模型被設(shè)計來執(zhí)行得盡可能快速,而此“等待”信號會使此基本的優(yōu)點無效化。因此,當在LT模式中進行溝通時,較佳地,目標不進行“等待”。另外,如同在SystemC TLM-2LT標準酬載定義中,交易對象(例如酬載)(未繪示于圖3中)可被傳送至目標來做為參考(指針)。目標可在指針上直接讀取或?qū)懭霐?shù)據(jù),而不用通過值來明確地來回傳送數(shù)據(jù)至啟始器,其可將模擬加速的更快。LT包裝器31 利用通用酬載(GP)或協(xié)議具體化酬載(Protocol-Specific Payload ;PSP)來產(chǎn)生TLM-2交易。GP包含有屬性,例如地址、數(shù)據(jù)、字節(jié)致能等,用來模型化基礎(chǔ)的內(nèi)存映像(memory-mapped)總線。如果總線不能利用GP來模型化,它會被擴展來容納對總線具有特別意義的屬性。這種擴展的GP被稱為PSP,例如對于被插入(interleaved) 高階可擴展接口(Advanced extensible Interface, AXI)的寫入與讀取而言,可使用識別 (ID)卷標(屬性)。這樣的ID屬性不會存在于GP中。因此GP被擴展來增加ID屬性并產(chǎn)生AXI PSP。與GP擴展有關(guān)的步驟是詳細說明于本領(lǐng)域所公知的OSCI TLM-2語言參考手冊中。對一寫入指令而言,LT包裝器31 從無計時功能性模型310a擷取數(shù)據(jù)并以此數(shù)據(jù)來在交易對象指針上更新酬載。交易對象是利用啟始器插槽32如與13_^^11印01^()函式呼叫,例如發(fā)出請求,來將交易對象通過參考送至LT總線328。交易是于目標插槽32 被接收,而酬載域(Payload Field)與指令是利用如[transport ()函式來提取。LT包裝器 314b提取寫入指令,并從交易對象指針讀取數(shù)據(jù)并寫入數(shù)據(jù)至無計時功能性模型310b。類似地,對一讀取指令而言,LT包裝器314b從無計時功能性模型310b讀取數(shù)據(jù)并于交易對象指針的數(shù)據(jù)域中來寫入數(shù)據(jù),而LT包裝器31 直接從交易對象指針讀取數(shù)據(jù)并將它送至無計時功能性模型310a。因此,LT包裝器314a、314b分別從無計時功能性模型310a、310b產(chǎn)生TL模型 320a、320b。關(guān)于利用SystemC TLM-2LT協(xié)議來進行程序設(shè)計的準則與規(guī)范的額外細節(jié),已為本領(lǐng)域習(xí)知技藝者所了解且被解釋于SystemC TLM-2LT語言參考手冊中。以AT包裝器來包裝無計時功能性模型AT模型是以和LT模型產(chǎn)生方式很相似的方式來由無計時功能性模型產(chǎn)生。AT為四階段無阻斷協(xié)定,而LT為兩階段阻斷協(xié)定。換句話說,AT協(xié)議不用等待來接收目前(現(xiàn)在)交易的響應(yīng),即可允許開始下一個交易,例如通過同一啟始器緒。在這個意義上,AT允許交易的管線化(Pipelined)發(fā)送。多個進行中αη-flight)的交易請求與其響應(yīng)可按照次序或不按照次序返回。在AT啟始器從目標接收請求結(jié)束階段(EncLRequest Phase)后, AT啟始器可只發(fā)出下一請求。然而,AT啟始器緒可于接收上個請求的回應(yīng)之前,發(fā)出下一個請求。圖4是繪示利用AT包裝器416a來從無計時功能性模型410a產(chǎn)生TL模型的方塊圖。AT包裝器416a布署(提供)交易隊列,也就是請求隊列417a與響應(yīng)隊列418a。LT 包裝器亦可部署交易隊列,但是因為LT采用阻擋呼叫,所以沒有真正的原因來使交易排列 (排隊)發(fā)送。換句話說,AT可將交易請求排列,以精確地模型化系統(tǒng)的管線化行為。請求隊列417a排列請求交易,而響應(yīng)隊列418a儲存從AT總線4 透過啟始器插槽42 所接收的回應(yīng)。為了能夠決定哪一個回應(yīng)屬于哪一個請求,包裝器邏輯416a維持隊列指針(未繪示)。OSCI TLM-2標準定義了單一交易的四個AT通訊階段(啟始器)Begin_ReqUest、(目標)End_Request、(目標)Begin_Response 以及(啟始器)End_Response。為了維持請求與響應(yīng)隊列417a、418a,各種不同的實施例確保只有當EncLRequest從目標被接收時,啟始器才送出下一個BegiruRequest。啟始器不能發(fā)出下一個請求,直到目標指出它已經(jīng)接受了請求并回送EncLRequest傳輸呼叫至啟始器。然而,下一個請求可于前一個請求的開始_回應(yīng)(BegiruResponse)到達前啟動。根據(jù)AT協(xié)議的四階段來維持請求隊列417a與響應(yīng)隊列間的正確相互關(guān)系,可使最新的高效能總線,例如AXI的管線化周期的模型化變得容易。 換句話說,如果AT通訊協(xié)議將AXI總線模型化,則邏輯會被完成,以允許管線化總線行為, 如同上述的交易隊列。以AXI總線為例來繼續(xù)說明,LT和AT包裝器可將OSCI TLM-2通用酬載(GP)擴展為協(xié)定具體化酬載。例如,AXI總線需要將ID與交易一起傳送,以追蹤管線化(以及無次序的)寫入和讀取。ID域不是OSCI TLM-2 GP的一部份。因此,GP將不必被擴展來加入 ID。沒有ID的情況下,AT包裝器邏輯(且統(tǒng)稱為AXI邏輯)不會知道哪一個響應(yīng)對應(yīng)至哪一個請求。如以上所述,用來擴展GP的規(guī)則已解釋于OSCI SystemC TLM-2. 0語言參考手冊(LRM)。AT包裝器可以兩種方式來與無計時功能性模型410a溝通。不是以無計時功能性模型410a的內(nèi)部功能呼叫AT包裝器邏輯416a的方式,就是以AT包裝器邏輯416a的內(nèi)部功能呼叫無計時功能性模型410a的方式。第一個方式很適合用來從已存在的無計時功能性模型410a建立AT包裝器。第二種方式更適合AT包裝器邏輯與無計時功能性模型410a 兩者并聯(lián)的情況。以任一方式,AT包裝器416a皆可從無計時功能性模型410a接收數(shù)據(jù)并由此制造TLM-2標準通用酬載(GP)。無計時功能性模型410a可送出調(diào)用AT包裝器邏輯416a的寫入功能或讀取功能。 對于寫入而言,AT包裝器邏輯416a可利用,如根據(jù)OSCI TLM-2說明書的feite_Command, 來從功能參數(shù)擷取寫入地址、數(shù)據(jù)以及字節(jié)致能數(shù)據(jù),并形成GP。AT包裝器邏輯416a可擴展GP來增加具體化總線協(xié)議(例如PSP)所使用的字段。對于讀取而言,At包裝器邏輯 416a可利用,如Read_Command,來將地址和位致能置入GP中。然后,啟始器側(cè)制造出作為“通用酬載”類的指針的交易對象(未繪示),并透過 TLM-2啟始器插槽42 將它傳送到目標側(cè),例如使用nb_transp0rtfW()接口函式。AT包裝器邏輯416a將每一個交易附加上獨特的ID,如此它可匹配響應(yīng)隊列418a中的條目與請求隊列417a中的條目。以此方式,啟始器側(cè)可利用正確的ID來發(fā)出EncLResponse階段至目標側(cè),而目標側(cè)可利用正確的ID來發(fā)出EncLRequest階段至啟始器側(cè)。目標側(cè)記錄并執(zhí)行nb_transport_fw()函式。根據(jù)交易的接收,目標側(cè)通過利用如nb_transportJdw()函式呼叫來啟始具有適當ID的EncLRequest交易,并將其回送給啟始器,以發(fā)出信號至啟始器側(cè)來表示它已收到請求。對從啟始器送出的寫入指令而言,目標AT包裝器416以正確的ID來發(fā)送Begin_ Response交易至啟始器側(cè),以指示啟始器應(yīng)當送出數(shù)據(jù)。啟始器響應(yīng)地在交易對象指針上利用寫入數(shù)據(jù)來更新GP并以正確的ID來發(fā)送EncLResponse交易至目標。AT包裝器邏輯 416在交易對象指針上從GP擷取數(shù)據(jù)并傳送寫入數(shù)據(jù)與地址至無計時功能性模型410b的核心內(nèi)存。對從啟始器送出的讀取指令而言,目標AT包裝器416b從無計時功能性模型410b 的核心內(nèi)存讀取數(shù)據(jù)并直接地在交易對象指針上更新數(shù)據(jù)。目標AT包裝器416b利用對一啟始器的nb_transport_bw()函式呼叫來啟始帶有正確ID的Begin_response交易,其中此啟始器是在交易對象指針上從GP讀取數(shù)據(jù)并送出數(shù)據(jù)至無計時功能性模型410a的核心內(nèi)存。然后,目標側(cè)利用帶有正確ID的EncLResponse來結(jié)束交易。因此,AT包裝器416a、416b分別從無計時功能模型410a、410b來產(chǎn)生TL模型 420a、420b。關(guān)于AT通訊協(xié)議與要遵守的規(guī)則的詳細細節(jié),已為本領(lǐng)域習(xí)知技藝者所知且被解釋于OSCI TLM-2.0語言參考手冊中。圖4是繪示分別用來在TL層級和無計時功能性層級進行通訊的虛擬通訊連結(jié)450和460。從TL模型產(chǎn)生CA模型在各種不同的實施例中,周期精確交易器模塊(交易器)是通過CA總線來與TL包裝器邏輯模塊溝通以形成CA模型。簡而言之,交易器從AT或LT包裝器接收交易并從交易擷取酬載信息(例如地址、數(shù)據(jù)、字節(jié)致能、脈沖(burst)等)以及指令信息(例如Write_ Command,Read_Command)。交易器是設(shè)計來利用特定的周期精確總線協(xié)議(例如AXI協(xié)議) 來工作。交易器是基于寫入或讀取指令的一者來于總線上開始合適的周期。交易器是于總線上驅(qū)動所需的地址和控制信息,以啟始一周期以及寫入所需地址至總線上或等待所需的
14讀取數(shù)據(jù)到達。圖5是繪示具體利用TL包裝器51 來從TL模型520a產(chǎn)生CA模型530a 的方塊圖,其中TL包裝器51 可危LT包裝器31 或AT包裝器316a。在以下圖5的討論中,首先以LT及其相關(guān)的時序6為背景來進行討論,接著以AT及其相關(guān)的時序7 為背景來進行討論。雖然,特定的交易(例如突發(fā)交易(Burst Transaction)是討論如下, 應(yīng)了解的是其僅為非受限范例。圖5是繪示分別用來在TL和無計時功能性層級進行通訊的虛擬通訊連結(jié)550和560。在做為由插槽傳送的酬載的指標方面,這些虛擬通訊連結(jié)的操作類似于虛擬通訊連結(jié)350、360。從LT模型產(chǎn)生CA模型對于從簡略時脈(LT)包裝器51 至啟始器交易器53 的寫入_指令(Write_ Command)而言,交易層級(TL)包裝器51 ,在此為LT包裝器,制造帶有它從無計時功能性模型510a所收到的寫入信息的酬載。LT包裝器51 送出此交易至啟始器交易器53 的請求隊列534a。啟始器交易器53 擷取并譯碼從隊列53 而來的交易并驅(qū)動地址、數(shù)據(jù)、 控制信號于CA總線540上,以啟始寫入周期。在偵測寫入周期的開始的方面,CA模型530b的目標交易器532b是根據(jù)字節(jié)致能來擷取地址和數(shù)據(jù),并傳送此信息至利用寫入數(shù)據(jù)酬載來形成交易的交易器邏輯(未繪示于圖5中)。目標交易器532b將此交易置入請求隊列534b中。對于突發(fā)寫入(Burst Write)而言,目標交易器532b在形成交易前,會接著持續(xù)監(jiān)視數(shù)據(jù)總線,直到它接收到最后的數(shù)據(jù)。LT包裝器51 接受交易并送出寫入數(shù)據(jù)至無計時功能性模型510b。接著,LT 包裝器51 送出成功或失敗狀態(tài)指示至目標交易器532b。響應(yīng)被儲存于目標和啟始器的響應(yīng)隊列536b、536a中,分別針對通訊的返回方向。對于從簡略時脈(LT)包裝器51 至啟始器交易器53 的讀取_指令(Read_ Command)而言,LT包裝器51 制造帶有讀取地址、字節(jié)致能、突發(fā)長度(Burst Length)等的酬載,且將酬載置入啟始器請求隊列53 中。啟始器交易器擷取并譯碼從請求隊列53 而來的交易并驅(qū)動地址、控制信號于CA總線540上,以啟始讀取周期,使數(shù)據(jù)總線處于未驅(qū)動浮動狀態(tài)(Undriven Float State)。以圖6所繪示的AXI突發(fā)式寫入(Burst write)為例,啟始器交易器53 于ARADDR總線上驅(qū)動地址,將地址有效信號ARVALID標示(Assert) (高),且將地址準備信號ARREADY標示(低)。在偵測讀取周期的開始的方面,目標交易器532b擷取地址、字節(jié)致能和突發(fā)信息 (Burst ^formation),并制造交易。目標交易器532b將此交易置入由LT包裝器515b監(jiān)視的請求隊列534b中。LT包裝器51 是從請求隊列534b擷取交易及從目標的無計時功能性模型510b請求數(shù)據(jù)。然后,LT包裝器51 制造帶有從無計時功能性模型510b而來的數(shù)據(jù)的交易酬載,并將交易置入響應(yīng)隊列536b中,目標交易器532b從響應(yīng)隊列536b擷取交易并利用讀取數(shù)據(jù)來驅(qū)動總線來得到所需的突發(fā)長度,并在最后的讀取數(shù)據(jù)后來完成周期。無論讀取周期是否已開始,針對到達的讀取數(shù)據(jù),啟始器交易器53 會接著持續(xù)監(jiān)視數(shù)據(jù)總線。以圖6所繪示的AXI突發(fā)式寫入為例,啟始器交易器53 是根據(jù)信號 RLAST,RVALID以及RREADY的反標示(De-assert)(邏輯高)來偵測AXI突發(fā)式讀取周期的結(jié)束。啟始器交易器53 擷取它內(nèi)部緩沖器(未繪示于圖5中)中的所有讀取數(shù)據(jù),并于最后的數(shù)據(jù)被收到后來形成交易。啟始器交易器53 將被完成的交易送至響應(yīng)隊列536a。LT包裝器51 從響應(yīng)隊列536a譯碼交易來作為讀取指令,并從交易酬載擷取數(shù)據(jù),以及送出數(shù)據(jù)至無計時功能性模型510a。在圖6中,時間Tl是對應(yīng)至LT交易的開始。在時間T2和T12之間,根據(jù)AXI總線協(xié)議來驅(qū)動突發(fā)式數(shù)據(jù)于RDATA總線上。時間T13是對應(yīng)至LT交易的結(jié)束。從AT模型產(chǎn)生CA模型圖7是繪示利用AT協(xié)議的兩個管線化循序(In-order)交易的時序圖。對于從TL 包裝器51 ,在此例中為AT包裝器,而來的第一讀取指令而言,AT包裝器51 制造帶有讀取地址、字節(jié)致能、突發(fā)長度等的酬載,并利用ID來將酬載置入啟始器請求隊列53 中。啟始器交易器53 擷取并譯碼從請求隊列53 而來的交易,并利用交易的AXI總線PSP所包含的信息來啟始突發(fā)周期(Burst Cycle)。啟始器交易器53 是于ARADDR總線上來驅(qū)動地址,將地址有效信號ARVALID標示(高),且將地址準備信號AAEADY標示(低)。一旦啟始器交易器53 完成CA總線540上的讀取周期的啟始,啟始器交易器53 會送出信號至AT包裝器51 來通知EncLRequest階段。針對啟始器交易器53 所啟始的當前讀取周期的BegiruResponse階段,啟始器交易器53 會接著持續(xù)監(jiān)視總線。CA總線M0。其間,啟始器交易器在它的請求隊列53 中偵測第二待決交易(利用ID)。因為 AXI允許管線化讀取,啟始器交易器53 通過驅(qū)動相關(guān)的總線協(xié)議信號來啟始第二 AXI突發(fā)讀取周期,如以上所述。一但啟始器交易器53 在總線540上完成第二讀取周期的啟始, 啟始器交易器53 會送出信號至AT包裝器51 來通知EncLRequest階段。針對啟始器交易器53 所啟始的第二讀取周期的BegiruResponse階段,啟始器交易器53 會接著持續(xù)監(jiān)視總線。在偵測讀取周期的開始的方面,目標交易器532b擷取地址、字節(jié)致能和突發(fā)信息,并制造帶有ID的交易,此交易是儲存于請求隊列534b中。AT包裝器51 譯碼即將到來的交易并送出地址和字節(jié)致能信息至無計時功能性模型510b,以請求所需的數(shù)據(jù)。無計時功能性模型510b回送數(shù)據(jù)給AT包裝器51 ,AT包裝器51 是形成一返回交易(Return Transaction)并利用與第一讀取請求匹配的ID來將它送到響應(yīng)隊列536。當目標交易器進行等待來接收送至目標AT包裝器51 的第一讀取指令時,目標交易器532b偵測第二讀取周期的開始。目標交易器532b擷取地址、字節(jié)致能和突發(fā)信息, 制造帶有ID的交易并將交易儲存于請求隊列534b中。目標交易器532b在它的響應(yīng)隊列536b中偵測到對第一讀取請求的回應(yīng)為可用的 (Available)。目標交易器532b將此交易的ID與它的請求隊列534b中的第一讀取請求的 ID進行比對。如果ID互相匹配,目標交易器532b會利用從響應(yīng)隊列536b所接收的數(shù)據(jù)來開始驅(qū)動CA總線M0,并在最后的數(shù)據(jù)被驅(qū)動時來完成周期。啟始器交易器53 通過偵測RVALID和RREADY信號的標示(Assertion)來偵測第一請求的BegiruResponse階段。啟始器交易器也形成BegiruResponse交易并透過它的內(nèi)部響應(yīng)隊列536a以一 ID將它送出至AT包裝器515a,其中此ID是對應(yīng)至第一交易的請求ID。啟始器交易器53 接著針對讀取數(shù)據(jù)來持續(xù)監(jiān)視總線M0,直到周期結(jié)束,其中啟始器交易器53 是根據(jù)信號RLAST、RVALID以及RREADY的邏輯高位準的偵測來通知周期結(jié)束。啟始器交易器53 利用EncLResponse階段及與第一讀取請求匹配的ID來送出完整的交易至AT響應(yīng)隊列。AT包裝器51 將讀取指令譯碼,從交易酬載擷取數(shù)據(jù),比對ID以及送出已擷取的數(shù)據(jù)至無計時功能性模型510a。目標側(cè)的AT包裝器515b利用一 ID來將第二讀取交易譯碼以及送出地址和字節(jié)致能信息(address and byte enable information)至無計時功能性模型510b,無計時功能性模型510會回送數(shù)據(jù)給AT包裝器51恥。AT包裝器51 形成是形成一返回交易并利用與第二讀取匹配的ID來將此交易送到響應(yīng)隊列536。目標交易器532b在它的響應(yīng)隊列 536b中偵測到對第二讀取請求的回應(yīng)為可用的。目標交易器532b將此交易的ID與它的請求隊列534b中的第二讀取請求的ID進行比對。根據(jù)比對,目標交易器532b會利用從響應(yīng)隊列536b所接收的數(shù)據(jù)來開始驅(qū)動CA總線M0,并在最后的數(shù)據(jù)被驅(qū)動時來完成周期。一但啟始器交易器53 偵測到RVALID和RREADY信號的標示,啟始器交易器53 就會偵測到第二BegiruResponse階段。啟始器交易器53 將此交易的ID與請求隊列53 中的待決請求交易進行比對,并形成BegiruResponse交易,以透過內(nèi)部響應(yīng)隊列536a來利用一 ID將此Begin_Response交易送出至AT包裝器51 ,其中此ID是與交易的請求ID匹配。啟始器交易器53 持續(xù)地針對讀取數(shù)據(jù)來持續(xù)監(jiān)視總線M0,直到周期結(jié)束,其中當啟始器交易器53 偵測到信號RLAST、RVALID以及RREADY的邏輯高位準,啟始器交易器53 即通知周期結(jié)束。啟始器交易器利用EncLResponse階段及與第二讀取請求匹配的ID來送出完整的交易至響應(yīng)隊列536a。AT包裝器51 將讀取指令譯碼,從交易酬載擷取數(shù)據(jù),比對ID以及送出數(shù)據(jù)至無計時功能性模型510a?!敖灰灼鳌?啟始器或目標)為一種模型,此模型是與利用交易來與AT(或LT)溝通的AT包裝器515(或LT包裝器)分離。在實施例中,交易器的請求和響應(yīng)隊列對包裝器而言不是可用的,而且對包裝器而言,只有從交易器的隊列送出的交易才為可用的。在圖7中,Tl和T3是分別對應(yīng)至第一交易和第二交易的請求階段的開始。時間 T4和T9是分別對應(yīng)至第一交易的響應(yīng)階段的開始與結(jié)束。在時間T4和T9之間,在CA總線上可讀取到突發(fā)數(shù)據(jù)。時間TlO和T12是分別對應(yīng)至第二交易的響應(yīng)階段的開始與結(jié)束。各種不同的實施例提供給設(shè)計者不同的益處。針對不同的應(yīng)用來將接續(xù)的計時層級附加于單一功能性核心上,以重復(fù)使用單一功能性核心(例如執(zhí)行裝置的原始算法的無計時功能性模型),如此可使軟件開發(fā)比以前所可能的更早,例如利用如上述圖3所示的LT 技術(shù)。利用如上述圖4所示的AT技術(shù)可使較早的硬件架構(gòu)探索實現(xiàn)。另外,改善的RTL硬件功能性驗證是以各種不同的實施例來實現(xiàn)。如上所述,在 RTL階段,功能性驗證所面對的困難之一為模擬的速度,在理想的情況下,此速度約為每秒 100-200個周期。克服此緩慢模擬速度的一種方法為只讓少數(shù)的系統(tǒng)方塊位于RTL層級,而此方法是使用于LT/AT包裝器來封裝的無計時ESL模型之時,以及針對其余方塊與周期精確交易器進行溝通之時。因為功能性核心(例如無計時ESL模型)是位于高層級,它可用每秒百萬個周期來運行。即使LT/AT包裝器和周期精確交易器拖慢模型的整體速度,它仍可以每秒數(shù)千個周期來運行,以引導(dǎo)在RTL中進行百萬個驗證周期。在實施例中,無計時ESL模型核心是有益地以零(已計時)事件來于交易層級運行,且不需返回事件排程器。因此,這種最終由高層級無計時功能性模型所導(dǎo)出的對各種不同層級上模型的分類提供了多個優(yōu)點。圖8是繪示根據(jù)一實施例的計算機系統(tǒng)800的功能性組件的示意圖。計算機系統(tǒng) 800可包耦接至總線806的通訊接口 814。通訊接口 814提供雙向的通訊于多計算器系統(tǒng)(Multiple Computer System) 800中。各別計算機系統(tǒng)800的通訊接口 814是傳送與接收電子的、電磁的或光學(xué)的信號,這些信號包含有可呈現(xiàn)各種形式的信號信息的數(shù)據(jù)串流,這些信號信息是例如指令、訊息及數(shù)據(jù)。通訊連結(jié)815將一個計算機系統(tǒng)800與另一個計算機系統(tǒng)800連接。例如,通訊連結(jié)815可為局域網(wǎng)絡(luò)(Local Area Network ;LAN),在此例中通訊接口 814可為LAN卡,或者通訊連結(jié)可為公眾交換電話網(wǎng)絡(luò)(Public Switch Telephony Network ;PSTN),在此例中通訊接口 814可為整體服務(wù)數(shù)字網(wǎng)絡(luò)(Integrated Services Digital Network ; I SDN)卡或調(diào)制解調(diào)器。計算機系統(tǒng)800可透過其各別的通訊連結(jié)815與通訊接口 814來傳送和接收包含有程序,例如應(yīng)用碼的訊息(messages)、數(shù)據(jù)及指令。被接收的程序代碼可于它被各別的處理器807接收時來被各別的處理器807執(zhí)行,且/或被儲存于儲存裝置810中或其它相關(guān)的非揮發(fā)性媒體來于稍后執(zhí)行。在實施例中,計算機系統(tǒng)800與數(shù)據(jù)儲存系統(tǒng)831 —起運行,此數(shù)據(jù)儲存系統(tǒng)831 是例如包含有可由計算機系統(tǒng)800快速存取的數(shù)據(jù)庫832的數(shù)據(jù)儲存系統(tǒng)831。計算機系統(tǒng)800是透過數(shù)據(jù)接口 833來與數(shù)據(jù)儲存系統(tǒng)831溝通。耦接至總線806的數(shù)據(jù)接口 833 是傳送與接收電子的、電磁的或光學(xué)的信號,這些信號包含有可呈現(xiàn)各種形式的信號信息的數(shù)據(jù)串流,這些信號信息是例如指令、訊息及數(shù)據(jù)。在本發(fā)明的實施例中,數(shù)據(jù)接口 833 的功能可由通訊接口 814執(zhí)行。計算機系統(tǒng)800包含總線806或其它通訊機制來進行指令、訊息和數(shù)據(jù)整體信息的通訊,以及與總線806耦接的一或多個處理器807。計算機系統(tǒng)800也包含耦接至總線的主存儲器808,主存儲器808是例如隨機存取內(nèi)存(Random Access Memory ;RAM)或其它動態(tài)儲存裝置,用來儲存處理器807將執(zhí)行的動態(tài)數(shù)據(jù)和指令。在處理器807處理指令的期間,主存儲器808也可用來儲存暫存數(shù)據(jù)(Temporary Data),例如變量或其它的中間信息 (Intermediate Information)。計算機系統(tǒng)800可進一步包含耦接至總線806的只讀存儲器(Read Only Memory ; ROM) 809或其它的靜態(tài)儲存裝置,以儲存處理器807所用的靜態(tài)數(shù)據(jù)和指令。儲存裝置810, 例如磁盤或光盤,也可被提供來耦接至總線806,以儲存處理器807所用的靜態(tài)數(shù)據(jù)和指令。計算機系統(tǒng)800可透過總線806來耦接至顯示裝置811,例如但不限定顯示監(jiān)視器,用來對使用者顯示信息。輸入裝置812,例如文數(shù)字(Alphanumeric)或其它鍵,耦接至總線806,用以對處理器807進行信息和指令選擇的通訊。在實施例中,個別的(individual)處理器807是執(zhí)行儲存于主存儲器808中的一或多個指令的一或多個序列,而個別的計算機系統(tǒng)800通過此處理器807來執(zhí)行具體的操作。這樣的指令可被讀取入主存儲器808或儲存裝置810中。主存儲器808所包含的指令序列的執(zhí)行使得處理器807進行此處所述的流程。例如,在執(zhí)行這樣的指令時,可使锝處理器807進行如圖2所示的流程200。在其它的實施例中,固接式(hard-wired)電路可被用來替代軟件指令或與軟件指令合并來完成實施例或?qū)嵤├臉?gòu)件,因此本發(fā)明的實施例不受限于硬件電路和/或軟件的任何特定結(jié)合。如此處所使用的用語“計算機可讀取儲存媒體”,是指任何可提供信息或可被處理器807所使用的實體儲存媒體。這樣的媒體可利用很多形式,包含但不限定非揮發(fā)性和揮發(fā)性媒體。非揮發(fā)性媒體是如可于無電力時保存信息的媒體,包含例如只讀存儲器809、只讀記憶光盤(CD-ROM)、可重復(fù)錄寫光盤(CD-RW)、只讀數(shù)字視頻光盤(DVD-ROM)、直接存取數(shù)字視頻光盤(DVD-RAM)、可重復(fù)錄寫數(shù)字視訊光盤(DVD-RW)、藍光光盤(BD-ROM)以及閃存、磁帶以及磁盤。揮發(fā)性媒體是如無法于無電力時保存信息的媒體,包含例如主存儲器 808、高速緩存或其它緩存器。 雖然本發(fā)明已以數(shù)個實施例揭露如上,然其并非用以限定本發(fā)明,在本發(fā)明所屬技術(shù)領(lǐng)域中任何具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當可作各種的更動與潤飾,因此本發(fā)明的專利保護范圍須視所附的權(quán)利要求書所界定的范圍為準。
權(quán)利要求
1.一種產(chǎn)生系統(tǒng)模型的方法,其特征在于,包含于一無計時功能層級上的被計算機所實施的一無計時功能性模型中,模型化系統(tǒng)單芯片的一系統(tǒng)方塊;使用該無計時功能性模型于一交易層級上產(chǎn)生該系統(tǒng)方塊的被計算機所實施的一交易層級模型;使用該交易層級模型于一周期精確層級上產(chǎn)生該系統(tǒng)方塊的被計算機所實施的一周期精確模型;以及通過操作一處理器來執(zhí)行使用該交易層級模型和該周期精確模型其中至少一者的一軟件程序,來驗證該系統(tǒng)單芯片的功能性。
2.根據(jù)權(quán)利要求1所述的產(chǎn)生系統(tǒng)模型的方法,其特征在于,該無計時功能性模型是由一程序語言來實施,該程序語言是選自由C語言以及C++語言所組成的一群組。
3.根據(jù)權(quán)利要求1所述的產(chǎn)生系統(tǒng)模型的方法,其特征在于,該交易層級模型為一簡略計時模型。
4.根據(jù)權(quán)利要求1所述的產(chǎn)生系統(tǒng)模型的方法,其特征在于,該交易層級模型為一近似計時模型。
5.根據(jù)權(quán)利要求1所述的產(chǎn)生系統(tǒng)模型的方法,其特征在于,產(chǎn)生該交易層級模型的步驟包含從該無計時功能性模型擷取一數(shù)據(jù);將該數(shù)據(jù)封裝入一通用酬載;以及于該交易層級上從該通用酬載產(chǎn)生一交易對象。
6.根據(jù)權(quán)利要求1所述的產(chǎn)生系統(tǒng)模型的方法,其特征在于,產(chǎn)生該交易層級模型的步驟包含封裝該無計時功能性模型于一包裝器邏輯模塊中,其中該包裝器邏輯模塊是設(shè)置來修改該無計時功能性模型與一外部內(nèi)存模塊間的一接口;產(chǎn)生該周期精確模型的步驟包含封裝該交易層級模型于一交易器模塊中,其中該交易器模塊中是設(shè)置來與該包裝器邏輯模塊及一周期精確總線相互溝通。
7.一種傳輸數(shù)據(jù)的方法,其特征在于,包含于一無計時功能層級上的一第一無計時功能性模型與一第二無計時功能性模型中,模型化一系統(tǒng)單芯片的至少一系統(tǒng)方塊;分別使用該第一無計時功能性模型與該第二無計時功能性模型于一交易層級上產(chǎn)生該至少一系統(tǒng)方塊的一第一交易層級模型與一第二交易層級模型;分別利用該第一交易層級模型與該第二交易層級模型于一周期精確層級上,產(chǎn)生該至少一系統(tǒng)方塊的一第一周期精確模型和一第二周期精確模型;從該第一無計時功能性模型傳送一數(shù)據(jù)至該第一周期精確模型; 透過一周期精確總線從該第一周期精確模型傳送該數(shù)據(jù)至該第二周期精確模型;以及從該第二周期精確模型傳送該數(shù)據(jù)至該第二無計時功能性模型。
8.根據(jù)權(quán)利要求7所述的傳輸數(shù)據(jù)的方法,其特征在于,該第一無計時功能性模型和該第二無計時功能性模型是由一程序語言來實施,該程序語言是選自由C語言以及C++語言所組成的一群組。
9.根據(jù)權(quán)利要求7所述的傳輸數(shù)據(jù)的方法,其特征在于,產(chǎn)生該第一交易層級模型的步驟包含從該第一無計時功能性模型擷取一數(shù)據(jù);將該數(shù)據(jù)封裝入一通用酬載;以及于該交易層級上從該通用酬載產(chǎn)生一交易對象;產(chǎn)生該第一周期精確模型的步驟包含封裝該第一交易層級模型于一第一交易器模塊中,其中該第一交易器模塊是設(shè)置來與該第一交易層級模型及該周期精確總線相互溝通;從該第一無計時功能性模型傳送數(shù)據(jù)至該第一周期精確模型的步驟包含從該第一交易層級模型送出該交易對象至該第一交易模塊;以及擷取一酬載,該酬載包含位于該第一交易模塊的數(shù)據(jù);透過該周期精確總線來傳輸數(shù)據(jù)的步驟包含在該周期精確總線上驅(qū)動該酬載; 從該第二周期精確模型傳送數(shù)據(jù)至該第二無計時功能性模型的步驟包含于該第二周期精確模型的一第二交易模塊中擷取該酬載;將該酬載送出至該第二交易層級模型;利用由該酬載所指定的地址來從一內(nèi)存擷取該酬載中的該數(shù)據(jù);以及將該數(shù)據(jù)儲存于該第二無計時功能性模型中。
10. 一種產(chǎn)生系統(tǒng)模型的方法,其特征在于,包含 產(chǎn)生一系統(tǒng)單芯片的一系統(tǒng)方塊的一交易層級模型于一交易層級上; 產(chǎn)生該系統(tǒng)方塊的一無計時功能性模型于一無計時功能層級上,該無計時功能性模型是設(shè)置來被該交易層級模型所調(diào)用;以及利用該交易層級模型來產(chǎn)生該系統(tǒng)方塊的一周期精確模型于一周期精確層級上。
全文摘要
本發(fā)明提供一種產(chǎn)生系統(tǒng)模型的方法與在此系統(tǒng)模型中傳輸數(shù)據(jù)的方法。在此產(chǎn)生系統(tǒng)模型的方法中,首先于模型化系統(tǒng)單芯片的系統(tǒng)方塊為無計時功能性模型于無計時功能層級上。接著,使用無計時功能性模型于交易層級上來產(chǎn)生交易層級模型。然后,使用交易層級模型于周期精確層級上來產(chǎn)生周期精確模型。接著,利用交易層級模型和周期精確模型中的至少一者來驗證系統(tǒng)單芯片的功能性。無計時功能性模型亦可設(shè)置來被交易層級模型所調(diào)用。在此傳輸數(shù)據(jù)的方法中,首先從第一無計時功能性模型傳送數(shù)據(jù)至第一周期精確模型。接著,從第一周期精確模型透過周期精確總線來傳送數(shù)據(jù)至第二周期精確模型。然后,從第二周期精確模型傳送數(shù)據(jù)至第二無計時功能性模型。
文檔編號G06F17/50GK102339343SQ201110093488
公開日2012年2月1日 申請日期2011年4月12日 優(yōu)先權(quán)日2010年7月19日
發(fā)明者阿肖克·梅塔 申請人:臺灣積體電路制造股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
武平县| 余姚市| 洛扎县| 勐海县| 马关县| 皮山县| 枣阳市| 禄劝| 额尔古纳市| 巴楚县| 贵州省| 桐城市| 余江县| 临清市| 沁阳市| 贵港市| 灵璧县| 青海省| 汾西县| 西和县| 微山县| 闸北区| 荔浦县| 灵丘县| 汉寿县| 富阳市| 桃江县| 民权县| 贺兰县| 新乐市| 同江市| 榆树市| 绥宁县| 平顶山市| 襄城县| 喀什市| 瓦房店市| 开封县| 万山特区| 柘荣县| 宁远县|