抱歉,如果标题有点令人困惑,但是 Origen 提供哪些选项/约定来设置不一定是硅模型或只是一般助手的子块?
例如,我有一个扫描助手插件,可以指导用户创建扫描测试程序。我想将选项/自定义列表添加到顶级应用程序。有几种方法可以做到这一点:
我可以添加 attr_readers/methods 列表。我认为这看起来有点难看,并且在顶层添加了一些其他任何东西都没有使用的东西,并且它炸毁了 $dut.methods。
我可以使用此处定义的参数:http: //origen-sdk.org/origen/guides/models/parameters/并在扫描测试仪应用程序中调用它们。但是查看指南,我认为这不是所需的用例。它看起来更像是上下文切换,但也许这只是示例用例。
我可以在顶层添加一个 scan_tester.setup 方法或其他东西。这似乎是不必要的,因为它基本上与#2 做同样的事情,但需要调用一个“设置”方法。是的,它只有 1 行,但如果你搞砸了或忘记添加那行,那么你需要通过 #2 避免一些调试(例如,如果没有提供扫描参数来帮助警告,我可以打印一个警告错别字等)。
我可以将它设置为一个子块(目前我是如何得到它的),但这并不适合。扫描不是硅模型,因此基地址没用,但需要。它没有寄存器等。
然后还有其他我可以做的“Ruby”事情(通过 on_create 设置,使用全局变量等),但由于某种原因,这些似乎都不如上述任何选项好(主要是,我需要更多的设置而不是使用任何现有选项)。
这些中的任何一个都可以。但从惯例的角度来看,我的扫描测试仪设置应该朝哪个方向发展?还有其他我没有考虑过的选择吗?我倾向于选项#2,因为它看起来最干净。
谢谢