北京西路做网站的公司,沐众科技网站建设,滕州建网站哪家好,免费企业网页申请制作步骤1.启动流程
在 code/utils/ 下添加 new_systemc 相关代码#xff0c;启动流程如下#xff1a; 2.调用关系 3.地址映射 假设有两个 systemc 设备#xff1a;device1 和 device2#xff0c;device1 的内存地址映射区域为 0x20000x2fff#xff0c;device2 的内存映射区域为 …1.启动流程
在 code/utils/ 下添加 new_systemc 相关代码启动流程如下 2.调用关系 3.地址映射 假设有两个 systemc 设备device1 和 device2device1 的内存地址映射区域为 0x20000x2fffdevice2 的内存映射区域为 0x3000 ~ 0x3ffff。 首先将 json 文件中的 skyeye_devicesc_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.cpp5.编译 systemc
下载 systemc-2.3.1 的软件包附件中包含。参考 systemc-2.3.1 的 INSTALL 文件运行如下
命令编译 systemc-2.3.1
./configure –prefixSYSTEMC_INSTALL_DIR; make ;make install ;SYSTEMC_INSTALL_DIR 是 systemc 安装目录 可以自定义
./autogen.sh;
./configure --with-systemcSYSTEMC_INSTALL_DIR
./make lib
./make
./sudo make install6. 编译 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, c8.源码信息
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/