System verilog parserを試しに作ってみている
モジュールの入出力信号を自動抽出して、csvか何かファイルに出力できたら便利だと思ったので、試しにSystem verilogのparserを作ってみようとしました。で、以下System Verilogの言語仕様を読んでみたんですが、難しい笑
http://www.ece.uah.edu/~gaede/cpe526/SystemVerilog_3.1a.pdf
Annex A Formal syntax definition
まぁ言語仕様の内容理解は置いといても入出力くらいならなんとかなるかと思い、適当に以下pythonのライブラリを使用して作成しています。
ひとまず簡単なソースコードでできるようになったので、 実績として適当にriscvのコードを使用してみて絶望しました。 以下のようなifdefの記載があったんです、、プリプロセッサが必要ということか、、 なぜか↑のSystem Verilog仕様にはifdefが定義されていないようですが、以下にはありました。 なので、次はプリプロセッサを進めてみようと思います。
http://www-inst.eecs.berkeley.edu/~cs150/fa06/Labs/verilog-ieee
19. Compiler directives
`ifdef xxxx input logic xxx, `else input logic yyy, `endif // xxxx