首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从我的运行脚本有选择地设置平台/模型属性?

如何从我的运行脚本有选择地设置平台/模型属性?
EN

Stack Overflow用户
提问于 2014-08-05 15:44:19
回答 1查看 59关注 0票数 0

我正在使用VLAB MPC5xxx工具箱。

我有一个运行脚本来控制我的模拟,它以通常的方式加载平台,然后运行它:

代码语言:javascript
复制
import vlab
import os
import sysc

image_path = os.path.join('o5e',
                          'firmware.open5xxxecu-e6009bbcfcd1',
                          'bin', 'o5e_dbg.elf')

vlab.load('mpc.mpc5674f.sim', args=['--testbench=o5e_testbench', 
                                    "--image=%s" % image_path,
                                    "--debugger-config=GHS_MULTI",
                                    "--trace=+src:sc_report",
                                    ])
vcd_sink = vlab.trace.sink.vcd("mpc.mpc5674f.sim.vcd")
vlab.add_trace("mpc5674f.PBRIDGE.EDMA_B", sink=vcd_sink)

for i in range(32):
        vlab.add_trace("mpc5674f.PBRIDGE.ETPU.CH_OUT_A[%d]" % i, sink=vlab.trace.sink.console)

vlab.run(11, "ms", blocking=True)
vlab.exit()

我想给这个run脚本一个参数,以便在核心中启用跟踪,我知道您是通过在核心上设置跟踪属性来实现的。我知道我可以使用python的optparse读取脚本的选项。

我的问题是,你必须在精化结束之前设置属性,但是在精化之前我唯一可以访问模拟的地方是在testbench中……但是似乎没有办法将参数(例如脚本参数)传递给测试平台。

我应该如何将脚本中的参数传递到测试平台中,以便它有条件地启用或禁用核心跟踪?

EN

回答 1

Stack Overflow用户

发布于 2014-08-07 12:15:10

所以,我认为答案是:

1)不要尝试使用testbench来做与…无关的事情。一个测试平台

2)使用“阶段断点”来做需要在……发生的事情模拟中的特定阶段

例如:

代码语言:javascript
复制
from optparse import OptionParser

parser = OptionParser()

parser.add_option("--core-instrumentation", dest="core_instrumentation",
                  action = "store_true",
                  help="turn on core instrumentation")

(options, args) = parser.parse_args()

if options.core_instrumentation:
    vlab.add_phase_breakpoint("before_end_of_elaboration", 
                              action = lambda bp: vlab.write_attribute("mpc5467f.Core0.log_filter","+instr"))

image_path = os.path.join('o5e',
                      'firmware.open5xxxecu-e6009bbcfcd1',
                      'bin', 'o5e_dbg.elf')

vlab.load('mpc.mpc5674f.sim', args=['--testbench=o5e_testbench', 
                                    "--image=%s" % image_path,
                                    "--debugger-config=GHS_MULTI",
                                    ])
vcd_sink = vlab.trace.sink.vcd("mpc.mpc5674f.sim.vcd")
vlab.add_trace("mpc5674f.PBRIDGE.EDMA_B", sink=vcd_sink)

for i in range(32):
        vlab.add_trace("mpc5674f.PBRIDGE.ETPU.CH_OUT_A[%d]" % i, sink=vlab.trace.sink.console)

vlab.run(11, "ms", blocking=True)
vlab.exit()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25133582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档