亚洲国产成人,色呦呦内射午夜,无码一级片,无码人妻少妇色欲AV一区二区

<samp id="jg8hh"></samp>

<p id="jg8hh"></p><delect id="jg8hh"><em id="jg8hh"><blockquote id="jg8hh"></blockquote></em></delect><acronym id="jg8hh"><dd id="jg8hh"></dd></acronym><button id="jg8hh"><dd id="jg8hh"><acronym id="jg8hh"></acronym></dd></button><samp id="jg8hh"><em id="jg8hh"><blockquote id="jg8hh"></blockquote></em></samp>

<p id="jg8hh"></p>

<samp id="jg8hh"><legend id="jg8hh"></legend></samp>
<samp id="jg8hh"><legend id="jg8hh"><samp id="jg8hh"></samp></legend></samp>

<samp id="jg8hh"></samp>

<p id="jg8hh"></p><acronym id="jg8hh"></acronym><p id="jg8hh"><dd id="jg8hh"><acronym id="jg8hh"></acronym></dd></p><p id="jg8hh"></p>

<p id="jg8hh"></p><delect id="jg8hh"><legend id="jg8hh"><var id="jg8hh"></var></legend></delect><button id="jg8hh"><listing id="jg8hh"><i id="jg8hh"></i></listing></button>
<delect id="jg8hh"><legend id="jg8hh"><var id="jg8hh"></var></legend></delect>

集成建模與仿真環(huán)境加速芯片設(shè)計過程

發(fā)布時間:2024-08-16
摘要:新型復(fù)雜的系統(tǒng)集成電路芯片(soc)常常應(yīng)用于網(wǎng)絡(luò)環(huán)境中,因此需要對其所處網(wǎng)絡(luò)環(huán)境建模與仿真,這意味著要能夠?qū)π酒瑫r進行網(wǎng)絡(luò)建模和傳統(tǒng)的系統(tǒng)級的建模。本論文介紹了一種時序的建模與仿真方法,它集成了系統(tǒng)建模語言(systemc)和網(wǎng)絡(luò)仿真環(huán)境(ns-2),使用這種集成建模與仿真環(huán)境可以顯著地加速具有網(wǎng)絡(luò)通信需求的芯片的設(shè)計過程。
1 引言
現(xiàn)代系統(tǒng)集成電路芯片(soc)對通信能力的需求逐漸增加,通常要求設(shè)備能隨意接人、可自由移動或者在非友好環(huán)境下工作或可接人周圍網(wǎng)絡(luò)環(huán)境。對于集成電路芯片而言,由于片上總線架構(gòu)對其性能有重要影響,此時系統(tǒng)的通信議題顯得至關(guān)重要。根據(jù)半導(dǎo)體技術(shù)藍圖的報告[1],對于65nm以下的技術(shù)而言,由于電源和時延的問題,在復(fù)雜度高的芯片上要保持全局時鐘的有效同步是不可能的。通常采用的是全局異步、局部同步的辦法,即gals[2],這時不同的時鐘模塊之間就像網(wǎng)絡(luò)里不同的計算機之間一樣通信,由此而引入了面向網(wǎng)絡(luò)的片上架構(gòu)。
因此對具有網(wǎng)絡(luò)通信需求的系統(tǒng)集成電路進行建模時,可以考慮:系統(tǒng)的一部分在傳統(tǒng)的系統(tǒng)級、面向硬件的環(huán)境里建模,而網(wǎng)絡(luò)應(yīng)用部分則在網(wǎng)絡(luò)建模工具里描述。通過這種方式,可以獲得集成電路系統(tǒng)在與網(wǎng)絡(luò)環(huán)境交互時的初步反饋,并在下一改進級別上對系統(tǒng)模型進行改善。但是,這么做必須首先保證網(wǎng)絡(luò)仿真器和系統(tǒng)仿真器在時間上*同步,即兩個仿真器有相同的時間觀念,并且它們之間能夠以雙工方式交互數(shù)據(jù)。與*通過系統(tǒng)級描述的模型相比,只要同步負荷不重,新的仿真方式將可以加速系統(tǒng)建模。
另一個議題是仿真器之間的數(shù)據(jù)交互格式。網(wǎng)絡(luò)仿真器通常使用抽象數(shù)據(jù)類型來描述包、幀、消息,而不是使用數(shù)據(jù)的比特模式。集成電路則至少在低改進級上需要比特數(shù)據(jù)接口,這樣就有必要增加一些轉(zhuǎn)換接口。
使用同時具備網(wǎng)絡(luò)仿真和集成電路系統(tǒng)建模環(huán)境的工具可以顯著地加速網(wǎng)絡(luò)設(shè)備的設(shè)計,并且可以在短時間內(nèi)產(chǎn)生相應(yīng)的測試臺。使用這種工具的另一個好處是,它可以驗證、校驗集成電路芯片的通信結(jié)構(gòu),從而使其協(xié)議棧達到網(wǎng)絡(luò)仿真器高層描述的參考協(xié)議棧的水準。
本文介紹了以下兩種仿真器的集成仿真框架[12]:系統(tǒng)級仿真器systemc[4],網(wǎng)絡(luò)仿真器ns-2[5]為了提供良好的效率,集成在內(nèi)核級上進行,它支持仿真器間的時序同步。
2 仿真環(huán)境
集成不同的仿真環(huán)境在計算機輔助設(shè)計領(lǐng)域即是的協(xié)仿真議題。文獻[7,8]提出了幾種不同的協(xié)仿真框架。它們之間的主要區(qū)別在于協(xié)仿真器所針對的抽象級別(事務(wù)級、指令級、rtl級)和仿真器間同步所采用的通信原語。
文獻凹利用matlab來對整個系統(tǒng)進行建模(包括網(wǎng)絡(luò)和硬件),然而,這種模型不能直接用來生成相應(yīng)的硬件。文朗10)則*利用c++來對一個adsl調(diào)制解調(diào)器建模,這種方式使驗證設(shè)備時要模擬復(fù)雜的網(wǎng)絡(luò)環(huán)境變得很困難。文獻[11)則直接將設(shè)備與真實的網(wǎng)絡(luò)相連,沒有用任何網(wǎng)絡(luò)模型。以上的解決方案都沒有有效地集成系統(tǒng)級仿真和網(wǎng)絡(luò)仿真。
本文介紹的方法依賴于兩個的仿真環(huán)境:systemc和ns-2。systemc能夠在不同的抽象級別用c++庫來搭建系統(tǒng)模型,ns—2則是一種非常流行的網(wǎng)絡(luò)協(xié)議和算法分析仿真工具。ns—2基于兩種編程語言:c++和otcl,后者使得仿真內(nèi)核(用c++語言而寫)和仿真配置得以分離。
所提及的兩個仿真器都是基于事件驅(qū)動引擎的:它們以非遞減時序的方式來安排事件的執(zhí)行。所不同的是事件的語義。在systemc里面,事件是和硬件相關(guān)實體(比如信號、端口)相的。systemc支持時鐘純粹是概念性的,它僅被用來定義事件的時間間隔。在ns—2里,事件是和通信信道的異步變化(比如發(fā)送或接收一個包)相關(guān)聯(lián)的。
2.1 仿真器交互
在設(shè)計集成仿真框架時,有兩個主要議題影響集成方案并且定義仿真的語義。首先,也是zui重要的是,仿真器如何緊密地協(xié)同工作。解決方案包括在仿真器間建立通信機制(直接消息傳遞或共享內(nèi)存接口)直至*的系統(tǒng)內(nèi)核集成。其次,仿真器在哪一個抽象級上進行交互。解決方案從包級別的接口到低級上的信令而不盡相同。
要解決上述兩個議題,首先需要對ns—2和systemc的特性有深入的了解。這兩個仿真器都將目標描述視作是一個分層次的實體,其層次等級與不同的抽象層和仿真中的數(shù)據(jù)操縱粒度相。 ns—2將網(wǎng)絡(luò)描述視作是分層的,類似協(xié)議棧的實體,它包括四個不同等級的實體:鏈路、節(jié)點、代理和應(yīng)用。這和協(xié)議棧中的數(shù)據(jù)鏈路、網(wǎng)絡(luò)、傳輸和應(yīng)用層各自相。特別地,代理代表產(chǎn)生和消費網(wǎng)絡(luò)層的包的終端,并且,代理可以對傳輸協(xié)議原語提供支持。在systemc里,抽象層和初始規(guī)范的精煉有關(guān),本文直接以傳統(tǒng)的協(xié)議層來標識。
在仿真集成電路網(wǎng)絡(luò)應(yīng)用系統(tǒng)時,zui直接的集成方式,這里,ns—2的代理與systemc的網(wǎng)絡(luò)層相互通信。這種方案只強調(diào)兩個層之間的消息交互以及一些消息轉(zhuǎn)換接口,但是,系統(tǒng)間的任何同步都需要額外的消息通過用戶api接口來傳遞,這使得通信負荷過重,而且,連續(xù)的時間同步并不容易達到,因為此時時間都是由系統(tǒng)內(nèi)核管理的,要獲得時間信息也就意味著要與本地的內(nèi)核進行交互。
一種在系統(tǒng)內(nèi)核級上基于消息傳遞的集成方案。這種方案看起來似乎更加有效,因為消息交互于系統(tǒng)內(nèi)核之間。但是如圖中分離的兩條時間軸所示,這種方案不能解決時間自動同步的問題。
本文所提出的方案。兩個內(nèi)核緊密結(jié)合在一起(注意zui外面的虛線框)。僅管仍是基于消息傳遞的,但是相關(guān)仿真時間的同步變得更加容易,這種方案比前述兩種方案更加。
3 內(nèi)核同步
保持仿真器間在時間上的同步是非常重要的。事實上,要保證每個仿真器里的仿真時間的一致性是比較容易的,難點在于當仿真器間數(shù)據(jù)交互時也要保證時間上的一致性。下面將介紹這個問題相關(guān)的實現(xiàn)細節(jié)。
3.1 基本時間同步
兩個仿真器之間通過周期性交互信息來保持全局時間的一致性。在執(zhí)行時,擁有較小時間的仿真器優(yōu)先執(zhí)行,此時另一仿真器則置為阻塞狀態(tài)。
仿真時間的同步的偽代碼。啟動同步的仿真器首先執(zhí)行第2行的初始化工作,之后從遠端的另一仿真內(nèi)核得到仿真時間tn(第3行),一旦獲得tk2,它將tk2與本地的仿真時間tk1,作比較(第4行),如果本地時間小于遠端的時間,說明仿真器當前滯后了,于是當前處于就緒狀態(tài)的事件先被執(zhí)行(第5行)。而后,調(diào)度隊列里下一事件對應(yīng)的時間tnext k1披發(fā)送到遠端的仿真器以便于同步(第6行)。相反,如果仿真器當前時間比遠端時間大,則仿真器將當前仿真時間tk1發(fā)送到另一仿真器,而后掛起(第7行)。以上操作在整個仿真期間重復(fù)執(zhí)行(第8行)。
3.2 處理數(shù)據(jù)交互
同步方案已經(jīng)可以正常工作,但是在大多數(shù)情況下,仿真器間需要數(shù)據(jù)交互,而數(shù)據(jù)序列的時間也必須保持一致性。這就意味著要修改內(nèi)核的數(shù)據(jù)結(jié)構(gòu),使得事件和與事件相關(guān)的數(shù)據(jù)相分離。由于ns-2和systemc都是基于事件驅(qū)動的,因而它們的結(jié)構(gòu)都比較典型:具備一個傳統(tǒng)的就緒隊列,這個隊列里是準備就緒、可以執(zhí)行的事件,調(diào)度器會以時序上非遞減的方式,從這個隊列里挑選出相應(yīng)事件來執(zhí)行。
同步中的五個基本實體。兩個仿真器都擁有一個等待隊列,該隊列里包含了正在等待數(shù)據(jù)條件來驅(qū)動的那些事件,這與傳統(tǒng)操作系統(tǒng)里的方案很相似:就緒進程和等待一些事件完成(比如i/o請求,資源變?yōu)榭臻e)的進程是分開的。
進程隊列外覆器是就緒隊列和等待隊列與內(nèi)核的界面接口。然而,進程隊列外覆器對等待隊列的處理與對另外兩個數(shù)據(jù)交互實體的操作是緊密相關(guān)的。當從通信信道接收到一個數(shù)據(jù)的時候,數(shù)據(jù)隊列管理器便將它置人數(shù)據(jù)隊列里。每一個目標實體都有一個自己的數(shù)據(jù)隊列。等待隊列里的進程正在等待一些數(shù)據(jù)相關(guān)條件的觸發(fā)。所以,對于每一個新收到的數(shù)據(jù)元,進程隊列外覆器在等待隊列里查找那些正在等待相關(guān)事件的進程,這些事件即是受新數(shù)據(jù)元影響的數(shù)據(jù)隊列里的事件。這樣,這些進程將進入到就緒隊列,而它們的時間標記也會更新為新數(shù)據(jù)元的時間標記。從以上討論不難得出,將仿真器間交互的數(shù)據(jù)用一系列信息來封裝是非常必要的。
3.3 用戶程式范例
前面所提到的協(xié)議有幾個地方值得注意:1)數(shù)據(jù)交互相關(guān)實體的標識(ns-2里的代理和systemc里的模塊);2)發(fā)送實體對數(shù)據(jù)的時間標記。這些信息都封裝在消息里面。消息由兩個內(nèi)核以對用戶透明的方式來組裝。在ns-2側(cè),需要添加一個新的類:systemc,其定義如下:
其中的recv()函數(shù)允許ns-2里的對象傳遞一個數(shù)據(jù)包給內(nèi)核(以正常的通過ns-2節(jié)點傳遞方式),這個數(shù)據(jù)包同時也必須傳遞給systemc的以receiver標識的那個進程。布爾值state使得內(nèi)核可以知道數(shù)據(jù)包當前正準備傳遞給systemc。通過以上信息,ns-2內(nèi)核就能夠組裝那些需要發(fā)送給systemc的消息。以ns—2里的標準udp代理為例,為了能與systemc通信,必須按如下修改:
無論任何時候,只要ns-2收到一個數(shù)據(jù)消息,內(nèi)核就調(diào)用recv0函數(shù)來獲得一個包,表面上看起來,這個包就像是從其它ns-2代理發(fā)過來的一樣。
在systemc側(cè),為了允許用戶向ns-2對象接收或發(fā)送一個數(shù)據(jù)包,需要添加新的端口ns_in和ns_out。它們從類模板sc_in和sc_out衍變而來,并且通過兩個函數(shù)read()和write()來管理,這兩個函數(shù)是通過擴展標準的管理sc_n和sc_out的函數(shù)而來的。新的端口實際是執(zhí)行了文獻[7]里提到的“協(xié)仿真外部端口”的概念。所以,systemc里能與ns-2進行雙工通信的進程按如下方式定義:
無論何時,只要systemc內(nèi)核接收到一個數(shù)據(jù)消息,在接收消息的這個時間點上,內(nèi)核會在消息里的進程的ns_in端口上產(chǎn)生一個事件,這是通過將包到端口來完成的。由此將會喚醒systemc里正在等待這個包的進程,對這個進程而言,這個包就像是systemc里其它進程發(fā)送的一樣。對應(yīng)地,無論何時,當systemc進程寫一個包到ns_out端口時,write()函數(shù)會將包寫到內(nèi)核監(jiān)視的緩沖區(qū)里。
以上所述的方法有兩個主要優(yōu)點。*,ns-2和systemc的內(nèi)核仍使用它們各自zui初的原語(recv()方法和將值到一個端口)來喚醒對象和進程。通過這種方法,不需要額外的等待隊列。第二,ns-2的對象和systemc的進程交互數(shù)據(jù)時都要通過對通信信道負責(zé)的系統(tǒng)內(nèi)核。這樣,除了必要的喚醒對象或進程去監(jiān)視信道的事件外,不需要產(chǎn)生其它事件。這些都增強了協(xié)仿真的性能。
3.4 為同步而進行的內(nèi)核擴展
內(nèi)核為了同步所需執(zhí)行的偽代碼。下標k1指當前正在執(zhí)行代碼的內(nèi)核,k2指另一內(nèi)核。為了協(xié)作,兩個內(nèi)核都作了必要的修改。
啟動進程的仿真器首先執(zhí)行初始化工作(第2行),主同步程序(第3—22行)圍繞兩個仿真器間信道上消息的接收(第4行)而執(zhí)行。任何時候,一旦收到一條消息,首先檢查它是不是數(shù)據(jù)消息類型,如果是,則如同上節(jié)3.3里所描述的那樣,調(diào)用ns—2接收器或systemc的recv()函數(shù)(第6.7行)。
然后,提取出遠端事件的時間標記,并將它和本地事件時間標記tk1相比較(第8、9行)。第10—18行管理本地隊列里所有的滯后于tk2的事件。如果有一事件tk2需要傳輸數(shù)據(jù)(第13行),則在時間tk1產(chǎn)生一條消息mk1,并填人相應(yīng)的數(shù)據(jù)域dk1和遠端接收者j(第14行),并且用一標識符記下當前條件以備后續(xù)使用(第15行)。第11—17行的do-while循環(huán)使得內(nèi)核分別處理在同一仿真時間上的不同事件。當10—18行的循環(huán)退出時,需要向另一內(nèi)核發(fā)送消息。如果前面標識符是真(第19行),內(nèi)核就產(chǎn)生一個數(shù)據(jù)消息,否則產(chǎn)生時間消息,當消息就緒后就將它發(fā)送到另一內(nèi)核。zui后,值得注意的是時序同步過程在代碼中仍然可辨,只是已經(jīng)緊密融合于所有同步代碼了。
4 總結(jié)
本文介紹了一種對soc芯片進行建模與仿真的設(shè)計環(huán)境。這種環(huán)境集成了systemc和ns-2,并且在時序上保持同步。通過的時間同步算法,兩個內(nèi)核以消息傳遞的方式集成在一起,其中ns-2用來建模網(wǎng)絡(luò)環(huán)境,systemc用來建模系統(tǒng)硬件部分。使用這種集成建模與仿真環(huán)境可以顯著加速具有網(wǎng)絡(luò)通信需求的芯片的設(shè)計過程。(文章來源:上海交通大學(xué)現(xiàn)代通信研究所)
上一個:液體溫度控制的功能及使用方法,看完漲知識
下一個:VGG系列美國VERSA止回閥的安裝方法與工作原理

測試儀器的主要構(gòu)成及發(fā)展形勢
LWQ-250氣體渦輪流量計使用方法
北方地區(qū)應(yīng)做好樹木防寒準備
電腦小白如何買臺式電腦的,如何選購臺式電腦
哪些樹種不宜混栽?
茶園灌溉指標
筆記本電腦怎么截屏幕全圖(筆記本怎么截屏全圖)
自動氣象站制造廠家選風(fēng)途
schunk碳刷,德國schunk碳刷,schunk碳刷怎么用什么是碳刷
編碼器是工業(yè)自動化領(lǐng)域中不可缺少的關(guān)鍵元件嗎?