@@ -215,6 +215,36 @@ expr2verilogt::resultt expr2verilogt::convert_sva_sequence_concatenation(
215
215
216
216
/* ******************************************************************\
217
217
218
+ Function: expr2verilogt::convert_sva_sequence_first_match
219
+
220
+ Inputs:
221
+
222
+ Outputs:
223
+
224
+ Purpose:
225
+
226
+ \*******************************************************************/
227
+
228
+ expr2verilogt::resultt expr2verilogt::convert_sva_sequence_first_match (
229
+ const sva_sequence_first_match_exprt &src)
230
+ {
231
+ std::string dest = " first_match(" ;
232
+
233
+ dest += convert_rec (src.lhs ()).s ;
234
+
235
+ if (src.rhs ().is_not_nil ())
236
+ {
237
+ dest += " , " ;
238
+ dest += convert_rec (src.rhs ()).s ;
239
+ }
240
+
241
+ dest += ' )' ;
242
+
243
+ return {verilog_precedencet::MAX, dest};
244
+ }
245
+
246
+ /* ******************************************************************\
247
+
218
248
Function: expr2verilogt::convert_binary
219
249
220
250
Inputs:
@@ -1782,7 +1812,8 @@ expr2verilogt::resultt expr2verilogt::convert_rec(const exprt &src)
1782
1812
// not sure about precedence
1783
1813
1784
1814
else if (src.id () == ID_sva_sequence_first_match)
1785
- return convert_function (" first_match" , src);
1815
+ return convert_sva_sequence_first_match (
1816
+ to_sva_sequence_first_match_expr (src));
1786
1817
1787
1818
else if (src.id () == ID_sva_sequence_intersect)
1788
1819
return precedence = verilog_precedencet::MIN,
@@ -1956,6 +1987,9 @@ expr2verilogt::resultt expr2verilogt::convert_rec(const exprt &src)
1956
1987
else if (src.id () == ID_verilog_value_range)
1957
1988
return convert_value_range (to_verilog_value_range_expr (src));
1958
1989
1990
+ else if (src.id () == ID_postincrement)
1991
+ return convert_sva_unary (to_unary_expr (src), " ++" );
1992
+
1959
1993
else if (
1960
1994
src.id () == ID_nand || src.id () == ID_nor || src.id () == ID_xnor ||
1961
1995
src.id () == ID_xor)
0 commit comments