CIRCTのDialect調査


CIRCTに含まれるDialectとその変換パスを調査。 Dialectの変換はソースコードの以下に存在。

Dialect一覧

CIRCTには以下のDialectが含まれている。

  • FIRRTL Dialect
  • RTL Dialect
  • Handshake Dialect
  • StaticLogic Dialect
  • LLHD Dialect

その他、MLIRでデフォルトで定義されているDialectとして以下がある。

  • Standard Dialect
  • LLVM Dialect

Dialect変換パス

{{< figure src=“/posts/2020-08-08-circt-conversion-diagram.png” width=“100%” height=“100%” link=“/posts/2020-08-08-circt-conversion-diagram.png”>}}

FIRRTLからVerilogを生成する流れは、

  • FIR parserでFIRRTL Dialectへ変換し、
  • FIRRTL DialectからRTL Dialectへ変換、
  • 最後にRTL DialectからVerilogコードを生成する

となっている。