forked from diffblue/hw-cbmc
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCHANGELOG
More file actions
176 lines (151 loc) · 6.13 KB
/
CHANGELOG
File metadata and controls
176 lines (151 loc) · 6.13 KB
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# EBMC 6.0
* VCD traces now written into separate files per property
* SMV: removed legacy keywords EXTERN and switch
* SMV: use NuSMV's operator precedence, as opposed to CMU SMV's
* SystemVerilog: semantics fix for cover disable iff
* SystemVerilog: nets from package scopes
# EBMC 5.11
* SystemVerilog: $unit::
* SystemVerilog: keyed array assignment patterns
* Transition property engine
* Liveness lemma engine
* Strong SVA sequence semantics for the Buechi instrumentation
# EBMC 5.10
* cast properties given with -p to Boolean if need be
* engine heuristic: add structural completeness threshold
* SystemVerilog: functions with output ports
* SystemVerilog: typedefs with variable dimensions
* SystemVerilog: break, continue and return statements
* SystemVerilog: assignments to a part-select of a struct
* SystemVerilog: timeunits and timeprecision
* SystemVerilog: recursive module definitions
* SystemVerilog: enums in compilation-unit scope
* SystemVerilog: typdefs in compilation-unit scope
* SystemVerilog: functions in package and compilation-unit scopes
* SystemVerilog: default direction for task/function ports
* SystemVerilog: assignment patterns for unions
* SystemVerilog: assignment patterns for vectors
* SystemVerilog: immediate cover statement
* SystemVerilog: fix for SVA ##[a:b]
* SystemVerilog: fix for weak [->n] and [=n]
# EBMC 5.9
* Verilog: use top-level module for verification, instead of "main"
* Verilog: fix for four-valued | and &
* Verilog: fix for typed parameter ports
* Verilog: fix for the type of implicit nets for continous assignments
* Verilog: fix for assignments to 1-bit types
* SystemVerilog: fix for type parameters
* SystemVerilog: type parameter ports
* SystemVerilog: fix for checkers with multiple ports
* SystemVerilog: for loops with multiple initializations
* SystemVerilog: for loops with variable declarations
* SMV: word constants
* SMV: IVAR declarations
* SMV: bit selection operator
* SMV: integer range expressions
# EBMC 5.8
* AIG/netlist engine: fix for conversion of extract bits operator
* Verilog: semantic fix for output register ports
* SystemVerilog: cover sequence
* SystemVerilog: labeled immediate assert/assume/cover statements
* SystemVerilog: semantics fix for explicit casts
# EBMC 5.7
* Verilog: --initial-zero changes the default value from nondet to zero
* Verilog: `elsif preprocessor directive
* Verilog: fix for named generate blocks
* Verilog: $onehot and $onehot0 are now elaboration-time constant
* Verilog: $isunknown
* Verilog: fix for semantics of assignment contexts
* SystemVerilog: fix for #-# and #=# for empty matches
* SystemVerilog: fix for |-> and |=> for empty matches
* SystemVerilog: ref module port direction
* LTL/SVA to Buechi with --buechi
* SMV: abs, bool, count, max, min, toint, word1
* BMC: new encoding for F, avoiding spurious traces
* EBMC: verification results now have "result" verbosity level
* Soundness fix for combination of $past and k-induction
# EBMC 5.6
* SystemVerilog: [*] and [+] SVA operators
* SystemVerilog: typedefs from package scopes
* SystemVerilog: assignment patterns with keys for structs
* SystemVerilog: unbased unsigned literals '0, '1, 'x, 'z
* SystemVerilog: first_match
* SystemVerilog: [->n] and [=n]
* SystemVerilog: within
* SystemVerilog: bugfix for |-> and |=>
* SystemVerilog: bugfix for SVA sequence and
* SystemVerilog: strong/weak sequence semantics
* Verilog: 'dx, 'dz
* SMV: LTL V operator, xnor operator
* SMV: word types and operators
* --smv-word-level outputs the model as word-level SMV
# EBMC 5.5
* If no engine is given, EBMC now selects an engine heuristically, instead
of doing BMC with k=1
* Verilog: bugfix for $onehot0
* Verilog: fix for primitive gates with more than two inputs
* Verilog: Support $past when using AIG-based engines
* Verilog: fix for nor/nand/xnor primitive gates
* SystemVerilog: $bitstoreal/$bitstoshortreal, $realtobits/$shortrealtobits
* SystemVerilog: $itor, $rtoi
* SystemVerilog: chandle, event, string
* SystemVerilog: package scope operator
* SystemVerilog: checkers
* SystemVerilog: clocking block declarations
# EBMC 5.4
* BMC: Cadical support with --cadical
* BMC: iterative constraint strengthening is now default;
use --bmc-with-assumptions to re-enable the previous algorithm.
* BMC: support SVA sequence intersect
* BMC: support SVA sequence throughout
* SystemVerilog: streaming concatenation {<<{...}} and {>>{...}}
* SystemVerilog: set membership operator
* SystemVerilog: named sequences
* ebmc: --smt-netlist and --dot-netlist now honor --outfile
# EBMC 5.3
* SystemVerilog: fix for nets implicitly declared for port connections
* SystemVerilog: $typename
* SystemVerilog: SVA [*n]
* Verilog: allow indexed part select
* word-level BMC: fix for F/s_eventually and U/s_until
* IC3: liveness to safety translation
* Assumptions are not disabled when using --property
# EBMC 5.2
* SystemVerilog: defines can now be set on the command line
* SystemVerilog: improvements to elaboration-time constant folding
* SystemVerilog: continuous assignments to variables
* SystemVerilog: additional SVA operators
* SystemVerilog: wildcard equality and inequality operators
* SystemVerilog: restrict
* word-level BMC supports full LTL
* SMV: LTL U and R
* SMV: ?: operator
# EBMC 5.1
* SVA abort properties and disable iff
* $countones
* fix for SVA 'and' and 'or', and sequence implication
* SystemVerilog: compound blocking assignments
* SystemVerilog: endmodule identifiers
* SMV: fix for arithmetic on range types that start from non-zero
* SMV: CTL operators AR, ER, AU, EU
# EBMC 5.0
* Major revision of the SystemVerilog frontend, extending the support for SVA
* CTL model checking with BDDs
* Added a Homebrew formula
* WASM build
* Fix for AIG-based engine
* SystemVerilog: $low, $high, $increment, $left, $right
* SystemVerilog: $stable, $rose, $fell, $changed, $past
* SystemVerilog named properties
* SystemVerilog: fix for always_comb
* SystemVerilog: size casts
* SystemVerilog: cover properties
* SystemVerilog: enums
* SystemVerilog: added all integer types
* Verilog: parameter ports
* --json-modules
* structs, unions
* SVA followed-by operators, SVA if, indexed nexttime
* random trace generation
* SMV identifier syntax fix
* SMV: LTLSPEC