Skip to content

Commit 1817f30

Browse files
committed
verilog
1 parent 51049b4 commit 1817f30

File tree

10 files changed

+556
-2
lines changed

10 files changed

+556
-2
lines changed

.gitignore

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1-
verilog
21
test.m
3-
.vscode
2+
.vscode
3+
flooded
4+
layer
5+
old

verilog/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
a.exe
2+
.vscode

verilog/FMIG2.sv

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
module FMIG2 #(parameter BITS = 5 + 3)(
2+
input signed [BITS-1:0] x, y,
3+
output signed [BITS-1:0] min,
4+
output cp // 0 if x is smaller ; 1 if y is smaller
5+
);
6+
7+
logic cp_w;
8+
9+
assign min = cp_w ? y : x;
10+
assign cp_w = (y > x) ? 0 : 1;
11+
assign cp = cp_w;
12+
13+
endmodule
14+
15+
module FMIG2k #(parameter BITS = 5 + 3, parameter K = 5)(
16+
input signed [BITS-1:0] x [2**K-1:0],
17+
output signed [BITS-1:0] out,
18+
output [K-1:0] idx
19+
);
20+
21+
logic signed [BITS-1:0] min1_w, min2_w;
22+
logic [K-2:0] idx1_w, idx2_w, idx_min;
23+
logic cp_w;
24+
25+
if(K != 1) begin
26+
FMIG2k #(.BITS(BITS), .K(K-1)) FMIG_1(
27+
.x(x[2**(K-1)-1:0]),
28+
.out(min1_w),
29+
.idx(idx1_w)
30+
);
31+
FMIG2k #(.BITS(BITS), .K(K-1)) FMIG_2(
32+
.x(x[2**K-1:2**(K-1)]),
33+
.out(min2_w),
34+
.idx(idx2_w)
35+
);
36+
FMIG2 #(.BITS(BITS)) FMIG2_3(
37+
.x(min1_w),
38+
.y(min2_w),
39+
.min(out),
40+
.cp(cp_w)
41+
);
42+
assign idx_min = cp_w ? idx2_w : idx1_w;
43+
assign idx = {cp_w, idx_min};
44+
end
45+
46+
else begin
47+
FMIG2 #(.BITS(BITS)) FMIG2_1(
48+
.x(x[0]),
49+
.y(x[1]),
50+
.min(out),
51+
.cp(idx)
52+
);
53+
end
54+
55+
endmodule
56+
57+
module FMIG_N #(parameter BITS = 5 + 3, parameter N = 50);
58+
59+
parameter K = $clog2(N + 1) - 1;
60+
parameter R = N - 2**K;
61+
62+
integer TEST = K;
63+
integer TEST2 = R;
64+
endmodule

verilog/FMIG2k/FMIG16.txt

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
73 -86 71 34 -88 66 -94 -24 17 20 70 -10 66 -72 -12 83 -94 9
2+
47 34 106 28 -103 -36 -110 -34 -31 -109 -6 67 31 -43 -124 -15 -124 1
3+
111 25 95 -81 -117 0 53 -55 -97 -38 -90 -74 88 108 -10 -7 -117 11
4+
62 -15 2 69 69 94 121 -28 -98 -22 72 90 -45 -50 86 69 -98 7
5+
19 73 114 -121 -53 -24 -118 -89 118 4 29 117 -75 -116 -14 -19 -121 12
6+
-94 5 11 94 97 -50 -43 -52 -7 -87 -95 -110 98 119 87 75 -110 4
7+
-32 67 105 -13 -113 -126 7 74 62 -103 -110 121 -128 -96 82 -8 -128 3
8+
1 102 107 -81 23 -75 13 92 -103 -41 -20 52 -12 88 -16 -51 -103 7
9+
123 14 45 59 -1 87 21 122 -96 -94 -20 12 -30 49 125 -30 -96 7
10+
4 29 12 -128 -115 -102 -117 93 39 124 17 -120 -80 -6 -121 -111 -128 12
11+
-113 -78 -91 -89 68 -18 29 -2 67 38 21 116 3 -58 -37 115 -113 15
12+
82 48 -44 25 -21 5 -74 -106 74 -95 -9 -42 -65 -28 -122 97 -122 1
13+
-62 56 -72 127 -122 -49 -123 -97 -47 45 -12 -7 10 -25 -44 115 -123 9
14+
-108 -86 -83 -63 90 126 -10 -47 -85 76 -120 102 73 -98 83 3 -120 5
15+
-68 -89 80 10 -20 -125 -74 37 -17 -64 113 -27 32 28 -48 -87 -125 10
16+
113 -112 126 -62 2 -114 -77 -44 -14 -120 -85 127 117 -79 88 63 -120 6
17+
38 7 84 -111 -97 -111 25 88 71 -27 116 126 108 -18 55 -34 -111 12
18+
-110 -20 47 98 10 -68 85 104 -58 90 72 107 107 -92 -5 -33 -110 15
19+
-88 97 -85 92 -57 -127 21 -1 -127 -90 -27 14 23 -28 113 -38 -127 10
20+
-98 -59 -89 -22 -102 -111 68 85 -49 -52 72 112 84 -1 -90 -87 -111 10
21+
-23 -68 63 -77 -118 -36 17 -28 69 11 -84 -37 72 -121 -26 101 -121 2
22+
62 36 -48 -94 -36 -108 -23 99 -74 -27 -111 -41 88 75 -64 103 -111 5
23+
-110 32 -9 -34 19 41 119 -51 57 27 -78 46 40 93 -1 71 -110 15
24+
26 16 -111 -47 -10 77 -86 90 35 -83 12 -24 -98 15 -79 -33 -111 13
25+
74 -107 -69 36 -120 -16 -82 -125 8 -34 -35 78 -33 -16 34 71 -125 8
26+
-39 -111 -46 -64 16 68 -16 1 -67 45 -95 -22 79 -45 -32 -38 -111 14
27+
-70 36 115 -49 18 -70 30 -50 88 92 22 -123 -108 -56 -72 47 -123 4
28+
35 -81 123 -72 83 2 36 33 45 108 57 39 -110 32 -73 31 -110 3
29+
-118 -44 7 37 -40 13 47 117 -46 -98 70 25 111 107 42 -59 -118 15
30+
-94 115 117 -1 -26 14 -84 -126 26 114 -70 -27 -112 124 -99 120 -126 8
31+
97 -82 96 111 3 116 73 66 29 -85 83 83 -103 99 -34 -46 -103 3
32+
-5 -28 -90 -35 -14 -16 -14 -20 45 72 14 109 112 114 -6 -85 -90 13
33+
-25 -72 100 -12 -70 116 -44 -5 -31 -117 39 123 58 56 62 29 -117 6
34+
-39 11 -9 -100 -97 49 92 39 14 -11 27 7 91 -121 55 -127 -127 0
35+
-59 -4 -4 -2 38 -105 56 105 -56 71 -88 -39 121 112 -79 112 -105 10
36+
-30 -18 80 -125 20 88 84 -6 100 -127 -53 -6 121 69 -70 -62 -127 6
37+
-93 -126 17 -45 110 100 -35 84 120 -26 -64 -76 127 -107 -98 -111 -126 14
38+
-66 -105 -102 -39 122 -19 65 47 -40 -11 4 -112 -15 51 -20 54 -112 4
39+
40 80 -119 -68 -68 99 44 -124 -103 112 86 86 116 46 111 73 -124 8
40+
22 14 -69 -25 -8 120 -117 -116 17 88 -80 15 -20 -39 53 -92 -117 9
41+
-3 112 78 1 53 29 -117 -64 -44 -18 81 5 127 -60 -117 96 -117 9
42+
-110 89 -99 -11 -73 -126 -103 -38 -72 -78 -74 -64 -111 -64 -2 -42 -126 10
43+
-54 -22 70 -22 3 25 99 -47 -47 103 -101 10 -56 -34 90 -98 -101 5
44+
-39 -126 38 74 -33 -110 -43 -32 116 12 -2 -21 9 111 -83 -110 -126 14
45+
54 -60 91 -65 78 -33 29 -128 55 -29 27 -83 120 4 68 -53 -128 8
46+
-108 -111 64 48 -105 49 -90 104 -18 109 112 -40 123 110 -84 -95 -111 14
47+
-23 8 116 -57 61 -8 31 -109 -82 106 -71 53 -73 -65 -79 -82 -109 8
48+
106 -116 -46 -19 7 -26 116 56 -51 -35 -12 -50 16 70 97 -53 -116 14
49+
-116 -66 120 75 -7 -21 -45 -46 -32 5 93 -20 -84 -107 9 16 -116 15
50+
4 125 -60 -54 88 57 -88 26 -70 100 114 23 -16 126 54 -41 -88 9
51+
-57 -20 81 -109 -86 64 -96 7 114 -69 -17 24 -128 16 -76 -71 -128 3
52+
9 107 -2 15 -78 -78 -88 -45 93 11 -46 -7 66 -98 -111 -113 -113 0
53+
65 -100 -26 -25 118 -128 -19 -8 15 -107 87 2 90 -72 26 113 -128 10
54+
34 95 103 4 60 -38 -35 46 93 -39 -4 -67 47 47 -36 -71 -71 0
55+
-93 -43 31 -113 -120 50 36 110 93 -103 125 -14 99 20 -92 0 -120 11
56+
-9 96 -23 -15 31 56 -81 -14 99 -41 -40 -86 -34 -72 126 30 -86 4
57+
-108 -96 -28 -46 6 -34 -84 49 4 -47 74 47 -61 -84 -72 45 -108 15
58+
47 118 107 29 -126 85 -121 -26 22 11 79 10 119 -63 -33 -122 -126 11
59+
-67 4 29 -6 25 13 -19 9 -83 69 -92 3 -95 8 -64 -63 -95 3
60+
115 -87 -42 -47 -114 -73 -53 -44 31 127 71 35 36 -46 103 -71 -114 11
61+
-59 9 -78 77 -24 69 79 -66 0 -4 117 -76 37 -79 34 -123 -123 0
62+
106 2 16 85 107 -24 -27 -126 37 59 -87 63 11 116 126 126 -126 8
63+
86 -73 -117 20 -100 17 58 23 -92 -2 -93 -117 121 46 72 62 -117 13
64+
-67 -120 2 -15 64 112 59 -72 -47 69 94 -92 84 46 -116 -98 -120 14
65+
21 23 -111 -106 92 -10 22 -34 66 83 23 -48 -62 7 -104 -73 -111 13
66+
19 68 -108 -19 53 -43 55 64 -53 -89 77 -102 40 -119 -7 -30 -119 2
67+
-84 48 -86 29 81 126 75 -39 -127 4 -70 -53 43 -59 124 -73 -127 7
68+
21 60 -81 -112 116 -95 63 -31 -70 105 93 107 -81 12 45 15 -112 12
69+
-61 10 -65 -17 -94 48 65 -47 10 23 115 -60 -39 -17 91 5 -94 11
70+
107 122 57 35 34 91 -67 98 70 -111 120 93 16 63 -111 -16 -111 6
71+
1 -82 -71 85 120 -108 96 -115 -124 -105 41 2 -9 13 -100 106 -124 7
72+
-68 6 28 -18 106 -116 24 -116 24 41 -123 -70 116 -86 -117 76 -123 5
73+
15 35 126 -105 -5 51 17 -41 -104 -119 -58 -50 -85 -89 -87 -82 -119 6
74+
-80 -26 62 57 114 -69 -72 39 -40 56 107 -56 2 -42 -124 -22 -124 1
75+
-108 113 -8 -3 82 -108 -70 117 -18 -9 49 112 29 70 -23 -103 -108 15
76+
-16 36 -119 76 98 112 5 -5 46 -57 20 -48 -29 74 -27 -109 -119 13
77+
57 -95 13 -49 -90 64 -59 48 45 -24 82 48 119 113 -60 -14 -95 14
78+
36 -56 -29 110 99 52 103 -49 -64 -35 103 25 62 -114 20 15 -114 2
79+
-90 -70 -89 84 30 -67 -104 -48 -3 101 17 85 -34 -79 -94 -125 -125 0
80+
-12 -40 54 -23 -99 -115 70 108 57 -126 76 -19 60 43 123 38 -126 6
81+
-126 -60 -83 -43 -29 -107 -99 29 8 117 86 41 124 -115 -21 18 -126 15
82+
6 94 105 3 55 6 10 -101 63 -66 -85 -110 5 -88 -128 -96 -128 1
83+
118 -56 7 -102 28 79 58 -33 -13 32 9 -14 121 -115 7 104 -115 2
84+
5 97 100 5 89 36 27 34 122 -102 108 81 -64 -115 -115 68 -115 2
85+
41 -52 -99 -21 -14 116 -39 -35 105 110 18 -7 -3 57 95 77 -99 13
86+
-105 -22 15 55 45 113 -31 -55 -108 29 120 114 -107 99 9 -37 -108 7
87+
68 -37 87 16 -115 -117 -31 -32 16 104 89 -122 47 26 89 -119 -122 4
88+
100 0 82 -32 -40 116 -59 90 50 80 -75 61 -83 -80 92 45 -83 3
89+
110 -6 29 80 20 28 -70 -80 -112 21 -57 -31 55 -73 94 -29 -112 7
90+
21 -85 21 73 -123 -75 45 -101 -1 57 12 -6 48 -1 -19 2 -123 11
91+
80 51 -41 -11 -80 -80 -53 21 -110 126 66 81 62 -104 -41 36 -110 7
92+
82 -13 64 -69 90 -67 -126 86 -96 -30 101 -16 70 -43 38 34 -126 9
93+
-111 -115 109 69 -120 -50 126 -41 -66 -87 -77 31 108 70 42 20 -120 11
94+
-62 -31 -69 124 127 19 45 81 -64 83 -87 104 21 -68 110 85 -87 5
95+
-38 17 -57 -119 -59 -2 58 -67 -69 -96 3 -108 -24 72 -63 123 -119 12
96+
14 124 110 -44 29 63 -108 85 5 -109 -66 -86 -56 59 45 98 -109 6
97+
-45 -59 -51 8 -114 -56 104 -112 50 107 24 -10 -37 38 2 33 -114 11
98+
-34 -51 65 13 92 -54 33 41 23 -87 -114 -2 -123 -37 -52 18 -123 3
99+
35 -77 104 12 12 -75 110 24 -54 16 -36 -115 108 105 87 -50 -115 4
100+
-40 -38 29 110 99 59 59 -105 -97 -96 0 -84 116 34 -79 45 -105 8

0 commit comments

Comments
 (0)