aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/blinky_map.v
blob: 9d8bf65e6e13b17ed331b1192c589f350ad6b697 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
module \$_DFF_P_ (input D, C, output Q);
	ICESTORM_LC #(
		.LUT_INIT(2),
		.NEG_CLK(0),
		.CARRY_ENABLE(0),
		.DFF_ENABLE(1),
		.SET_NORESET(0),
		.ASYNC_SR(0)
	) _TECHMAP_REPLACE_ (
		.I0(D),
		.CLK(C),
		.O(Q),

		.I1(),
		.I2(),
		.I3(),
		.CIN(),
		.CEN(),
		.SR(),
		.LO(),
		.COUT()
	);
endmodule

module \$lut (A, Y);
	parameter WIDTH = 0;
	parameter LUT = 0;

	input [WIDTH-1:0] A;
	output Y;

	generate
		if (WIDTH == 1) begin
			ICESTORM_LC #(
				.LUT_INIT(LUT),
				.NEG_CLK(0),
				.CARRY_ENABLE(0),
				.DFF_ENABLE(0),
				.SET_NORESET(0),
				.ASYNC_SR(0)
			) _TECHMAP_REPLACE_ (
				.I0(A[0]), .I1(), .I2(), .I3(), .O(Y),
				.CLK(), .CIN(), .CEN(), .SR(), .LO(), .COUT()
			);
		end
		if (WIDTH == 2) begin
			ICESTORM_LC #(
				.LUT_INIT(LUT),
				.NEG_CLK(0),
				.CARRY_ENABLE(0),
				.DFF_ENABLE(0),
				.SET_NORESET(0),
				.ASYNC_SR(0)
			) _TECHMAP_REPLACE_ (
				.I0(A[0]), .I1(A[1]), .I2(), .I3(), .O(Y),
				.CLK(), .CIN(), .CEN(), .SR(), .LO(), .COUT()
			);
		end
		if (WIDTH == 3) begin
			ICESTORM_LC #(
				.LUT_INIT(LUT),
				.NEG_CLK(0),
				.CARRY_ENABLE(0),
				.DFF_ENABLE(0),
				.SET_NORESET(0),
				.ASYNC_SR(0)
			) _TECHMAP_REPLACE_ (
				.I0(A[0]), .I1(A[1]), .I2(A[2]), .I3(), .O(Y),
				.CLK(), .CIN(), .CEN(), .SR(), .LO(), .COUT()
			);
		end
		if (WIDTH == 4) begin
			ICESTORM_LC #(
				.LUT_INIT(LUT),
				.NEG_CLK(0),
				.CARRY_ENABLE(0),
				.DFF_ENABLE(0),
				.SET_NORESET(0),
				.ASYNC_SR(0)
			) _TECHMAP_REPLACE_ (
				.I0(A[0]), .I1(A[1]), .I2(A[2]), .I3(A[3]), .O(Y),
				.CLK(), .CIN(), .CEN(), .SR(), .LO(), .COUT()
			);
		end
	endgenerate
endmodule