アダルト・ヴァイオリン May the force be with you..

2009年9月17日

i8086互換CPU

Filed under: Weblog — い~ぐる @ 8:49 AM

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状態遷移の新文法時({ }内の状態)のバグをあわせて対策

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress