proc 関連

DRAM コントローラを作っていてわかったことは proc から proc を呼ぶことができるが、ソフトで言う関数のように使えるものではないということだ。

  • proc から proc を呼ぶ場合は関数で言うところのリターンアドレスみたいな概念はない
  • ローカル変数のようなものもない。verilog でいう function のような局所 input もない気がする。
  • 無理矢理関数のように呼び出し先で parent.finish 、処理完了時に parent() というようにやるとある程度動くが、 assert がかかったりしてビルドが通らなかったりした。たぶん想定された使い方ではないのだろう。

いろいろ組んでみたが、今の力量では以前作った verilog のソースのほうが使い勝手が格段によいことが判明したので終わり。NSL/verilog/SystemC と簡単に見てみたが、一長一短あるので長所生かしながら共存共栄していくのが懸命だとうことが分かった。(アセンブラがなくならない理由と似てる...はず)

VHDL はしらん。