parameterとかの渡し方
人に教える立場になった気がするので,まとめておく
module clk( output ck ); reg ck; initial ck=1; always #10 ck= ~ck; endmodule module r #( parameter n = 1 )( input[n-1:0] d, input load,ck, output [n-1:0] q ); reg [n-1:0] qd; initial qd = 0; assign #5 q = qd; always @(posedge ck) #0 qd = load? d : q; endmodule module rSim #( parameter n = 4 ); reg [n-1:0] d; reg load; wire [n-1:0] q; clk ck1( .ck (ck) ); r #(n) f( .q (q), .d (d), .load (load), .ck (ck) ); initial begin $monitor(" %d %d %b %b", q, d, load, ck, $stime); $display(" q d load ck time"); d = 0; load = 0; #10 for(d=0; d<15; d=d+1) #20 load =~ load; #50 $finish; end endmodule
こんな感じで,てきとうに引数渡せばおk