新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何在SoC設計中使用事務處理(一)

        如何在SoC設計中使用事務處理(一)

        作者: 時間:2012-08-01 來源:網絡 收藏

        scv_tr_stream: 流建模對象。流是一種抽象通訊方法,包括重疊在內的可以發生流中,例如一個帶有讀/寫事務處理的存儲流。因此一個流可以被認為是一個抽象信號,在這個信號中事務處理是可以被信號的抽象值,例如一個數據傳送總線的地址或數據流。

        scv_tr_generator: 圍繞一個特定的事務處理類別并且允許創建和增加屬性的對象,可以是包括信號和信息以及通用有效負載數據在內的任何對象。

        下面的代碼段 顯示了利用SCV以一種相對比較直接的方式創建事務處理。每一個代碼段前的注釋均指出其后語句的目的。事務處理可以以一種無縫的方式(不需要用戶的直 接干預)被記錄進數據庫中。為了實現這一點,工具供應商可以通過在上述三個類中提供的注冊機制來注冊回叫,從而實現記錄功能。用戶只需要增加一些初始化調 用即可。

        // Inside sc_main() or some other context

        // SCV startup

        scv_startup();

        // Initialization

        API_vendor_initialization(); // set SCV callbacks here

        scv_tr_db db(my_db);

        scv_tr_db::set_default_db(db);

        // Define a stream and a generator

        scv_tr_stream mem_stream(memory, transactor);

        scv_tr_generator read_gen(read, mem_stream, mem);

        scv_tr_handle tr_handle;

        // Modeling code here

        // Transaction begin with a tr_data attribute

        tr_data.addr= addr_signal;

        tr_data.data=data_signal;

        tr_handle=write_gen.begin_transaction(tr_data);

        // Transaction end

        tr_handle.end_transaction();

        // Other modeling code here

        SCV也有許多其它的類,例如,在不同的事務處理之間建立關系的scv_tr_relation。在確定諸如前續-后繼之類的因果關系、如父-子之類的層次關系以及成分分析集合體時,關系在分析以及調試方面都相當有用。

        由于OpenVera(www.open-vera.org)是一種面向對象的建模語言,它可以輕而易舉地容納事務處理級建模的封裝概念。該語言目前不具備與SCV類似的內置事務處理類。但可有可能為了這一目的而創建類,例如下面的極小集:trans_db:用于數據庫;

        trans_stream:事務處理流建模對象;

        trans_type:創建事務處理以及事務處理的屬性;

        trans_handle:便于操控句柄。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴业县| 富宁县| 石狮市| 信阳市| 南开区| 林西县| 定安县| 手游| 天气| 平凉市| 遵义县| 泸州市| 明溪县| 盖州市| 米脂县| 句容市| 利津县| 邻水| 新绛县| 龙陵县| 平和县| 左贡县| 沁水县| 滨州市| 平塘县| 吉木萨尔县| 东辽县| 道孚县| 那坡县| 屯昌县| 玉溪市| 罗定市| 周至县| 凌云县| 新乡县| 鹤岗市| 都安| 手游| 迭部县| 肇庆市| 庆元县|