-
Notifications
You must be signed in to change notification settings - Fork 0
Artifact for Language Equation Solving via Boolean Automata Manipulation
License
WanHsuanLin/leqABC
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
# Artifact for Language Equation Solving via Boolean Automata Manipulation ## Introduction This is a C++ implemantation of the algorithms proposed in Solving Language Equation Solving via Boolean Automata Manipulation ## Installation Type `make` to complie and the executable is `abc` ``` make ``` It has been tested successfully under Ubuntu 20.04.1 with GCC_VERSION=9.3.0 ## Execution Run `./abc` from your console and execute command `solve` to solve the language equantion. `solve -h` shows detailed arguments of the command. You can also run the `ssat` command from the console, as the following examples show. ## Benchmarks All benchmarks are in directory `benchmark/` and `casestudy/`. Directory `benchmark` contains ISCAS (directory `iccas/`) and ITC (directory`itc99-poli/i99t/`) benchmarks. For ISCAS benchmark, each directory in `iccas/` consists of the original circuit S `s*.bench`, the fixed component `s*fle.mv`, a particular solution to the unknown part X `s*X.mv`, and two scripts. The script `s*abc.script` is used to solve the language equation problem. It specifies the input files F S and the sets of input symbols U V, The script `s*abcv.script` solves the language equation problem and verifies the solution. It specifies the input files F S, the file R for verification, and the sets of input symbols U V. For ITC benchmark, each directory in `itc99-poli/i99t/` consists of the original circuit S `b*.blif`, the fixed component F `b*fle.blif`, a particular solution R to the unknown part X `b*X.blif`, and two scripts. The script `b*abc.script` is used to solve the language equation problem. It specifies the input files F S and the sets of input symbols U V, The script `b*abcv.script` will solve the language equation problem and verify the solution. It specifies the input files F S, the file R for verification, and the sets of input symbols U V. Directory `casestudy/` consists of six directory b0410 to b0460 derived from itc99-poli/i99t/b04 with different latch number in X. For example, directory b0410 indicates that the latch number in b04X.blif is 10. Each directory in `casestudy/` consists of the original circuit S `b04.blif`, the fixed component F `b04fle.blif`, a particular solution R to the unknown part X `b04X.blif`, and two scripts. The script `b04abc.script` is used to solve the language equation problem. It specifies the input files F S and the sets of input symbols U V, The script `b04abcv.script` will solve the language equation problem and verify the solution. It specifies the input files F S, the file R for verification, and the sets of input symbols U V. Note that all the scripts solve the language equantion without optimization for F and S. To perform optimization, please add `-w` to the corresponding script. For example, to perform optimization for `benchmark/iccas/s208/s208abc.script`, we can modify the command in script to `solve -w X,Clear,C_8,C_7,C_6,C_5,C_4,C_3,C_2,C_1,C_0,Y_8,Y_7,Y_6,Y_5 Y_4,Y_3,Y_2,Y_1 benchmark/iccas/s208/s208.bench benchmark/iccas/s208/s208fle.mv` by adding `-w`. ## Reproduce the experimental results There are two scripts. To run ISCAS benchmarks, type `./runabcIccas.sh <num of circuit>`. For example, type `./runabcIccas.sh 208` to solve language equation with circuit s208. To run ISCAS benchmarks and verify the solution, type `./runabcIccas.sh <num of circuit> v`. For example, type `./runabcIccas.sh 208 v` to solve language equation and verify the solution with circuit s208. To run ITC benchmarks, type `./runabcItc.sh <num of circuit>`. For example, type `./runabcItc.sh 01` to solve language equation with circuit b01. To run ITC benchmarks and verify the solution, type `./runabcItc.sh <num of circuit> v`. For example, type `./runabcItc.sh 01 v` to solve language equation and verify the solution with circuit b01. ## Reproduce the experimental results for case study Type `./runabcCaseAnalysis.sh <num of latch in b04X.blif>`. For example, type `./runabcCaseAnalysis.sh 10` to solve language equation for circuit b04 and b04X.blif with 10 latches. To verify the solution, type `./runabcCaseAnalysis.sh <num of latch in b04X.blif> v`. For example, type `./runabcIccas.sh 10 v` to solve language equation and verify the solution for circuit b04 and b04X.blif with 10 latches..
About
Artifact for Language Equation Solving via Boolean Automata Manipulation
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published