AllSAT for Combinational Circuits
Yogev Shalmon, Intel & The Open University of Israel
Dror Fried, The Open University of Israel
Alexander Nadel, Intel & Technion, Israel
SAT’23, Alghero, Italy
July 5, 2023
1
7/4/2023
Static Timing Analysis (STA)
2
7/4/2023
Intel’s STA Flow
3
7/4/2023
The AllSAT-CT Problem
What is the AllSAT-CT problem?
4
7/4/2023
| | | |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
Disjoint vs Non-Disjoint Solutions
5
7/4/2023
Disjoint
Non-Disjoint
Disjoint vs Non-Disjoint Solutions
6
7/4/2023
Disjoint
Non-Disjoint
Solution Generalization
7
7/4/2023
| | | |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
Solution Generalization
8
7/4/2023
Generalization
| | | |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
Naïve Approach for AllSAT-CT
How one can solve the AllSAT-CT problem?
9
7/4/2023
Easy:
Why AllSAT-CNF?
10
7/4/2023
Problem:
Our Key observation:
Our Dedicated AllSAT-CT Solutions
Implemented in an open-source tool HALL (Haifa AllSAT)
https://github.com/yogevshalmon/allsat-circuits
11
7/4/2023
Blocking AllSAT-CT Algorithm Template
12
7/4/2023
Blocking AllSAT-CT Algorithm Template
13
7/4/2023
TALE
Encoding:
Generalization:
Blocking (adding blocking clause):
Result:
14
7/4/2023
Ternary Logic
15
7/4/2023
TALE Generalization: Ternary Simulation
16
7/4/2023
TALE Generalization: Ternary Simulation
17
7/4/2023
TALE Generalization: Ternary Simulation
18
7/4/2023
TALE Generalization: Ternary Simulation
19
7/4/2023
TALE Generalization: Ternary Simulation
20
7/4/2023
TALE Blocking
21
7/4/2023
Generalization in Boolean vs Ternary Logic
22
7/4/2023
MARS
Encoding:
Generalization:
Blocking:
Result:
23
7/4/2023
The Dual-Rail Encoding
24
7/4/2023
Dual-Rail and Exact MaxSAT
25
7/4/2023
MARS Generalization
26
7/4/2023
MARS Blocking
27
7/4/2023
DUTY
28
7/4/2023
Experimental Results
We compare HALL against existing AllSAT-CNF solvers
Also:
29
7/4/2023
Benchmarks
30
7/4/2023
For our STA problem:
Solvers
31
7/4/2023
AllSAT-CNF (Toda [TS, JEA’16]):
AllSAT-CT (HALL):
Evaluation of the STA Benchmark Set
32
7/4/2023
N (Input size) | Disjoint | |||||
MARS | NBC | BDD | ||||
Time | Size | Time | Size | Time | Size | |
9 | < 1 | 10 | < 1 | 224 | < 1 | 224 |
17 | < 1 | 59 | < 1 | 89600 | < 1 | 89600 |
25 | < 1 | 253 | 2.111 | 27582464 | 48.26 | 27582464 |
33 | < 1 | 1315 | 570.897 | 7729971200 | MO | - |
37 | 9.808 | 59538 | TO | - | MO | - |
41 | TO | - | TO | - | MO | - |
TO: Time-out
MO: Memory-out
TALE: Ternary simulation
MARS: Dual-rail & MaxSAT
DUTY: TALE + MARS
Evaluation of the STA Benchmark Set
33
7/4/2023
N (Input size) | Disjoint | |||||
MARS | NBC | BDD | ||||
Time | Size | Time | Size | Time | Size | |
9 | < 1 | 10 | < 1 | 224 | < 1 | 224 |
17 | < 1 | 59 | < 1 | 89600 | < 1 | 89600 |
25 | < 1 | 253 | 2.111 | 27582464 | 48.26 | 27582464 |
33 | < 1 | 1315 | 570.897 | 7729971200 | MO | - |
37 | 9.808 | 59538 | TO | - | MO | - |
41 | TO | - | TO | - | MO | - |
TO: Time-out
MO: Memory-out
TALE: Ternary simulation
MARS: Dual-rail & MaxSAT
DUTY: TALE + MARS
Evaluation of the STA Benchmark Set
34
7/4/2023
N (Input size) | Disjoint | |||||
MARS | NBC | BDD | ||||
Time | Size | Time | Size | Time | Size | |
9 | < 1 | 10 | < 1 | 224 | < 1 | 224 |
17 | < 1 | 59 | < 1 | 89600 | < 1 | 89600 |
25 | < 1 | 253 | 2.111 | 27582464 | 48.26 | 27582464 |
33 | < 1 | 1315 | 570.897 | 7729971200 | MO | - |
37 | 9.808 | 59538 | TO | - | MO | - |
41 | TO | - | TO | - | MO | - |
TO: Time-out
MO: Memory-out
TALE: Ternary simulation
MARS: Dual-rail & MaxSAT
DUTY: TALE + MARS
Evaluation of the STA Benchmark Set
35
7/4/2023
N (Input size) | Non-Disjoint | |||||||
TALE | MARS | DUTY | BC | |||||
Time | Size | Time | Size | Time | Size | Time | Size | |
25 | < 1 | 12 | < 1 | 12 | < 1 | 12 | 866.53 | 1026771 |
33 | < 1 | 16 | < 1 | 20 | < 1 | 16 | TO | - |
2009 | < 1 | 1004 | < 1 | 1154 | < 1 | 1004 | TO | - |
3009 | < 1 | 1504 | 1.874 | 1990 | < 1 | 1504 | TO | - |
5009 | 3.349 | 2504 | 9.83 | 3629 | 2.417 | 2504 | TO | - |
7009 | 7.886 | 3504 | 10.294 | 6098 | 4.625 | 3504 | TO | - |
9009 | 28.909 | 4504 | 84.817 | 6889 | 11.977 | 4504 | TO | - |
11009 | 56.877 | 5504 | TO | - | 23.0 | 5504 | TO | - |
13009 | 96.688 | 6504 | 50.361 | 13704 | 29.889 | 6504 | TO | - |
TO: Time-out
MO: Memory-out
TALE: Ternary simulation
MARS: Dual-rail & MaxSAT
DUTY: TALE + MARS
Evaluation of the STA Benchmark Set
36
7/4/2023
N (Input size) | Non-Disjoint | |||||||
TALE | MARS | DUTY | BC | |||||
Time | Size | Time | Size | Time | Size | Time | Size | |
25 | < 1 | 12 | < 1 | 12 | < 1 | 12 | 866.53 | 1026771 |
33 | < 1 | 16 | < 1 | 20 | < 1 | 16 | TO | - |
2009 | < 1 | 1004 | < 1 | 1154 | < 1 | 1004 | TO | - |
3009 | < 1 | 1504 | 1.874 | 1990 | < 1 | 1504 | TO | - |
5009 | 3.349 | 2504 | 9.83 | 3629 | 2.417 | 2504 | TO | - |
7009 | 7.886 | 3504 | 10.294 | 6098 | 4.625 | 3504 | TO | - |
9009 | 28.909 | 4504 | 84.817 | 6889 | 11.977 | 4504 | TO | - |
11009 | 56.877 | 5504 | TO | - | 23.0 | 5504 | TO | - |
13009 | 96.688 | 6504 | 50.361 | 13704 | 29.889 | 6504 | TO | - |
TO: Time-out
MO: Memory-out
TALE: Ternary simulation
MARS: Dual-rail & MaxSAT
DUTY: TALE + MARS
Evaluation of the STA Benchmark Set
37
7/4/2023
N (Input size) | Non-Disjoint | |||||||
TALE | MARS | DUTY | BC | |||||
Time | Size | Time | Size | Time | Size | Time | Size | |
25 | < 1 | 12 | < 1 | 12 | < 1 | 12 | 866.53 | 1026771 |
33 | < 1 | 16 | < 1 | 20 | < 1 | 16 | TO | - |
2009 | < 1 | 1004 | < 1 | 1154 | < 1 | 1004 | TO | - |
3009 | < 1 | 1504 | 1.874 | 1990 | < 1 | 1504 | TO | - |
5009 | 3.349 | 2504 | 9.83 | 3629 | 2.417 | 2504 | TO | - |
7009 | 7.886 | 3504 | 10.294 | 6098 | 4.625 | 3504 | TO | - |
9009 | 28.909 | 4504 | 84.817 | 6889 | 11.977 | 4504 | TO | - |
11009 | 56.877 | 5504 | TO | - | 23.0 | 5504 | TO | - |
13009 | 96.688 | 6504 | 50.361 | 13704 | 29.889 | 6504 | TO | - |
TO: Time-out
MO: Memory-out
TALE: Ternary simulation
MARS: Dual-rail & MaxSAT
DUTY: TALE + MARS
Evaluation of the EPFL and Random Benchmarks
38
7/4/2023
Family | #Bench | Non-Disjoint | Disjoint | |||||
TALE | MARS | DUTY | BC | MARS | NBC | BDD | ||
arithmetic_or | 10 | 4 | 2 | 3 | 0 | 1 | 1 | 0 |
arithmetic_xor | 10 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
random_control_or | 10 | 9 | 9 | 9 | 4 | 7 | 4 | 4 |
random_control_xor | 10 | 5 | 5 | 5 | 4 | 4 | 4 | 4 |
large_cir_or | 20 | 16 | 7 | 16 | 0 | 7 | 0 | 0 |
Total | 60 | 34 | 23 | 33 | 8 | 19 | 10 | 8 |
TALE: Ternary simulation
MARS: Dual-rail & MaxSAT
DUTY: TALE + MARS
Evaluation of the EPFL and Random Benchmarks
39
7/4/2023
Family | #Bench | Non-Disjoint | Disjoint | |||||
TALE | MARS | DUTY | BC | MARS | NBC | BDD | ||
arithmetic_or | 10 | 4 | 2 | 3 | 0 | 1 | 1 | 0 |
arithmetic_xor | 10 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
random_control_or | 10 | 9 | 9 | 9 | 4 | 7 | 4 | 4 |
random_control_xor | 10 | 5 | 5 | 5 | 4 | 4 | 4 | 4 |
large_cir_or | 20 | 16 | 7 | 16 | 0 | 7 | 0 | 0 |
Total | 60 | 34 | 23 | 33 | 8 | 19 | 10 | 8 |
TALE: Ternary simulation
MARS: Dual-rail & MaxSAT
DUTY: TALE + MARS
Evaluation of the EPFL and Random Benchmarks
40
7/4/2023
Family | #Bench | Non-Disjoint | Disjoint | |||||
TALE | MARS | DUTY | BC | MARS | NBC | BDD | ||
arithmetic_or | 10 | 4 | 2 | 3 | 0 | 1 | 1 | 0 |
arithmetic_xor | 10 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
random_control_or | 10 | 9 | 9 | 9 | 4 | 7 | 4 | 4 |
random_control_xor | 10 | 5 | 5 | 5 | 4 | 4 | 4 | 4 |
large_cir_or | 20 | 16 | 7 | 16 | 0 | 7 | 0 | 0 |
Total | 60 | 34 | 23 | 33 | 8 | 19 | 10 | 8 |
TALE: Ternary simulation
MARS: Dual-rail & MaxSAT
DUTY: TALE + MARS
Conclusion and Future Work
Future work:
41
7/4/2023
Thank you for listening
Questions?