2

我一直在阅读 Chisel 的外交模型。我对这背后的设计理念有疑问。据我所知,Scala 的惰性求值用于注册一些编译时信息,这些信息可以在 FIRRTL 生成之前的细化过程中强制求值,以进行参数协商等元操作。

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

我问这个的原因是因为我正在逐步学习 Scala 和 Chisel,因此想了解如何尽可能渐进地构建抽象,而无需尽可能基本的原语。

4

1 回答 1

1

我怀疑外交是解决这个问题的唯一可能方法。它随着时间的推移而发展,以满足基于发电机的适应性方法的需求。关键特性之一是能够在模块评估参数时从模块获取信息。某些代理系统可能会完成相同的功能,但我认为存在与假定代理对象相关联的元属性代码与参数评估逻辑分离的风险。

于 2019-10-29T17:51:07.337 回答