12 |
BSVでのデータの受け取り方2例 (2) |
次に、下位モジュールにおいて、入力信号をレジスタ受けではなく、ワイヤ受けに変更します。以下に修正部分のみを示します。
Processor.bsv:
Reg#(Bool) if_wait <- mkWire; Reg#(Bool) mc_wait <- mkWire; Reg#(Bool) ex_wait <- mkWire; Reg#(Bool) ma_wait <- mkWire;
この場合は上位がRegisterですが、下位はWireであるため、図677.1に示すようにwait信号は遅れません。上位で変化したサイクルでそのまま下位に伝わります。

前稿でも同様ですが、上位ではサイクル毎に下位にwait信号を伝えるルールを記述しています。
Tb.bsv:
rule load_wait_values; proc.if_wait_load(if_wait); proc.mc_wait_load(mc_wait); proc.ex_wait_load(ex_wait); proc.ma_wait_load(ma_wait); endrule
Leave a Comment