基本上,我想开始研究Chisel / FIRRTL的内部功能。如果有人可以将我指向我可以开始看的地方,那将会有所帮助。
我一直在阅读源代码。到目前为止,我知道Chisel已作为Scala库实现。每个Chisel对象都有一些发射FIRRTL的方法。运行特定的Scala程序后,将遍历对象并生成FIRRTL。
我想知道的是,我是否一直在朝着正确的方向前进。我仍然没有弄清楚Chisel模块的AST构造和类型推断发生的位置。最终我会到达那里,但是如果有人可以向我总结我应该看的地方,那就太好了。
当然,这对Chisel开发人员来说是一个很大的要求,但即使是一些基本信息也将有所帮助!
最佳答案
我想说有两个基本的起点。
Firrtl是一个好的开始,因为它比凿子新,而且总体上代码库也新。 Firrtl是一个解析器,转换和发射器,它们非常简单。转换很好地封装了大多数操作
作为EDSL的凿子更为复杂和古怪。开始的地方在chiselFrontend中。 Builder类是构建用于发出chirrtl / high-firrtl的内部图的魔力的根源。它使用动态变量来提供模块及其组件注册其创建和与图形的连接的位置。
希望可以帮助您入门,愉快地学习