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.

Open synthesis challenge: download any PLA specification, synthesize it with your preferred combinational logic synthesis tool, and compare your verified result with the published GT result.

Purpose of the benchmark suite

This page provides reproducible PDBF synthesis problems in standard PLA format. The benchmarks include semantic control and policy functions as well as 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.

PDBF model. For an input cube xi ∈ {0,1,−}n and output pattern yi ∈ {0,1,−}m, specified 0 and 1 values are mandatory over the complete input region represented by the cube, while “−” is a don't-care.

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 PDBF benchmarks

These examples illustrate contextual PDBFs, as discussed in Paper II. Each benchmark represents the PDBF of block A0 (adder) in an A×B multiplier implemented using the Vedic algorithm. The admissible input combinations of A0 are determined by the outputs of the multiplier blocks that feed the adder, thereby providing the context that defines the PDBF. The table reports PLA dimensions and cube counts together with available ABC and GT synthesis results.

BenchmarkPIPOCubesABCGTPLA
GatesLevelsGatesLevels
3_3H4316104104PLA
3_4H6528235144PLA
229
4_4H8549356235PLA
4_5H961124610358PLA
5_5H10625660103610PLA
3112
5_6H11741674133712PLA
7325
6_6H12767688134213PLA
6_7H1381,482112154414PLA
10132
7_7H1483,2491843214817PLA
7_8H1595,1304892215116PLA
8_8H1698,10010321155515PLA
8_9H171019,53028508276118PLA
9_9H181047,08966667286516PLA
9_10H191173,780107568317020PLA
10_10H2011115,600178083327221PLA
10_11H2112269,280401603357725PLA
11_11H2212627,2647722PLA
11_12H2313980,4969327PLA
12_12H24131,532,64411829PLA

Where multiple synthesis results are available for the same contextual PDBF, additional lines show the corresponding ABC or GT netlist variants.

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 28 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.

BenchmarkPIPOCare TermsCare DensityGT Gates|LevelsABC synt Gates|LevelsABC transtoch Gates|LevelsPLA
Autonomous Braking2142,1870.104284%20|583|971|11PLA
Battery Management2252,3040.054932%20|7; 23|678|1173|12PLA
Crop Health2465,1840.030899%17|7; 18|585|1373|17PLA
Data-Center Cooling2161,7280.082397%20|7; 24|681|971|18PLA
Drone Obstacle2466,5610.039107%27|10; 28|8; 31|794|1181|11PLA
ECG Arrhythmia1847290.278091%8|452|951|8PLA
Financial Fraud2152,1870.104284%21|578|1071|13PLA
Food Quality2262,3040.054932%20|577|1071|14PLA
Hand Gesture2446,5610.039107%12|5; 14|473|969|10PLA
Jet Engine Health2363,0720.036621%31|14; 32|13; 33|12; 39|11; 40|8102|1285|14PLA
Keyword Spotting2041,0240.097656%9|560|957|12PLA
Malware Behavior2465,1840.030899%25|13; 27|692|1382|11PLA
Medical Triage2466,5610.039107%24|8; 27|7; 28|6101|1081|14PLA
Motor Fault2152,1870.104284%14|6; 15|567|963|11PLA
Network Intrusion1644,6087.031250%10|427|827|8PLA
Power-Grid Fault2456,5610.039107%14|6; 15|576|1073|9PLA
Predictive Maintenance2466,5610.039107%31|10; 32|9; 35|896|1283|14PLA
Road Scene2363,0720.036621%28|9; 30|7; 34|688|1179|12PLA
Robot Grasp2262,3040.054932%22|10; 23|784|1573|16PLA
Sepsis Risk2262,3040.054932%27|8; 30|783|1178|15PLA
Smart Camera Event2162,1870.104284%19|6; 22|576|1066|16PLA
Sonar Target2262,3040.054932%19|12; 20|10; 21|7; 23|6; 26|589|1072|13PLA
Supply-Chain Risk2262,3040.054932%23|15; 24|11; 25|8; 28|7; 32|682|1075|14PLA
Voice Command2161,7280.082397%24|11; 25|9; 26|8; 27|779|1070|14PLA
Wafer Defect2454,0960.024414%18|6; 26|580|1074|13PLA
Water-Treatment Anomaly2262,3040.054932%32|9; 33|888|980|11PLA
Wildfire Risk2262,3040.054932%27|12; 28|10; 31|9; 32|790|1079|16PLA
Maritime Navigation2474,0960.024414%32|9; 34|8101|1285|15PLA

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.

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_semantic16203270117411PLA
8010779
868
can_receive_filter_fsm_semantic162091113119720PLA
9916
10012
13811
14410
1459
1508
ethernet_frame_classifier_fsm_semantic1720299298218PLA
8515
8614
8812
9111
9310
1249
1258
1317
i2c_target_transaction_fsm_semantic1419421241210430PLA
13011
12712
10913
ipv4_ipv6_acl_packet_classifier_semantic83124,096134,5365956953PLA
nvme_submission_queue_command_fsm_semantic1920198138139319PLA
10911
10212
9713
9616
pcie_tlp_transaction_header_fsm_semantic2021120129118614PLA
8811
9010
919
928
1197
riscv_pipeline_hazard_forwarding_semantic17181014683513PLA
3911446
437
378
369
riscv_privileged_trap_csr_controller_semantic3124177110146616PLA
9910
7511
7213
sdcard_spi_command_fsm_semantic1720791311711423PLA
11522
11719
11818
12115
12514
16111
16510
1799
spi_transaction_fsm_semantic1619451151710324PLA
10923
11019
11215
12511
16110
1669
1778
uart_rx_fsm_semantic810263512327PLA
346
355
usb_control_transfer_fsm_semantic1721431091511319PLA
11916
12114
12713
17811
18210
1839
1998

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_semantic26203,1529557823PLA
7913
8011
8410
919
can_11bit_identifier_decoder_native11833486124PLA
133
CAN_CANFD_frame_control_decoder811128265216PLA
224
CV32E40P_v1.0_actual_decoder_control_projection172369103104112PLA
DALI_command_decoder948356775PLA
114
DMX512_start_code_decoder4449321PLA
ethernet_mac_address_filter_native941627821PLA
295
FlexRay_header_semantic_decoder1451326322PLA
i2c_target_register_control_semantic51416317245PLA
308264
Ibex_RV32IM_actual_control_projection1722589311498PLA
585
566
517
LIN_protected_identifier_decoder8862341132PLA
32
mdio_clause22_semantic_controller61315244174PLA
Modbus_public_function_decoder67193030247PLA
376
pcie_axil_master_minimal_source183718,4329011667PLA
685
pcie_bar_address_routing_controller_semantic2620998108106914PLA
pcie_completion_validation_error_policy_semantic24201,32895117514PLA
979
9610
9011
PicoRV32_default_actual_decode_projection103940745674PLA
703
SERV_MDU_actual_serv_decode_projection14483,56513515568PLA
665
spi_semantic_command_register_controller615153810223PLA
usb_cdc_setup_source_derived243630,720201138019PLA
8217
8312
8411
11210
usb_hid_setup_semantic_controller27253320318366PLA
404
375
VexRiscv_GenSmallest_plugin_decode_projection141249669194PLA
203

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
GatesLevelsGatesLevels
BCD adderA0 — Binary Adder9520037113211PLA
3612349
358
BCD adderA1 — Correction Condition51206343PLA
BCD adderA2 — Correction Select1420000PLA
BCD adderA3 — Correction Adder9520271083PLA
259
BCD adderWhole — Assembled9520044173810PLA
4516
BCD adderWhole — Contextual9520047124112PLA
One-hot FSMF0 — Next-state641618642PLA
One-hot FSMF1 — Action decode621113683PLA
One-hot FSMWhole — Assembled6616208114PLA
One-hot FSMWhole — Contextual661620883PLA
Instruction decoderD0 — Opcode class84816894PLA
Instruction decoderD1 — ALU control43812443PLA
Instruction decoderWhole — Assembled8482210128PLA
137
Instruction decoderWhole — Contextual8482010128PLA
137

“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.

BenchmarkPIPOCubes ABCGTPLA
GatesLevelsGatesLevels
E250_1_16 250116 70816 11 PLA
E250_1_32 250132 2,17530 43 PLA
E250_1_64 250164 3,78335 95 PLA
E250_1_128 2501128 7,00335 216 PLA
E250_1_256 2501256 13,64837 458 PLA
E250_1_500 2501500 25,77942 9514 PLA
E250_1_1000 25011,000 46,25644 20920 PLA
E250_1_2000 25012,000 82,10744 43128 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.

  1. For every PLA cube and every output specified as 0, the synthesized output must be 0 for every concrete binary input assignment covered by that cube.
  2. For every PLA cube and every output specified as 1, the synthesized output must be 1 for every concrete binary input assignment covered by that cube.
  3. 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.
  4. 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.
  5. 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.
  6. Two overlapping cubes may not impose contradictory values on the same output. If two terms require opposite values, 0/1 or 1/0, for an output, their input cubes must be disjoint. Therefore at least one input position must contain an explicit complementary pair 0/1 or 1/0.
  7. 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.
Verification status: a result should be described as VERIFIED only when the complete PDBF care domain has been checked or proven against the synthesized network. Simulation of selected test vectors alone should be described as sampled or unverified.

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:

ClassPrimary inputs
Small< 200
Medium200 – 9,999
Large10,000 – 99,999
Very large100,000 – 999,999
Extreme≥ 1,000,000