O氏のCPUパッケージもI氏のPDP11と同じく、インスタンスの引数で端子のバインドをしているので、端子順序の変更に伴い、変更が必要だった。
(これは、彼らが私が書いたveriskelというシミュレーションスケルトンジェネレータを使っているからなんで、遠因は私自身にある)
が、確認すると、それだけではなく、端子が見つからないというエラーがでる?
SFLでは、declareとmoduleは別々に記述可能だったが、今回、declareの端子記述を優先としたことで、O氏の記述で、二つがアンマッチになっている部分でエラー。これは、記述側を変更。
自分のインベーダーパッケージ(midway)を確認すると、クロック端子の二重定義が・・
interface文で明示的にクロック・リセットを記述して、本体のmodule記述もある場合、こうなる。今回は、BRAMに推定させるRAMの記述で発生。これは、sfl2vl側を修正することにする。interface文を持つdeclare宣言されているモジュールでは、クロック・リセット端子を自動ではインスタンス生成しないことにする。
もちろん、内部回路のクロック・リセット信号はデフォルトのものを使うので、勝手な名前をつけるわけにはいかないが・・
この副作用(?)によって、組み合わせ回路だけからなるモジュールでは、
- 下記の記述によって、
declare BUFG interface { input I; output O; } module BUFG { O = I; }
- 次のような出力が得られる。
module BUFG ( I , O ); input I; output O; assign O = I; endmodule
20090917版からの提供:このバージョンでは、NSL状態遷移の新文法時({ }内の状態)のバグをあわせて対策