summaryrefslogtreecommitdiff
path: root/tests/simple/defvalue.sv
blob: b0a087ecbf07ec1755ab0f82847eac9e62944450 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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