Icarus Verilog Bugs » History » Version 7
Sergey Smolov, 04/28/2018 06:29 PM
1 | 1 | Sergey Smolov | h1. Icarus Verilog Bugs |
---|---|---|---|
2 | |||
3 | 6 | Sergey Smolov | The bugs are listed here can be reproduced on tests for Verilog Translator project (so called "ieee-tests"). |
4 | 1 | Sergey Smolov | |
5 | # test_03_08_01_1.v |
||
6 | <pre> |
||
7 | test_03_08_01_1.v:25: syntax error |
||
8 | test_03_08_01_1.v:27: error: malformed statement |
||
9 | test_03_08_01_1.v:28: syntax error |
||
10 | test_03_08_01_1.v:33: error: malformed statement |
||
11 | test_03_08_01_1.v:34: syntax error |
||
12 | test_03_08_01_1.v:39: error: malformed statement |
||
13 | test_03_08_01_1.v:40: syntax error |
||
14 | </pre> |
||
15 | 4 | Sergey Smolov | *Cause*: attributes for "case" statement branches like "(* full_case, parallel_case *)" are unsupported. |
16 | 2 | Sergey Smolov | # test_03_08_01_2.v |
17 | <pre> |
||
18 | test_03_08_01_2.v:25: syntax error |
||
19 | test_03_08_01_2.v:27: error: malformed statement |
||
20 | test_03_08_01_2.v:28: syntax error |
||
21 | test_03_08_01_2.v:32: error: malformed statement |
||
22 | test_03_08_01_2.v:33: syntax error |
||
23 | </pre> |
||
24 | 4 | Sergey Smolov | *Cause*: attributes for "case" statement branches like "(* full_case *)" are unsupported. |
25 | 3 | Sergey Smolov | # test_03_08_01_6.v |
26 | <pre> |
||
27 | test_03_08_01_6.v:25: syntax error |
||
28 | test_03_08_01_6.v:25: error: malformed statement |
||
29 | </pre> |
||
30 | 4 | Sergey Smolov | *Cause*: attributes for assignments like "a = b + (* mode = "cla" *) c;" are unsupported. |
31 | 1 | Sergey Smolov | # test_03_08_01_7.v |
32 | <pre> |
||
33 | test_03_08_01_7.v:25: syntax error |
||
34 | test_03_08_01_7.v:25: error: malformed statement |
||
35 | </pre> |
||
36 | 4 | Sergey Smolov | *Cause*: attributes for assignments like "a = add (* mode = "cla" *) (b, c);" are unsupported. |
37 | 3 | Sergey Smolov | # test_03_08_01_8.v |
38 | <pre> |
||
39 | test_03_08_01_8.v:25: syntax error |
||
40 | test_03_08_01_8.v:25: error: malformed statement |
||
41 | </pre> |
||
42 | 4 | Sergey Smolov | *Cause*: attributes for assignments like "a = b ? (* no_glitch *) c : d;" are unsupported. |
43 | 1 | Sergey Smolov | # test_04_03_01_1.v |
44 | <pre> |
||
45 | test_04_03_01_1.v:24: sorry: trireg nets not supported. |
||
46 | </pre> |
||
47 | 4 | Sergey Smolov | *Cause*: cannot parse "trireg (small) storeit;" |
48 | 1 | Sergey Smolov | # test_04_03_02_1.v |
49 | <pre> |
||
50 | test_04_03_02_1.v:22: syntax error |
||
51 | test_04_03_02_1.v:22: error: invalid module item. |
||
52 | test_04_03_02_1.v:23: syntax error |
||
53 | test_04_03_02_1.v:23: error: invalid module item. |
||
54 | </pre> |
||
55 | 4 | Sergey Smolov | *Cause*: cannot parse "tri1 scalared [63:0] bus64;" |
56 | 1 | Sergey Smolov | # test_04_04_01_1.v |
57 | <pre> |
||
58 | test_04_04_01_1.v:22: sorry: trireg nets not supported. |
||
59 | test_04_04_01_1.v:23: sorry: trireg nets not supported. |
||
60 | test_04_04_01_1.v:25: syntax error |
||
61 | test_04_04_01_1.v:25: error: invalid module item. |
||
62 | </pre> |
||
63 | 4 | Sergey Smolov | *Cause*: cannot parse "trireg a;" |
64 | 3 | Sergey Smolov | # test_04_09_03_1_1.v |
65 | <pre> |
||
66 | test_04_09_03_1_1.v:26: sorry: only 1 dimensional arrays are currently supported. |
||
67 | test_04_09_03_1_1.v:28: sorry: only 1 dimensional arrays are currently supported. |
||
68 | </pre> |
||
69 | 4 | Sergey Smolov | *Cause*: cannot parse "reg arrayb[7:0][0:255];" |
70 | 3 | Sergey Smolov | # test_04_09_03_1_2.v |
71 | <pre> |
||
72 | test_04_09_03_1_2.v:26: sorry: only 1 dimensional arrays are currently supported. |
||
73 | test_04_09_03_1_2.v:28: sorry: only 1 dimensional arrays are currently supported. |
||
74 | </pre> |
||
75 | 4 | Sergey Smolov | *Cause*: cannot parse "reg arrayb[7:0][0:255];" |
76 | 3 | Sergey Smolov | # test_04_10_03_2.v |
77 | <pre> |
||
78 | test_04_10_03_2.v:23: syntax error |
||
79 | test_04_10_03_2.v:23: error: invalid module item. |
||
80 | test_04_10_03_2.v:24: syntax error |
||
81 | test_04_10_03_2.v:24: error: invalid module item. |
||
82 | </pre> |
||
83 | 4 | Sergey Smolov | *Cause*: the "specparam" is unsupported. |
84 | 3 | Sergey Smolov | # test_05_01_14_1.v |
85 | <pre> |
||
86 | test_05_01_14_1.v:30: error: Array b['sd3:'sd0] cannot be indexed by a range. |
||
87 | </pre> |
||
88 | 4 | Sergey Smolov | *Cause*: cannot parse "result = {a, b[3:0], w, 3'b101};" |
89 | 1 | Sergey Smolov | # test_05_02_01_4.v |
90 | <pre> |
||
91 | test_05_02_01_4.v:54: error: Unable to bind wire/reg/memory `x' in `test' |
||
92 | test_05_02_01_4.v:58: error: Unable to bind wire/reg/memory `z' in `test' |
||
93 | </pre> |
||
94 | 4 | Sergey Smolov | *Cause*: cannot parse "addr = x;" |
95 | 3 | Sergey Smolov | # test_05_02_02_2.v |
96 | <pre> |
||
97 | test_05_02_02_2.v:25: sorry: only 1 dimensional arrays are currently supported. |
||
98 | test_05_02_02_2.v:26: sorry: only 1 dimensional arrays are currently supported. |
||
99 | </pre> |
||
100 | 4 | Sergey Smolov | *Cause*: cnnot parse "wire threed_array[0:255][0:255][0:7];" |
101 | 1 | Sergey Smolov | # test_05_03_00_1.v |
102 | <pre> |
||
103 | test_05_03_00_1.v:25: warning: choosing typ expression. |
||
104 | </pre> |
||
105 | 4 | Sergey Smolov | *Cause*: "parameter val = (32'd 50: 32'd 75: 32'd 100);" |
106 | 1 | Sergey Smolov | # test_06_01_03_1.v |
107 | <pre> |
||
108 | test_06_01_03_1.v:24: sorry: net delays not supported. |
||
109 | </pre> |
||
110 | 4 | Sergey Smolov | *Cause*: "wire #10 wireA;" |
111 | 3 | Sergey Smolov | # test_07_14_01_1.v |
112 | 1 | Sergey Smolov | <pre> |
113 | test_07_14_01_1.v:25: warning: choosing typ expression. |
||
114 | test_07_14_01_1.v:25: warning: choosing typ expression. |
||
115 | test_07_14_01_1.v:25: warning: choosing typ expression. |
||
116 | test_07_14_01_1.v:26: warning: choosing typ expression. |
||
117 | test_07_14_01_1.v:26: warning: choosing typ expression. |
||
118 | test_07_14_01_1.v:26: warning: choosing typ expression. |
||
119 | </pre> |
||
120 | 6 | Sergey Smolov | *Cause*: "bufif0 #(5:7:9, 8:10:12, 15:18:21) b1 (io1, io2, dir);" |
121 | 1 | Sergey Smolov | # test_07_14_01_2.v |
122 | <pre> |
||
123 | test_07_14_01_2.v:26: warning: choosing typ expression. |
||
124 | test_07_14_01_2.v:27: warning: choosing typ expression. |
||
125 | </pre> |
||
126 | 6 | Sergey Smolov | *Cause*: " #(95:100:105) clk = 1;" |
127 | 1 | Sergey Smolov | # test_07_14_02_2_1.v |
128 | <pre> |
||
129 | test_07_14_02_2_1.v:25: sorry: trireg nets not supported. |
||
130 | </pre> |
||
131 | 6 | Sergey Smolov | *Cause*: "trireg ( large ) #(0,0,50) cap1;" |
132 | 1 | Sergey Smolov | # test_07_14_02_2_2.v |
133 | <pre> |
||
134 | test_07_14_02_2_2.v:26: sorry: trireg nets not supported. |
||
135 | </pre> |
||
136 | 6 | Sergey Smolov | *Cause*: "trireg ( large ) #(0,0,50) cap1;" |
137 | 1 | Sergey Smolov | # test_08_06_00_1.v |
138 | <pre> |
||
139 | test_08_06_00_1.v:46: syntax error |
||
140 | test_08_06_00_1.v:46: error: syntax error in parameter value assignment list. |
||
141 | test_08_06_00_1.v:46: error: Invalid module instantiation |
||
142 | 6 | Sergey Smolov | *Cause*: "d_edge_ff #p3 d_inst (q, clock, data);" |
143 | 1 | Sergey Smolov | </pre> |
144 | 3 | Sergey Smolov | # test_08_07_00_1.v |
145 | 1 | Sergey Smolov | <pre> |
146 | test_08_07_00_1.v:30: syntax error |
||
147 | </pre> |
||
148 | 6 | Sergey Smolov | *Cause*: " ? ?? 01 : ? : 1 ;" |
149 | 3 | Sergey Smolov | # test_09_06_00_1.v |
150 | 1 | Sergey Smolov | <pre> |
151 | 3 | Sergey Smolov | test_09_06_00_1.v:27: syntax error |
152 | test_09_06_00_1.v:28: error: invalid module item. |
||
153 | test_09_06_00_1.v:29: syntax error |
||
154 | test_09_06_00_1.v:29: error: Invalid module instantiation |
||
155 | test_09_06_00_1.v:30: error: Invalid module instantiation |
||
156 | test_09_06_00_1.v:31: error: Invalid module instantiation |
||
157 | 1 | Sergey Smolov | test_09_06_00_1.v:34: error: invalid module item. |
158 | 3 | Sergey Smolov | test_09_06_00_1.v:35: syntax error |
159 | test_09_06_00_1.v:35: error: Invalid module instantiation |
||
160 | test_09_06_00_1.v:36: error: Invalid module instantiation |
||
161 | </pre> |
||
162 | 6 | Sergey Smolov | *Cause*: "begin : mult" |
163 | 3 | Sergey Smolov | # test_09_06_00_2.v |
164 | 1 | Sergey Smolov | <pre> |
165 | 3 | Sergey Smolov | test_09_06_00_2.v:23: syntax error |
166 | test_09_06_00_2.v:24: error: invalid module item. |
||
167 | test_09_06_00_2.v:25: syntax error |
||
168 | test_09_06_00_2.v:25: error: Invalid module instantiation |
||
169 | 1 | Sergey Smolov | test_09_06_00_2.v:26: error: Invalid module instantiation |
170 | 3 | Sergey Smolov | test_09_06_00_2.v:29: error: invalid module item. |
171 | test_09_06_00_2.v:30: syntax error |
||
172 | test_09_06_00_2.v:30: error: Invalid module instantiation |
||
173 | </pre> |
||
174 | 6 | Sergey Smolov | *Cause*: "begin : count1s" |
175 | 1 | Sergey Smolov | # test_09_07_05_4.v |
176 | <pre> |
||
177 | 3 | Sergey Smolov | test_09_07_05_4.v:33: internal error: NetProc::nex_input not implemented |
178 | 6 | Sergey Smolov | </pre> |
179 | 7 | Sergey Smolov | *Cause*: "@* // equivalent to @(c or d) |
180 | x = c ^ d;" |
||
181 | 3 | Sergey Smolov | # test_09_07_07_1.v |
182 | 6 | Sergey Smolov | <pre> |
183 | 3 | Sergey Smolov | test_09_07_07_1.v:32: syntax error |
184 | </pre> |
||
185 | 7 | Sergey Smolov | *Cause*: "repeat (-3) @ (posedge clk)" |
186 | 3 | Sergey Smolov | # test_10_03_00_5.v |
187 | <pre> |
||
188 | 7 | Sergey Smolov | test_10_03_00_5.v:44: syntax error |
189 | test_10_03_00_5.v:45: error: malformed statement |
||
190 | test_10_03_00_5.v:48: syntax error |
||
191 | test_10_03_00_5.v:49: error: malformed statement |
||
192 | 3 | Sergey Smolov | </pre> |
193 | 7 | Sergey Smolov | *Cause*: "begin : posedge(clk)" |
194 | 3 | Sergey Smolov | # test_12_02_00_1.v |
195 | <pre> |
||
196 | 7 | Sergey Smolov | test_12_02_00_1.v:57: error: Range expressions must be constant. |
197 | test_12_02_00_1.v:57 : This MSB expression violates the rule: LOG2(DEPTH) |
||
198 | 3 | Sergey Smolov | </pre> |
199 | 7 | Sergey Smolov | *Cause*: "reg [LOG2(DEPTH):0] depth;" |
200 | 6 | Sergey Smolov | # test_12_03_07_1.v |
201 | 3 | Sergey Smolov | <pre> |
202 | test_12_03_07_1.v:29: error: Scalar port ``net_r'' has a vectored net declaration [64:1]. |
||
203 | 7 | Sergey Smolov | test_12_03_07_1.v:26: error: no wire/reg net_r in module driver. |
204 | test_12_03_07_1.v:33: error: Scalar port ``net_r'' has a vectored net declaration [64:1]. |
||
205 | test_12_03_07_1.v:32: error: no wire/reg net_r in module receiver. |
||
206 | test_12_03_07_1.v:29: error: Net net_r is not defined in this context. |
||
207 | 6 | Sergey Smolov | test_12_03_07_1.v:36: error: Unable to bind wire/reg/memory `net_r' in `receiver' |
208 | 3 | Sergey Smolov | </pre> |
209 | 7 | Sergey Smolov | *Cause*: |
210 | 3 | Sergey Smolov | <pre> |
211 | 7 | Sergey Smolov | 26: module driver (net_r); |
212 | 27: output net_r; |
||
213 | 28: real r; |
||
214 | 29: wire [64:1] net_r = $realtobits(r); |
||
215 | 30: endmodule |
||
216 | 31: |
||
217 | 32: module receiver (net_r); |
||
218 | 33: input net_r; |
||
219 | 34: wire [64:1] net_r; |
||
220 | 35: real r; |
||
221 | 36: initial assign r = $bitstoreal (net_r); |
||
222 | 37: endmodule |
||
223 | 3 | Sergey Smolov | </pre> |
224 | # test_12_04_02_1.v |
||
225 | <pre> |
||
226 | test_12_04_02_1.v:46: syntax error |
||
227 | test_12_04_02_1.v:46: error: invalid module item. |
||
228 | </pre> |
||
229 | 7 | Sergey Smolov | *Cause*: "else;" |