Posts Issued on May 24, 2021

posted by sakurai on May 24, 2021 #404

メモリダンプモジュールを組み込むにあたり、前回までテストベンチ(=最上位)であった階層をモジュール化します。外部インタフェースは図404.1のとおりです。

図%%.1
図404.1 モジュールの入出力
  • start (入力): ボード上のスイッチであり、画像ダンプの起動スイッチです。
  • sreq (出力): GameFSMに対して(デュアルポートメモリに対して)バス権を要求する信号です。
  • cwait (入力): GameFSMが60Hzの同期待ち状態にある信号です。これはバス権を放棄している信号でもあるので、流用します。
  • addr (出力): デュアルポートメモリアドレスです。Muxを介してデュアルポートメモリに接続します。
  • data (入力): デュアルポートメモリからの4bitデータです。
  • sel (出力): Muxの制御信号であり、Trueでデュアルポートメモリのアドレスがメモリダンプモジュール側であることを示します。
  • read (出力): シリアルデータ出力です。

入力

(* prefix="" *)  // method名を削除するため
method Action startm(Bool newstart);
(* prefix="" *)
method Action datam(Data newdata);
(* prefix="" *)
method Action cwaitm(Bool newcwait);

(* synthesize, always_enabled="startm, datam, cwaitm" *)   // EN_xxxを削除するため

出力

method Bool sreqm();
method Addr_t addrm();
method Bool selm();
method Bit#(1) readm();

(* synthesize, always_ready="sreqm, addrm, selm, readm" *)   // RDY_xxxを削除するため

入出力は上記のとおりメソッドで定義し、入力はmethod Action、出力はmethodで定義します。


左矢前のブログ 次のブログ右矢