11About
22=======
33
4- EBMC is a bounded model checker for the Verilog language (and other HW
5- specification languages). The verification is performed by synthesizing a
6- transition system from the Verilog, unwinding the transition system (up to a
7- certain bound), and then producing a decision problem. The decision problem
8- encodes the circuit and the negation of the property under verification.
9- Hence if satisfiable, the tool produces a counterexample demonstrating
10- violation of the property. EBMC can use CBMC's bit-vector solver or Z3
11- or CVC4 to solve the decision problem.
4+ EBMC is a free, open-source formal verification tool for hardware designs.
5+ It can read Verilog 2005, SystemVerilog 2017, NuSMV and netlists (given in
6+ ISCAS89 format). Properties can be given in LTL or a fragment of
7+ SystemVerilog Assertions. It includes both bounded and (despite its name)
8+ unbounded Model Checking engines, i.e., it can both discover bugs and prove
9+ the absence of bugs.
1210
1311For full information see [ cprover.org] ( http://www.cprover.org/ebmc/ ) .
1412
1513Usage
1614=====
1715
18- Let us assume we have the following SystemVerilog code in ` main.sv ` .
16+ Let us assume we have the following SystemVerilog model in ` main.sv ` .
1917
2018``` main.sv
2119module main(input clk, x, y);
@@ -40,10 +38,10 @@ module main(input clk, x, y);
4038endmodule
4139```
4240
43- Then we can run the EBMC verification as
41+ We can then invoke the BMC engine in EBMC as follows:
4442
45- ` $> ebmc main.sv --module main --bound 3 `
43+ ` $ ebmc main.sv --top main --bound 3 `
4644
47- setting the unwinding bound to ` 3 ` and running the verification of the module ` main ` .
45+ This sets the unwinding bound to ` 3 ` and the top-level module to ` main ` .
4846
49- For more information see [ EBMC Manual] ( http://www.cprover.org/ebmc/manual/ )
47+ For more information see [ EBMC Manual] ( http://www.cprover.org/ebmc/manual/ ) .
0 commit comments