日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SystemC 代码添加和测试方法

發布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SystemC 代码添加和测试方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.啟動流程

在 code/utils/ 下添加 new_systemc 相關代碼,啟動流程如下:

2.調用關系

3.地址映射

假設有兩個 systemc 設備:device1 和 device2,device1 的內存地址映射區域為 0x2000
0x2fff,device2 的內存映射區域為 0x3000 ~ 0x3ffff。

首先將 json 文件中的 skyeye_device(sc_dev_0) 設備映射地址改為 如下圖中的 json

文件所示。

如果 cpu 有個一個對 0x20010 地址的訪問。 調用到 m_initlator_1 中的 offset 為 0x10,

通過 tlm 將請求發送到 m_at_target_1_phase_1, m_at_target_1_phase_1 根據 0x10 將請求

分發到 device1 設備。

4.如何添加文件

添加文件,需修改頂層目錄?http://Makefile.am?文件。

假設添加一個文件, 文件路徑為:utils/new_systemc/common/src/add_device.cpp

修改方式如下:

skyeye_new_systemc_SOURCES = utils/new_systemc/common/src/apb_cpu_bridge.cpp \ utils/new_systemc/common/src/sc_cpu.cpp \ utils/new_systemc/common/src/memory.cpp \ utils/new_systemc/common/src/traffic_generator.cpp \ utils/new_systemc/common/src/report.cpp \ utils/new_systemc/common/src/select_initiator.cpp \ utils/new_systemc/common/src/at_target_1_phase.cpp \ utils/new_systemc/at_1_phase/src/apb_cpu_bridge_test_device.cpp \ utils/new_systemc/at_1_phase/src/at_1_phase_top.cpp \ utils/new_systemc/at_1_phase/src/initiator_top.cpp \ utils/new_systemc/at_1_phase/src/device.cpp \ utils/new_systemc/init.cpp \ utils/new_systemc/skyeye_new_systemc.cpp \ utils/new_systemc/common/src/add_device.cpp

5.編譯 systemc

下載 systemc-2.3.1 的軟件包(附件中包含)。參考 systemc-2.3.1 的 INSTALL 文件,運行如下

命令編譯 systemc-2.3.1:

./configure –prefix=SYSTEMC_INSTALL_DIR; make ;make install ;

SYSTEMC_INSTALL_DIR 是 systemc 安裝目錄, 可以自定義

./autogen.sh; ./configure --with-systemc=SYSTEMC_INSTALL_DIR; ./make lib ./make ./sudo make install

6. 編譯 SkyEye

首次編譯需要使用 make lib 命令,之后修改代碼后,直接運行 make;sudo make install

7.運行測試用例

cd systemc_test/ /opt/skyeye/bin/skyeye_new_systemc

輸出:

$ /opt/skyeye/bin/skyeye_new_systemc SystemC 2.3.1-Accellera --- Nov 5 2015 17:29:57 Copyright (c) 1996-2014 by all Contributors, ALL RIGHTS RESERVED skyeye_device_read Call, offset 0 apb_cpu_bridge_test_device_signal:17, 0 apb_cpu_bridge_test_device_signal:17, 0 skyeye_device_read Call, offset 4 apb_cpu_bridge_test_device_signal:17, 4 apb_cpu_bridge_test_device_signal:17, 4 skyeye_device_read Call, offset 8 apb_cpu_bridge_test_device_signal:17, 8 apb_cpu_bridge_test_device_signal:17, 8 skyeye_device_read Call, offset 10 apb_cpu_bridge_test_device_signal:17, a apb_cpu_bridge_test_device_signal:17, a skyeye_device_write Call, offset 12 apb_cpu_bridge_test_device_signal:17, c apb_cpu_bridge_test_device_signal:17, c

8.源碼信息

systemc 相關代碼位置: code/utils/new_systemc/

目錄結構與 systemc 源碼的 example 類似。

程序啟動入口文件: code/utils/new_systemc/skyeye_new_systemc.c

int sc_main (int argc, char **argv) { /* initialization of options from command line */ sky_pref_t* pref = get_skyeye_pref(); init_option(argc, argv, pref); pref->systemc_enable = True; pref->interactive_mode = False; pref->autoboot = False; SIM_init(); init_skyeye_class(); RunCommand("run-script setup.skyeye"); SIM_run(); setup_systemc(); while(1) sleep(1); return 0; }

本文標題:SystemC 代碼添加和測試方法

本文鏈接:http://www.digiproto.com/

總結

以上是生活随笔為你收集整理的SystemC 代码添加和测试方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。