module top(input clock, input [3:0] delta, output [3:0] cnt1, cnt2); cnt #(1) foo (.clock, .cnt(cnt1), .delta); cnt #(2) bar (.clock, .cnt(cnt2)); endmodule module cnt #( parameter integer initval = 0 ) ( input clock, output logic [3:0] cnt = initval, `ifdef __ICARUS__ input [3:0] delta `else input [3:0] delta = 10 `endif ); `ifdef __ICARUS__ assign (weak0, weak1) delta = 10; `endif always @(posedge clock) cnt <= cnt + delta; endmodule