1. 程式人生 > >SystemC簡化模擬引擎簡介

SystemC簡化模擬引擎簡介

 以下簡化的流程圖說明了SystemC模擬核心的操作流程。

首先,如前面“modules”中所討論的那樣進行詳細說明。 在elab過程中,構建SystemC模組並建立各種模擬引數。 這個elab階段之後是對sc_start()的呼叫,它呼叫模擬核心。 此呼叫開始初始化階段。 需要啟動在elab期間定義的程序(例如,SC_THREAD程序)。 在初始化階段,所有程序最初都放在就緒池中。 定義:只要可以執行,程序就會準備就緒。

我們有時會說程序被放入準備執行的程序池中。 下圖描繪了程序和事件池。

然後,模擬進入評估階段。通過將它們指定為執行和呼叫,從就緒池中隨機地取出一個個程序。每個程序程一直執行,直到它完成(例如,通過return)或暫停(例如,呼叫wait())。
在執行期間,程序可以呼叫立即事件通知(即,event.notify())並且可能使一個或多個等待程序處於就緒狀態。如上圖中的E1-E4所示,還可以生成延遲或定時事件通知。已完成的程序將被丟棄。暫停的程序被放入等待池中。模擬繼續進行,直到沒有更多程序準備好執行。

此時,執行將退出上圖底部的評估氣泡,其中包含三種可能性之一:等待程序或零延遲時間,非零時間延遲或兩者都不存在的事件。

首先,可能存在等待SC_ZERO_TIME延遲(.notify(0))的程序或事件(稍後將討論)。這種延遲稱為deltacycle延遲。在這種情況下,具有零時間延遲的等待池程序被放回到就緒池中。源自延遲通知的零時間事件可能導致等待這些事件的程序也被放入就緒池中。如果已將任何程序移入就緒池,則會進行另一輪評估。

其次,可能存在稍後安排的等待非零時間延遲發生的程序或事件。在這種情況下,時間提前到指示的最近時間。等待該特定延遲的程序將被放入就緒池中。如果在此新時間發生事件,則等待該事件的程序將放入就緒池中。如果已將任何程序移入就緒池,則會進行另一輪評估。
第三,可能沒有延遲的過程或事件。由於就緒池中沒有程序,因此模擬只需返回sc_main並完成清理即可結束。無法在SystemC的當前定義中成功重新輸入sc_start。

相關推薦

SystemC簡化模擬引擎簡介

 以下簡化的流程圖說明了SystemC模擬核心的操作流程。 首先,如前面“modules”中所討論的那樣進行詳細說明。 在elab過程中,構建SystemC模組並建立各種模擬引數。 這個elab階段之後是對sc_start()的呼叫,它呼叫模擬核心。 此呼叫開始初始化階

Bubble三維圖形引擎簡介

模塊 images c++編寫 sdl2 支持 ima 包括 .com glsl Bubble是一款基於OpenGL的3D圖形引擎,主要使用C++編寫,采用CMake構建工具構建,基於OpenGL可編程管線,支持GLSL著色器語言。這是一個用於學習和實踐的項目,目前尚在開發

MySql中啟用InnoDB數據引擎簡介 以及 InnoDB與 MYISAM的區別和聯系

隔離級別 最終 全文索引 都是 後臺 isa llb ldb 優勢 1、存儲引擎是什麽?   MySQL中的數據用各種不同的技術存儲在文件(或者內存)中。這些技術中的每一種技術都使用不同的存儲機制、索引技巧、鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,

python開發mysql:mysql安裝(windows)&密碼找回&存儲引擎簡介&庫表的增刪改查

mem 合並 utf 詳細 rop bsp database pri 註意 一,mysql安裝 1 下載地址 https://dev.mysql.com/downloads/file/?id=471342 2 解壓後,將目錄C:\mysql-5.7.19-winx64

003-unity3d 物理引擎簡介以及示例

tco add too war 速度 blog 不同 創建 plan 一、概述   物理引擎就是模擬真實世界中物體碰撞、跌落等反應的引擎,通過ballence、憤怒的小鳥等理解。Unity3D的物理引擎使用的是Nvidia的PhysX。   物理引擎是一個計算機程序模擬

Jinja2模板引擎簡介

結構 文本格式 jin 視圖 響應 開發 python實現 template temp 視圖函數的作用是 : 處理業務邏輯和返回響應內容. 在開發中,把業務邏輯和表現內容放在一起,會增加代碼的復雜度和維護成本,這個時候使用模板,讓它來承擔返回響應的內容,能夠使代碼結構清晰,

【轉】理解WebKit和Chromium: JavaScript引擎簡介

正則表達 根據 tco 抽象 由於 介紹 後來 rom 都在 轉載請註明原文地址:http://blog.csdn.net/milado_nju1. 什麽是JavaScript引擎什麽是JavaScript引擎?簡單來講,就是能夠提供執行JavaScript代碼的運行環境。

mysql 儲存引擎簡介

打個比方,avi,mp4作為兩種視訊格式, 佔用系統的空間大小和清晰度也不一樣。 同樣的,資料庫表的資料儲存在資料庫裡及在上述的視訊格式一樣,也存在多種儲存方式。 但是,對於使用者和應用程式來說同樣一張表的資料,無論用什麼引擎來儲存,使用者看到的資料都是一樣的。 不同的引擎存取,引擎功能,

NVIDIA 宣佈開源物理模擬引擎 PhysX SDK

   NVIDIA 宣佈12月20日推出 PhysX SDK 4.0,並將在 3-Clause BSD 許可證下進行開源。 PhysX 曾是 NVIDIA 私有的物理引擎,被用於受爭議的圖形中介軟體 NVIDIA GameWo

《深入理解Mysql》之儲存引擎簡介

ISAM(Index Sequential Acess Method) 主要用於讀遠大於寫的環境下 優點:查詢速度非常快 佔用記憶體等資源少 缺點:不支援事物,沒有索引和鎖功能,且無法容錯,使用時要注

MySql資料引擎簡介與選擇方法

ISAM ISAM是一個定義明確且歷經時間考驗的資料表格管理方法,它在設計之時就考慮到資料庫被查詢的次數要遠大於更新的次數。因此,ISAM執行讀取操作的速度很快,而且不佔用大量的記憶體和儲存資源。ISAM的兩個主要不足之處在於,它不支援事務處理,也不能夠容錯:如果你的硬碟崩潰了,那麼資料檔案就無法恢復了。如果

Mock 模擬測試簡介及 Mockito 使用入門

Mock 是什麼mock 測試就是在測試過程中,對於某些不容易構造或者不容易獲取的物件,用一個虛擬的物件來建立以便測試的測試方法。這個虛擬的物件就是mock物件。mock物件就是真實物件在除錯期間的代替品。 簡單的看一張圖   我們在測試類 A 時,類 A 需要呼叫類 B 和類 C,而類 B

Oxygine引擎簡介及課程專案總結

前言 本學期有一門專必課《面向物件技術和方法》,老師要求提交一個專案作為考核標準,要求用Java或C++,必須體現面向物件思想。 作為一個C++狂熱愛好者跟有志從事遊戲開發行業的菜鳥,第一個想法就是做個小遊戲啦。雖然自學了DirectX9.0c的大部分知識,

java模板引擎簡介

        模板引擎為了使使用者頁面和業務資料相互分離而產生,它將從後臺返回的資料生成特定格式的文件,用於網站的模板引擎就是生成HTML文件.       模板引擎以簡單為主,其主要目的是為了讓程式

Unity3d離散模擬引擎基礎

1. 解釋物件與資源的區別與聯絡 物件:物件直接出現在遊戲場景中,是資源整合的具體表現,物件一般有玩家,敵人,遊戲場景,攝像機等虛擬父類,這些父類沒有例項化,而他們的子類例項化幷包含了這些遊戲物件,我們可以對這些物件進行操作。 資源:資源可以是我們自定義或下

物理運動模擬引擎

[from:http://www.gaoang.com/]Phun源自於瑞典UMU大學碩士生的畢業論文,可以模擬物體的各種物理運動規律。使用者可以通過滑鼠繪圖來建立物體,並讓物體實驗重力、摩擦力、彈力、加速度等等不同的物理規律。C++編寫的Phun使用了OpenGL、GLEW

cocos2d 物理引擎簡介

材質(Material)材質(Material) 描述了抽象物體的材料屬性:density:密度,用於計算物體的質量friction:摩擦,用於模擬物體間的接觸滑動restitution:恢復係數,模擬物體反彈的一個係數,係數一般設為 0 到 1 之間。0 代表不反彈,1 代表完全反彈。形狀(Shape)形狀

Lucene:基於Java的全文檢索引擎簡介

     轉載自:http://www.chedong.com/tech/lucene.html      Lucene是一個基於Java的全文索引工具包。 另外,如果是在選擇全文引擎,現在也許是試試Sphinx的時候了:相比Lucene速度更快,有中文分詞的支援,而且

開源模擬引擎ODE(Open Dynamics Engine)環境搭建

Codeblocks 版本16.01 因為模擬需要,找到了這個軟體,官網資料有點舊,比較雜亂,記錄下安裝步驟。 下載原始碼   安裝codeblocks程式碼編輯器和premake編譯工具。 sudo add-apt-repository ppa:damien-

mysql常用儲存引擎簡介

1.InnoDB 從mysql 5.5版本開始,innodb是mysql預設的儲存引擎。innodb具有以下優點 災難恢復性好 支援事務,預設的事務隔離級別是可重複讀,其事務控制是通過多版本併發控制來實現的。 使用行級鎖 對於InnoDB引擎中的表,