母からメールが来て、放送大学の単位が全部取得できたので、卒業できるということだ。卒業式は27日。
一度卒業しているけれど、別の学科を取り直し、二つの学士を10年がかりで取得。
このところ文字も読みづらく、記憶力も低下して苦しんでいたらしいけれど、無事卒業できて良かったね♪
あ、卒業祝いを贈らないといけないか・・・??
2009年9月17日
母が大学卒業
母が大学卒業 はコメントを受け付けていません
モジュール共通動作記述の緩和
モジュール共通動作のみのモジュールにおいて、複数の動作を並列に記述するときに、もっとシンプルに書けた方がうれしいので、下記のような記法を許すことにした。
- 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
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状態遷移の新文法時({ }内の状態)のバグをあわせて対策