如何指定 chisel 的 post-processor?

How to specify chisel’s post-processor?

引用自 libcores wiki

One post-processor generates a Verilog that is tuned for FPGA execution. A second generates Verilog that is tuned for ASIC.

这是真的吗?如何指定使用哪个 post 处理器?

我注意到我们可以给chisel发送一个选项‘-X xxx’,其中‘xxx’可以是high、middle、low、verilog……这有关系吗?这些“编译器”的确切含义是什么?

谢谢!

我不完全熟悉 librecores 流程,但浏览 https://github.com/librecores/riscv-sodor 我没有看到任何 post 处理脚本。可能值得在回购协议上提出问题以要求澄清这一点。

对于一般的 Chisel 设计,人们使用 IR 上的转换来专门针对 FPGA 与 ASIC 的代码。最常见的是处理内存结构。默认发出的行为记忆适用于 FPGA,因为它们被正确推断为 BRAM。对于 ASIC,有一个标准转换可以用黑盒接口替换存储器,这样用户就可以提供使用来自其给定实现技术的 SRAM 宏的实现。

非常狭隘地解决你的后一个问题,-X/--compiler 命令行参数决定使用哪个 FIRRTL 编译器和发射器。

Chisel3 编译器生成 CHIRRTL(FIRRTL 中间表示的高级形式)。 FIRRTL 中间表示 (IR) 在 UC Berkeley Technical Report 中有更详细的描述,是一种用于描述电路的简单语言。

从广义上讲,FIRRTL 编译器正在将 FIRRTL IR 中表示的电路从高级表示(规范中描述的内容)移动到中级表示,最后移动到低级表示可以轻松映射到 Verilog 的表示形式。 FIRRTL 编译器可以选择在高 FIRRTL、中 FIRRTL 或低 FIRRTL 或一直到 Verilog 时提前停止。 -X/--compiler 参数告诉它你是否想提前退出并且只针对这些表示之一。

注意:CHIRRTL最终将被移除,High FIRRTL将由Chisel编译器直接发出。