23 lines
452 B
Systemverilog
23 lines
452 B
Systemverilog
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
|