ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

Synverllアップデート(V0.3)

Synverll(V0.3)

下記のアップデートしました。

  • 引数のトップモジュール名を削除(トップモジュール名はソースコード名に_topを付加します)
  • 関数のreturn値を反映するように実装(連絡があったので・・・)
  • メモリI/Fにベースアドレスを追加(内部&外部メモリに対応できていなかった)
  • メモリI/Fを使用していなかったらI/Fを付加しない
  • -dオプションでデバッグ出力(分離した関数コードとLLMV-IRの出力)
return値

普段、H/W用のCソースコードを書くときはreturn値は使わないので実装してなかったのです。

メモリ

メモリにベースアドレスを付けたので、内部&外部メモリに対応できたと思う。

ついでに、メモリI/Fを無条件で実装していたのを使用しない場合は、削除するようにしてみた。 本当に計算だけのソースコードの場合、スッキリしたVerilog HDLが出力されます。

ただ、配列や構造体を使用したら、確実にメモリI/Fが出来上がります。 もはやメモリに支配されているプロセッサ向け言語の宿命ですね。

-dオプション

デバッグ用に-dオプションを追加して、分離した関数のCソースコードとLLVM-IRを残すようにしてみた。 どんなソースコードを書くと、LLVMがどのように最適化するか勉強するには調度良いかな? これわかってるとVivado HLSやSDK for OpenCLの展開がわかっていいかも・・・