有关懒惰评估外交(火箭筹码)的问题吗?

时间:2019-10-28 20:47:40

标签: chisel rocket-chip

我一直在研究Chisel的外交模式。我对背后的设计理念有疑问。据我了解,Scala的惰性评估用于注册一些编译时信息,这些信息可能在FIRRTL生成进行诸如参数协商之类的元操作之前的详细说明期间被迫评估。

我的问题是,这是唯一的方法吗?是否可以在Scala中创建一个代理对象来注册这些元属性并在调用特定函数时对其进行评估?然后可以在评估之前调用此函数以进行协商。

之所以这样问,是因为我正在逐步学习Scala和Chisel,因此想了解如何以尽可能增量的方式构建抽象,而又没有尽可能基本的基元。

1 个答案:

答案 0 :(得分:1)

我怀疑外交是解决这个问题的唯一可能方法。随着时间的推移,它已经得到了发展,可以满足基于自适应生成器的方法的需求。关键功能之一是能够在模块评估其参数时从模块获取信息。某些代理系统可能会完成相同的功能,但是我认为与推定的代理对象相关联的元属性代码可能会与参数评估逻辑脱钩。