Open PDBF Benchmark Suite
GT PDBF Logic Synthesis Benchmark Suite
Open benchmark specifications for logic synthesis of Partially Defined Boolean Functions (PDBFs), with published GT gate count, logic depth and synthesis runtime.
Purpose of the benchmark suite
This page provides reproducible PDBF synthesis problems in standard PLA format. The benchmarks include semantic control and policy functions, Contextual RTL PDBFs from Paper II, provenance-qualified open-source RTL contextual projections, and dedicated input-scalability experiments extending to one million primary inputs.
GT synthesis results are reported as simple two-input logic-gate count, maximum logic depth, and synthesis time. The present benchmark release provides the original PLA specifications and synthesis statistics. GT synthesized netlists are not included in this release.
AI-Inspired Contextual PDBF Benchmarks
These benchmarks are synthetic, reproducible AI-like decision and classification functions expressed directly as contextual PDBFs. They are intended to study combinational synthesis over strongly constrained quantized feature domains; they are not results extracted from trained neural-network models and should not be interpreted as AI-accuracy benchmarks.
The current table reports 29 evaluated examples for which both GT and ABC synthesis data are available. Input features are quantized and encoded so that only the listed care terms are admissible; all other nominal Boolean input combinations are contextual don't-cares. Results are reported as Gates|Levels. Multiple GT entries show alternative synthesized implementations and therefore expose gate/depth tradeoffs rather than a single selected operating point.
| Benchmark | PI | PO | Care Terms | Care Density | GT Gates|Levels | ABC synt Gates|Levels | ABC transtoch Gates|Levels | PLA |
|---|---|---|---|---|---|---|---|---|
Autonomous Braking | 21 | 4 | 2,187 | 0.104284% | 20|5 | 83|9 | 71|11 | PLA |
Battery Management | 22 | 5 | 2,304 | 0.054932% | 20|7; 23|6 | 78|11 | 73|12 | PLA |
Crop Health | 24 | 6 | 5,184 | 0.030899% | 17|7; 18|5 | 85|13 | 73|17 | PLA |
Data-Center Cooling | 21 | 6 | 1,728 | 0.082397% | 20|7; 24|6 | 81|9 | 71|18 | PLA |
Drone Obstacle | 24 | 6 | 6,561 | 0.039107% | 27|10; 28|8; 31|7 | 94|11 | 81|11 | PLA |
ECG Arrhythmia | 18 | 4 | 729 | 0.278091% | 8|4 | 52|9 | 51|8 | PLA |
Financial Fraud | 21 | 5 | 2,187 | 0.104284% | 21|5 | 78|10 | 71|13 | PLA |
Food Quality | 22 | 6 | 2,304 | 0.054932% | 20|5 | 77|10 | 71|14 | PLA |
Hand Gesture | 24 | 4 | 6,561 | 0.039107% | 12|5; 14|4 | 73|9 | 69|10 | PLA |
Jet Engine Health | 23 | 6 | 3,072 | 0.036621% | 31|14; 32|13; 33|12; 39|11; 40|8 | 102|12 | 85|14 | PLA |
Keyword Spotting | 20 | 4 | 1,024 | 0.097656% | 9|5 | 60|9 | 57|12 | PLA |
Malware Behavior | 24 | 6 | 5,184 | 0.030899% | 25|13; 27|6 | 92|13 | 82|11 | PLA |
Medical Triage | 24 | 6 | 6,561 | 0.039107% | 24|8; 27|7; 28|6 | 101|10 | 81|14 | PLA |
Motor Fault | 21 | 5 | 2,187 | 0.104284% | 14|6; 15|5 | 67|9 | 63|11 | PLA |
Network Intrusion | 16 | 4 | 4,608 | 7.031250% | 10|4 | 27|8 | 27|8 | PLA |
Power-Grid Fault | 24 | 5 | 6,561 | 0.039107% | 14|6; 15|5 | 76|10 | 73|9 | PLA |
Predictive Maintenance | 24 | 6 | 6,561 | 0.039107% | 31|10; 32|9; 35|8 | 96|12 | 83|14 | PLA |
Railway Signal Anomaly |
24 | 6 | 5,184 | 0.030899% | 31|8 | 105|10 | 83|12 | PLA |
Road Scene | 23 | 6 | 3,072 | 0.036621% | 28|9; 30|7; 34|6 | 88|11 | 79|12 | PLA |
Robot Grasp | 22 | 6 | 2,304 | 0.054932% | 22|10; 23|7 | 84|15 | 73|16 | PLA |
Sepsis Risk | 22 | 6 | 2,304 | 0.054932% | 27|8; 30|7 | 83|11 | 78|15 | PLA |
Smart Camera Event | 21 | 6 | 2,187 | 0.104284% | 19|6; 22|5 | 76|10 | 66|16 | PLA |
Sonar Target | 22 | 6 | 2,304 | 0.054932% | 19|12; 20|10; 21|7; 23|6; 26|5 | 89|10 | 72|13 | PLA |
Supply-Chain Risk | 22 | 6 | 2,304 | 0.054932% | 23|15; 24|11; 25|8; 28|7; 32|6 | 82|10 | 75|14 | PLA |
Voice Command | 21 | 6 | 1,728 | 0.082397% | 24|11; 25|9; 26|8; 27|7 | 79|10 | 70|14 | PLA |
Wafer Defect | 24 | 5 | 4,096 | 0.024414% | 18|6; 26|5 | 80|10 | 74|13 | PLA |
Water-Treatment Anomaly | 22 | 6 | 2,304 | 0.054932% | 32|9; 33|8 | 88|9 | 80|11 | PLA |
Wildfire Risk | 22 | 6 | 2,304 | 0.054932% | 27|12; 28|10; 31|9; 32|7 | 90|10 | 79|16 | PLA |
Maritime Navigation | 24 | 7 | 4,096 | 0.024414% | 32|9; 34|8 | 101|12 | 85|15 | PLA |
Railway Signal Anomaly synthesis results are included from the supplied result listing; PI, PO, care-term and care-density metadata are left unspecified here until read directly from the PLA header.
Care density is |C|/2PI. Where several GT implementations are listed, the minimum gate count and minimum depth may occur in different variants. ABC columns correspond only to the evaluated synt and transtoch flows shown here. The spacecraft-autonomy testcase is not included in this table because it is presently being retained as a GT input-loader regression/debug case rather than as a synthesis result.
Availability of ABC comparison data
ABC results are shown only for benchmarks that we were able to process using ABC. The two comparison tables below therefore include ABC columns only where an ABC netlist/result was obtained.
The medium-input semantic benchmark table and the input-scalability table that follow intentionally contain GT results only: for those benchmark cases we did not obtain corresponding ABC synthesis results.
Contextual RTL PDBF benchmarks from Paper II
These five benchmarks are the primary RTL demonstrations reported in Paper II, Extending Completion Optimization to RTL Designs Through Contextual Partially Defined Boolean Functions. Each row represents a Contextual PDBF extracted from an internal RTL block whose nominal local input space is much larger than the set of locally reachable care terms. The ABC result is for the evaluated fixed legal completion of the same Contextual PDBF, while the GT result is obtained by searching the Legal Completion Opportunity Space before circuit optimization. Results are reported as two-input gate count and maximum logic depth.
| Benchmark | PI | PO | Care Terms | ABC fixed completion | GT completion optimization | PLA | ||
|---|---|---|---|---|---|---|---|---|
| Gates | Levels | Gates | Levels | |||||
Secure Ingress |
18 | 6 | 343 | 202 | 22 | 20 | 5 | PLA |
Instruction Control |
22 | 8 | 327 | 107 | 12 | 10 | 3 | PLA |
DMA Transaction Control |
24 | 8 | 1,002 | 208 | 21 | 19 | 4 | PLA |
Protocol Control |
18 | 6 | 128 | 128 | 19 | 21 | 5 | PLA |
Resource Arbiter |
20 | 7 | 256 | 121 | 13 | 19 | 7 | PLA |
These are the five principal Paper II demonstrations. The comparison is intentionally framed as fixed Legal Completion + ABC synthesis versus GT search over the Legal Completion Opportunity Space; it is not presented as a general tool-to-tool comparison of ABC and GT.
Controlled RTL-Structured Contextual PDBF Validation
This 15-benchmark suite complements the five primary Paper II demonstrations with source-independent RTL-structured Contextual PDBFs. The cases are controlled synthesis experiments, not provenance-qualified projections of specific upstream RTL designs.
For each PDBF, conventional ABC optimization was evaluated after the unspecified terms had been fixed to zero using deepsyn, an independent transtoch run, and a chained deepsyn → transtoch flow. The table retains the Pareto-best ABC gate/depth points across those flows. GT instead searches the original Legal Completion Opportunity Space before circuit optimization.
| RTL-structured PDBF | PI | PO | Care Terms | Contextual DC | ABC zero-completion Pareto Gates / Levels | Representative GT Gates / Levels | PLA |
|---|---|---|---|---|---|---|---|
Instruction Decoder | 10 | 6 | 39 | 96.1914% | 27 / 4; 25 / 6 | 7 / 2 | PLA |
ALU Control | 8 | 5 | 42 | 83.5938% | 22 / 4; 20 / 6 | 10 / 4 | PLA |
Interrupt Priority | 8 | 4 | 108 | 57.8125% | 17 / 7 | 12 / 5 | PLA |
FSM Next State | 8 | 6 | 21 | 91.7969% | 32 / 9; 29 / 11 | 13 / 5 | PLA |
Round-Robin Arbiter | 8 | 5 | 80 | 68.7500% | 32 / 8; 24 / 12 | 18 / 7 | PLA |
Crossbar Route | 8 | 5 | 80 | 68.7500% | 14 / 6 | 13 / 5 | PLA |
FIFO Control | 7 | 8 | 41 | 67.9688% | 42 / 8; 37 / 20 | 35 / 8 | PLA |
Cache Controller | 8 | 6 | 14 | 94.5312% | 30 / 8; 26 / 9 | 12 / 4 | PLA |
DMA Channel Control | 10 | 6 | 337 | 67.0898% | 25 / 9; 23 / 10 | 19 / 6 | PLA |
AXI-Lite Protocol | 11 | 11 | 20 | 99.0234% | 47 / 7; 39 / 16; 38 / 17 | 15 / 3 | PLA |
Privilege Access | 9 | 3 | 63 | 87.6953% | 28 / 7 | 14 / 6 | PLA |
Address Decoder | 10 | 5 | 448 | 56.2500% | 14 / 6 | 7 / 2 | PLA |
Pipeline Hazard | 11 | 4 | 425 | 79.2480% | 31 / 7 | 20 / 6 | PLA |
CSR Control | 9 | 5 | 144 | 71.8750% | 19 / 5; 18 / 9 | 10 / 4 | PLA |
Packet Router VC | 10 | 5 | 161 | 84.2773% | 18 / 7 | 3 / 3 | PLA |
Verification. Across the controlled suite, all 73 reported implementation artifacts (28 GT and 45 ABC) were exhaustively checked on every specified care assignment of the unchanged original PDBFs, with zero observed mismatches. All 45 ABC artifacts were also exhaustively evaluated on every omitted input assignment; every omitted assignment produced the all-zero output vector, independently confirming the zero-completion baseline.
Interpretation. Every benchmark has at least one reported GT point that Pareto-dominates the reported ABC Pareto set. This is not presented as a generic GT-versus-ABC comparison: it compares conventional optimization after contextual freedom has been fixed to zero with synthesis that retains and searches Legal Completion freedom.
Provenance-Qualified Open-Source RTL Contextual PDBFs
This section extends the Paper II demonstrations with Contextual PDBFs derived from identifiable internal boundaries in real open-source RTL projects. Three benchmarks use tightened v2 source-exact or source-equivalent local boundaries (AXI-Stream, PicoRV32, and OpenTitan DMA). The Ibex and OpenTitan OTP cases are retained as explicitly parameterized/source-derived projections. In every case, the reported GT implementation was checked against every care term of the corresponding PLA.
The comparison has the same interpretation used for the Paper II results: ABC synthesizes a fixed Legal Completion, while GT searches the Legal Completion Opportunity Space before circuit optimization. The values below should therefore not be interpreted as a generic tool-to-tool benchmark of ABC versus GT.
| Benchmark / upstream RTL | PI | PO | Care Terms | Contextual DC | ABC fixed completion Gates / Levels |
GT completion optimization Gates / Levels |
PLA |
|---|---|---|---|---|---|---|---|
AXI-Stream Grant Routing v2axis_switch.v / arbiter.v |
12 | 5 | 160 | 96.0938% | 29 / 6; 27 / 7 | 12 / 4 | PLA |
PicoRV32 Memory Request Control v2picorv32.v |
12 | 2 | 112 | 97.2656% | 13 / 4; 13 / 4 | 5 / 3 | PLA |
OpenTitan DMA Byte Enable v2dma.sv |
10 | 8 | 240 | 76.5625% | 44 / 7; 41 / 16 | 32 / 5 | PLA |
Ibex Exception Priorityibex_controller.sv |
6 | 6 | 15 | 76.5625% | 22 / 5; 16 / 7 | 5 / 2 | PLA |
OpenTitan OTP Controlotp_macro.sv |
21 | 22 | 134 | 99.9936% | 226 / 27 | 95 / 24; 101 / 15; 106 / 13; 113 / 12; 120 / 11; 125 / 9 | PLA |
Provenance status.
AXI-Stream Grant Routing v2 uses the source mux/ready equations together with the blocking-arbiter
grant constraints; PicoRV32 v2 is cut around the real set_mem_do_wdata /
set_mem_do_rdata control slice; and OpenTitan DMA v2 is the source byte-enable slice in
DmaAddrSetup. Ibex is a parameterized source-derived projection for
WritebackStage=1 with CHERIoT-specific exception causes disabled. OpenTitan OTP is a
projection of the p_fsm control relation over the legal sparse FSM states and
source-constrained command classes.
Verification status. The GT BLIF for each benchmark was exhaustively compared against all care terms of its published PLA: AXI 160 terms, PicoRV32 112, OpenTitan DMA 240, Ibex 15, and OpenTitan OTP 134, with zero observed care-term mismatches. This verifies implementation correctness with respect to the published Contextual PDBF. The source-provenance qualification above describes the separate RTL-boundary/reachability status.
Paper III — Real RTL Legal-Completion Validation
Paper III, GT AND Sequential Synthesis: Native Sequential Device PDBFs and Completion Optimization, adds a controlled five-candidate experiment over independently sourced RTL control logic. Each candidate was validated on its complete published care domain, then evaluated through three paths: source-derived RTL through Yosys/ABC, the same Contextual PDBF after fixed zero completion through ABC, and GT search over legal completions. Results below are Pareto points reported as Gates / Levels.
| Candidate | Care Terms | RTL → ABC Pareto Gates / Levels |
Zero Completion → ABC Pareto Gates / Levels | Legal Completion → GT Pareto Gates / Levels | PLA |
|---|---|---|---|---|---|
Ibex Exception Priority | 15 / 15 | 22 / 5; 16 / 6 | 22 / 5; 16 / 6 | 5 / 2 | PLA |
AXI-Stream Grant Routing | 160 / 160 | 29 / 6; 27 / 7 | 29 / 6; 27 / 7 | 12 / 4 | PLA |
OpenTitan DMA Byte Enable | 240 / 240 | 43 / 6; 39 / 12 | 44 / 7; 42 / 13; 41 / 16 | 32 / 5 | PLA |
OpenTitan ROM Controller FSM | 448 / 448 | 66 / 11; 52 / 18 | 72 / 12; 58 / 19 | 43 / 6; 35 / 17 | PLA |
PicoRV32 Memory Request | 112 / 112 | 13 / 4 | 13 / 4 | 5 / 3 | PLA |
Result. For every candidate, at least one validated GT implementation strictly Pareto-dominates every available conventional RTL → ABC Pareto point in both gate count and maximum logic depth. Ibex, AXI and PicoRV32 also show coincident RTL → ABC and zero-completion → ABC fronts. DMA and ROM provide the stronger control: source-derived RTL → ABC is better than zero-completed Contextual PDBF → ABC, yet legal-completion search still produces a dominating GT point.
Interpretation. This experiment is not a generic GT-versus-ABC tool comparison. It isolates completion freedom: conventional synthesis optimizes a fixed implementation or fixed zero completion, whereas GT retains and searches the legal unspecified region before circuit optimization.
FSM / memory-oriented PDBF synthesis results
These benchmarks provide direct ABC/GT comparison where an ABC result is available, together with multiple GT netlist variants when they were obtained.
| Benchmark | PI | PO | Cubes | ABC | GT | PLA | ||
|---|---|---|---|---|---|---|---|---|
| Gates | Levels | Gates | Levels | |||||
axi_lite_slave_transaction_fsm_semantic | 16 | 20 | 32 | 70 | 11 | 74 | 11 | PLA |
| 80 | 10 | 77 | 9 | |||||
| 86 | 8 | |||||||
can_receive_filter_fsm_semantic | 16 | 20 | 91 | 113 | 11 | 97 | 20 | PLA |
| 99 | 16 | |||||||
| 100 | 12 | |||||||
| 138 | 11 | |||||||
| 144 | 10 | |||||||
| 145 | 9 | |||||||
| 150 | 8 | |||||||
ethernet_frame_classifier_fsm_semantic | 17 | 20 | 29 | 92 | 9 | 82 | 18 | PLA |
| 85 | 15 | |||||||
| 86 | 14 | |||||||
| 88 | 12 | |||||||
| 91 | 11 | |||||||
| 93 | 10 | |||||||
| 124 | 9 | |||||||
| 125 | 8 | |||||||
| 131 | 7 | |||||||
i2c_target_transaction_fsm_semantic | 14 | 19 | 42 | 124 | 12 | 104 | 30 | PLA |
| 130 | 11 | |||||||
| 127 | 12 | |||||||
| 109 | 13 | |||||||
ipv4_ipv6_acl_packet_classifier_semantic | 83 | 12 | 4,096 | 134,536 | 59 | 569 | 53 | PLA |
nvme_submission_queue_command_fsm_semantic | 19 | 20 | 198 | 138 | 13 | 93 | 19 | PLA |
| 109 | 11 | |||||||
| 102 | 12 | |||||||
| 97 | 13 | |||||||
| 96 | 16 | |||||||
pcie_tlp_transaction_header_fsm_semantic | 20 | 21 | 120 | 129 | 11 | 86 | 14 | PLA |
| 88 | 11 | |||||||
| 90 | 10 | |||||||
| 91 | 9 | |||||||
| 92 | 8 | |||||||
| 119 | 7 | |||||||
riscv_pipeline_hazard_forwarding_semantic | 17 | 18 | 101 | 46 | 8 | 35 | 13 | PLA |
| 39 | 11 | 44 | 6 | |||||
| 43 | 7 | |||||||
| 37 | 8 | |||||||
| 36 | 9 | |||||||
riscv_privileged_trap_csr_controller_semantic | 31 | 24 | 177 | 110 | 14 | 66 | 16 | PLA |
| 99 | 10 | |||||||
| 75 | 11 | |||||||
| 72 | 13 | |||||||
sdcard_spi_command_fsm_semantic | 17 | 20 | 79 | 131 | 17 | 114 | 23 | PLA |
| 115 | 22 | |||||||
| 117 | 19 | |||||||
| 118 | 18 | |||||||
| 121 | 15 | |||||||
| 125 | 14 | |||||||
| 161 | 11 | |||||||
| 165 | 10 | |||||||
| 179 | 9 | |||||||
spi_transaction_fsm_semantic | 16 | 19 | 45 | 115 | 17 | 103 | 24 | PLA |
| 109 | 23 | |||||||
| 110 | 19 | |||||||
| 112 | 15 | |||||||
| 125 | 11 | |||||||
| 161 | 10 | |||||||
| 166 | 9 | |||||||
| 177 | 8 | |||||||
uart_rx_fsm_semantic | 8 | 10 | 26 | 35 | 12 | 32 | 7 | PLA |
| 34 | 6 | |||||||
| 35 | 5 | |||||||
usb_control_transfer_fsm_semantic | 17 | 21 | 43 | 109 | 15 | 113 | 19 | PLA |
| 119 | 16 | |||||||
| 121 | 14 | |||||||
| 127 | 13 | |||||||
| 178 | 11 | |||||||
| 182 | 10 | |||||||
| 183 | 9 | |||||||
| 199 | 8 | |||||||
The first line of each benchmark section identifies the benchmark and gives PI, PO, Cubes, the available ABC result, the first GT result, and the PLA download link. Additional lines show alternative GT netlist variants for the same PDBF.
Semantic PDBF synthesis results with available ABC comparisons
These semantic benchmarks provide direct ABC/GT comparison where an ABC result is available, together with multiple GT netlist variants when they were obtained.
| Benchmark | PI | PO | Cubes | ABC | GT | PLA | ||
|---|---|---|---|---|---|---|---|---|
| Gates | Levels | Gates | Levels | |||||
axi_transaction_response_error_policy_semantic | 26 | 20 | 3,152 | 95 | 5 | 78 | 23 | PLA |
| 79 | 13 | |||||||
| 80 | 11 | |||||||
| 84 | 10 | |||||||
| 91 | 9 | |||||||
can_11bit_identifier_decoder_native | 11 | 8 | 33 | 48 | 6 | 12 | 4 | PLA |
| 13 | 3 | |||||||
CAN_CANFD_frame_control_decoder | 8 | 11 | 128 | 26 | 5 | 21 | 6 | PLA |
| 22 | 4 | |||||||
CV32E40P_v1.0_actual_decoder_control_projection | 17 | 23 | 69 | 103 | 10 | 41 | 12 | PLA |
DALI_command_decoder | 9 | 4 | 83 | 56 | 7 | 7 | 5 | PLA |
| 11 | 4 | |||||||
DMX512_start_code_decoder | 4 | 4 | 4 | 9 | 3 | 2 | 1 | PLA |
ethernet_mac_address_filter_native | 9 | 4 | 16 | 27 | 8 | 2 | 1 | PLA |
| 29 | 5 | |||||||
FlexRay_header_semantic_decoder | 14 | 5 | 132 | 6 | 3 | 2 | 2 | PLA |
i2c_target_register_control_semantic | 5 | 14 | 16 | 31 | 7 | 24 | 5 | PLA |
| 30 | 8 | 26 | 4 | |||||
Ibex_RV32IM_actual_control_projection | 17 | 22 | 58 | 93 | 11 | 49 | 8 | PLA |
| 58 | 5 | |||||||
| 56 | 6 | |||||||
| 51 | 7 | |||||||
LIN_protected_identifier_decoder | 8 | 8 | 62 | 34 | 11 | 3 | 2 | PLA |
| 3 | 2 | |||||||
mdio_clause22_semantic_controller | 6 | 13 | 15 | 24 | 4 | 17 | 4 | PLA |
Modbus_public_function_decoder | 6 | 7 | 19 | 30 | 30 | 24 | 7 | PLA |
| 37 | 6 | |||||||
pcie_axil_master_minimal_source | 18 | 37 | 18,432 | 90 | 11 | 66 | 7 | PLA |
| 68 | 5 | |||||||
pcie_bar_address_routing_controller_semantic | 26 | 20 | 998 | 108 | 10 | 69 | 14 | PLA |
pcie_completion_validation_error_policy_semantic | 24 | 20 | 1,328 | 95 | 11 | 75 | 14 | PLA |
| 97 | 9 | |||||||
| 96 | 10 | |||||||
| 90 | 11 | |||||||
PicoRV32_default_actual_decode_projection | 10 | 39 | 40 | 74 | 5 | 67 | 4 | PLA |
| 70 | 3 | |||||||
SERV_MDU_actual_serv_decode_projection | 14 | 48 | 3,565 | 135 | 15 | 56 | 8 | PLA |
| 66 | 5 | |||||||
spi_semantic_command_register_controller | 6 | 15 | 15 | 38 | 10 | 22 | 3 | PLA |
usb_cdc_setup_source_derived | 24 | 36 | 30,720 | 201 | 13 | 80 | 19 | PLA |
| 82 | 17 | |||||||
| 83 | 12 | |||||||
| 84 | 11 | |||||||
| 112 | 10 | |||||||
usb_hid_setup_semantic_controller | 27 | 25 | 33 | 203 | 18 | 36 | 6 | PLA |
| 40 | 4 | |||||||
| 37 | 5 | |||||||
VexRiscv_GenSmallest_plugin_decode_projection | 14 | 12 | 49 | 66 | 9 | 19 | 4 | PLA |
| 20 | 3 | |||||||
The first line of each benchmark section identifies the benchmark and gives PI, PO, Cubes, the available ABC result, the first GT result, and the PLA download link. Additional lines show alternative GT netlist variants for the same PDBF.
Medium-input semantic PDBF benchmarks
In this benchmark suite, examples with hundreds to several thousand primary inputs are classified as medium-input PDBFs. The cases below model networking, security, storage, telecommunications and policy/control hardware.
| Benchmark | PI | PO | Cubes | GT Gates | GT Levels | GT Time, s | PLA |
|---|---|---|---|---|---|---|---|
ipv4_ipv6_acl_packet_classifier_semantic |
83 | 12 | 4,096 | 569 | 53 | 7 | PLA |
ipv6_5g_upf_gtpu_policy_semantic |
299 | 18 | 16,384 | 273 | 43 | 4 | PLA |
ipv6_bgp_evpn_route_policy_semantic |
398 | 18 | 16,384 | 14 | 3 | 0.2 | PLA |
ipv6_dns_doh_security_policy_semantic |
317 | 18 | 16,384 | 280 | 40 | 131 | PLA |
ipv6_firewall_policy_classifier_semantic |
96 | 14 | 8,192 | 3,633 | 188 | 1,374 | PLA |
ipv6_geneve_nsh_service_chain_policy_semantic |
257 | 17 | 16,384 | 936 | 79 | 426 | PLA |
ipv6_ids_ips_signature_policy_semantic |
300 | 18 | 16,384 | 316 | 49 | 66 | PLA |
ipv6_ipsec_sa_security_policy_semantic |
216 | 18 | 16,384 | 2,048 | 153 | 321 | PLA |
ipv6_macsec_zero_trust_policy_semantic |
253 | 17 | 16,384 | 1,633 | 109 | 256 | PLA |
ipv6_mpls_srv6_interworking_policy_semantic |
294 | 18 | 16,384 | 600 | 46 | 600 | PLA |
ipv6_nvmeof_storage_policy_semantic |
286 | 18 | 16,384 | 237 | 43 | 68 | PLA |
ipv6_ptp_tsn_policy_semantic |
219 | 18 | 16,384 | 291 | 48 | 27 | PLA |
ipv6_quic_ddos_mitigation_policy_semantic |
313 | 18 | 16,384 | 373 | 44 | 27 | PLA |
ipv6_quic_tls_sase_policy_semantic |
261 | 17 | 16,384 | 1,616 | 101 | 714 | PLA |
ipv6_rocev2_rdma_congestion_policy_semantic |
251 | 18 | 16,384 | 1,155 | 60 | 612 | PLA |
ipv6_security_telemetry_policy_medium_semantic |
246 | 16 | 8,192 | 156 | 28 | 5 | PLA |
ipv6_service_chain_security_policy_narrow_semantic |
221 | 16 | 8,192 | 559 | 51 | 68 | PLA |
ipv6_service_mesh_load_balancer_policy_semantic |
263 | 18 | 16,384 | 2,561 | 70 | 1,740 | PLA |
ipv6_srv6_service_policy_classifier_semantic |
281 | 18 | 16,384 | 712 | 54 | 44 | PLA |
ipv6_storage_replication_erasure_policy_semantic |
253 | 17 | 16,384 | 1,240 | 57 | 460 | PLA |
ipv6_vxlan_microsegmentation_ct_policy_semantic |
212 | 18 | 12,288 | 390 | 36 | 56 | PLA |
The PLA files should be uploaded using exactly the benchmark filenames shown in the first column.
Contextual PDBF synthesis: blockwise and whole-design examples
These three examples compare contextual PDBF synthesis at the block and whole-design levels across arithmetic, sequential/control, and instruction-decoding structures. For each example, the component blocks are synthesized using their specified contextual care domains, and the complete design is shown both as a blockwise assembled implementation and as a directly synthesized whole contextual PDBF.
The Design column identifies the individual contextual block or the corresponding whole-design case. Where multiple ABC or GT synthesis variants are available, they are shown on additional lines for the same design.
| Example | Design | PI | PO | Cubes | ABC | GT | PLA | ||
|---|---|---|---|---|---|---|---|---|---|
| Gates | Levels | Gates | Levels | ||||||
| BCD adder | A0 — Binary Adder | 9 | 5 | 200 | 37 | 11 | 32 | 11 | PLA |
| 36 | 12 | 34 | 9 | ||||||
| 35 | 8 | ||||||||
| BCD adder | A1 — Correction Condition | 5 | 1 | 20 | 6 | 3 | 4 | 3 | PLA |
| BCD adder | A2 — Correction Select | 1 | 4 | 2 | 0 | 0 | 0 | 0 | PLA |
| BCD adder | A3 — Correction Adder | 9 | 5 | 20 | 27 | 10 | 8 | 3 | PLA |
| 25 | 9 | ||||||||
| BCD adder | Whole — Assembled | 9 | 5 | 200 | 44 | 17 | 38 | 10 | PLA |
| 45 | 16 | ||||||||
| BCD adder | Whole — Contextual | 9 | 5 | 200 | 47 | 12 | 41 | 12 | PLA |
| One-hot FSM | F0 — Next-state | 6 | 4 | 16 | 18 | 6 | 4 | 2 | PLA |
| One-hot FSM | F1 — Action decode | 6 | 2 | 11 | 13 | 6 | 8 | 3 | PLA |
| One-hot FSM | Whole — Assembled | 6 | 6 | 16 | 20 | 8 | 11 | 4 | PLA |
| One-hot FSM | Whole — Contextual | 6 | 6 | 16 | 20 | 8 | 8 | 3 | PLA |
| Instruction decoder | D0 — Opcode class | 8 | 4 | 8 | 16 | 8 | 9 | 4 | PLA |
| Instruction decoder | D1 — ALU control | 4 | 3 | 8 | 12 | 4 | 4 | 3 | PLA |
| Instruction decoder | Whole — Assembled | 8 | 4 | 8 | 22 | 10 | 12 | 8 | PLA |
| 13 | 7 | ||||||||
| Instruction decoder | Whole — Contextual | 8 | 4 | 8 | 20 | 10 | 12 | 8 | PLA |
| 13 | 7 | ||||||||
“Whole — Assembled” denotes the complete function corresponding to the interconnected block implementation; “Whole — Contextual” denotes direct synthesis of the corresponding externally specified whole-design PDBF. Cube counts describe specified PLA care terms.
Randomly generated PDBFs: cube quantity to netlist parameters comparison
This experiment keeps the benchmark size fixed at 250 primary inputs and 1 primary output while increasing the number of PDBF cubes from 16 to 2,000. The table compares the resulting ABC and GT netlist gate counts and logic levels.
| Benchmark | PI | PO | Cubes | ABC | GT | PLA | ||
|---|---|---|---|---|---|---|---|---|
| Gates | Levels | Gates | Levels | |||||
E250_1_16 |
250 | 1 | 16 | 708 | 16 | 1 | 1 | PLA |
E250_1_32 |
250 | 1 | 32 | 2,175 | 30 | 4 | 3 | PLA |
E250_1_64 |
250 | 1 | 64 | 3,783 | 35 | 9 | 5 | PLA |
E250_1_128 |
250 | 1 | 128 | 7,003 | 35 | 21 | 6 | PLA |
E250_1_256 |
250 | 1 | 256 | 13,648 | 37 | 45 | 8 | PLA |
E250_1_500 |
250 | 1 | 500 | 25,779 | 42 | 95 | 14 | PLA |
E250_1_1000 |
250 | 1 | 1,000 | 46,256 | 44 | 209 | 20 | PLA |
E250_1_2000 |
250 | 1 | 2,000 | 82,107 | 44 | 431 | 28 | PLA |
Each PLA button links to /benchmarks/<Benchmark>.pla.
PDBF input-scalability challenge
This separate series studies synthesis as the primary-input dimension grows from hundreds to tens of thousands, hundreds of thousands and one million inputs.
| Benchmark | PI | PO | Cubes | GT Gates | GT Levels | GT Time, s | PLA |
|---|---|---|---|---|---|---|---|
Example_250_1_2000 |
250 | 1 | 2,000 | 431 | 28 | 4 | PLA |
Example_250_100_2000 |
250 | 100 | 2,000 | 38,272 | 78 | 1,063 | PLA |
Example_10000_1000_5000 |
10,000 | 1,000 | 5,000 | 769,799 | 47 | 26,875 | PLA |
Ex100000_1_1000 |
100,000 | 1 | 1,000 | 89 | 15 | 63 | PLA |
Ex_1000000_1_100 |
1,000,000 | 1 | 100 | 6 | 4 | 4 | PLA |
The results illustrate that primary-input count alone does not determine synthesis difficulty. The care structure, number of outputs, cube structure and interactions among conditions can be equally important.
Reported synthesis metrics
PI — number of primary inputs. PO — number of primary outputs. Cubes — number of PLA product terms.
For the GT results, Gates denotes the number of internal two-input simple/AIG logic nodes. Complemented AIG edges do not count as additional gates. Levels is the maximum logic depth from a primary input to a primary output.
GT Time is the reported synthesis runtime in seconds for the corresponding experiment.
Verification rules and acceptance criteria
A synthesized network is a valid implementation of a benchmark only if it satisfies every specified PDBF output value over the complete care domain of the PLA.
-
For every PLA cube and every output specified as
0, the synthesized output must be0for every concrete binary input assignment covered by that cube. -
For every PLA cube and every output specified as
1, the synthesized output must be1for every concrete binary input assignment covered by that cube. -
An output value
-is unrestricted. A term for which all outputs are-imposes no PDBF constraint and should not be included in the effective truth table. -
Verification must cover the complete input region represented by a cube, not only one representative minterm.
If a PLA input is
-and belongs to the effective support of the synthesized output, all relevant assignments of that free support variable must be checked or proven equivalent. - If all primary inputs in the effective support of an output are fixed within a PLA cube, evaluation of that support assignment proves the output over the complete cube; primary inputs outside the output support cannot affect the result.
-
Two overlapping cubes may not impose contradictory values on the same output.
If two terms require opposite values,
0/1or1/0, for an output, their input cubes must be disjoint. Therefore at least one input position must contain an explicit complementary pair0/1or1/0. - Behavior outside the PDBF care domain is unrestricted. Two valid synthesized networks do not have to be globally equivalent if they make different choices in don't-care regions.
Results obtained with other synthesis tools
We welcome independent experiments with these benchmarks. If you obtain a synthesis result using another combinational logic synthesis tool, please inform us of the result and the synthesis conditions.
For meaningful comparison, please identify the tool and version, synthesis commands/options, hardware platform, runtime, peak memory if available, gate/node count and logic depth. The resulting implementation can be validated against the original PLA using the verification criteria above.
A valid result with fewer gates, fewer levels, or competitive synthesis time is welcome.
Input-size terminology used in this suite
The terms below are benchmark-suite classifications rather than claims of universal EDA terminology:
| Class | Primary inputs |
|---|---|
| Small | < 200 |
| Medium | 200 – 9,999 |
| Large | 10,000 – 99,999 |
| Very large | 100,000 – 999,999 |
| Extreme | ≥ 1,000,000 |
