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

2009年9月17日

母が大学卒業

Filed under: 日記 — タグ: — い~ぐる @ 5:28 PM

母からメールが来て、放送大学の単位が全部取得できたので、卒業できるということだ。卒業式は27日。
一度卒業しているけれど、別の学科を取り直し、二つの学士を10年がかりで取得。
このところ文字も読みづらく、記憶力も低下して苦しんでいたらしいけれど、無事卒業できて良かったね♪
あ、卒業祝いを贈らないといけないか・・・??

モジュール共通動作記述の緩和

Filed under: Weblog — い~ぐる @ 2:53 PM

モジュール共通動作のみのモジュールにおいて、複数の動作を並列に記述するときに、もっとシンプルに書けた方がうれしいので、下記のような記法を許すことにした。

  • NSL 表記
    module mm {
    input a;
    output f;
    reg r;
    r:=a;
    f=r;
    }
    
  • 生成されたVerilog
    module mm ( p_reset , m_clock , f , a );
    input p_reset, m_clock;
    output f;
    input a;
    reg r;
    assign  f = r;
    always @(posedge m_clock)
    begin
    r <= a;
    end endmodule

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

Powered by WordPress