GT Synt
Home

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.

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.17203278127113PLA
7511
8110
879
1048
1187
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_semantic1619421161210633PLA
10913
13612
1429
ipv4_ipv6_acl_packet_classifier_semantic512124,096134,5365950964PLA
53759
54252
56449
57747
60946
63041
64138
64733
nvme_submission_queue_command_fsm_semantic2020198125129523PLA
9820
9919
10017
10114
11113
12610
1279
pcie_tlp_transaction_header_fsm_semantic2021120129118614PLA
8811
9010
919
928
1197
riscv_pipeline_hazard_forwarding_semantic22181015273513PLA
3712
388
447
riscv_privileged_trap_csr_controller_semantic3424177114136915PLA
7013
7512
9211
1088
1197
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_projection32236912719436PLA
574
485
DALI_command_decoder948356775PLA
114
DMX512_start_code_decoder84418421PLA
21
ethernet_mac_address_filter_native48416112821PLA
21
FlexRay_header_semantic_decoder16513221722PLA
22
i2c_target_register_control_semantic101416418244PLA
Ibex_RV32IM_actual_control_projection32225811612519PLA
527
566
665
LIN_protected_identifier_decoder8862341132PLA
32
mdio_clause22_semantic_controller121315317174PLA
193
Modbus_public_function_decoder8719396247PLA
265
pcie_axil_master_minimal_source273718,4329011667PLA
685
pcie_bar_address_routing_controller_semantic2720998109166915PLA
7112
7711
pcie_completion_validation_error_policy_semantic26201,32898157514PLA
7713
8112
8311
8710
PicoRV32_default_actual_decode_projection323940986624PLA
673
SERV_MDU_actual_serv_decode_projection14483,56513515568PLA
665
spi_semantic_command_register_controller91515478223PLA
usb_cdc_setup_source_derived643630,720201138019PLA
8217
8312
8411
11210
usb_hid_setup_semantic_controller64253324220366PLA
375
413
VexRiscv_GenSmallest_plugin_decode_projection3212498910194PLA
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 512 12 4,096 647 33 151 PLA
ipv6_5g_upf_gtpu_policy_semantic 1,344 18 16,384 273 43 43 PLA
ipv6_bgp_evpn_route_policy_semantic 1,312 18 16,384 14 3 0.5 PLA
ipv6_dns_doh_security_policy_semantic 1,296 18 16,384 682 98 142 PLA
ipv6_firewall_policy_classifier_semantic 806 14 8,192 4,147 223 2,142 PLA
ipv6_geneve_nsh_service_chain_policy_semantic 1,392 17 16,384 2,979 162 2,044 PLA
ipv6_ids_ips_signature_policy_semantic 1,248 18 16,384 3,257 164 9,365 PLA
ipv6_ipsec_sa_security_policy_semantic 1,280 18 16,384 3,488 167 7,161 PLA
ipv6_macsec_zero_trust_policy_semantic 1,328 17 16,384 5,794 238 12,109 PLA
ipv6_mpls_srv6_interworking_policy_semantic 1,368 18 16,384 3,843 202 4,157 PLA
ipv6_nvmeof_storage_policy_semantic 1,360 18 16,384 1,909 147 1,013 PLA
ipv6_ptp_tsn_policy_semantic 1,280 18 16,384 1,890 141 1,008 PLA
ipv6_quic_ddos_mitigation_policy_semantic 1,152 18 16,384 823 67 196 PLA
ipv6_quic_tls_sase_policy_semantic 1,304 17 16,384 3,776 204 4,393 PLA
ipv6_rocev2_rdma_congestion_policy_semantic 1,320 18 16,384 2,919 198 2,395 PLA
ipv6_security_telemetry_policy_medium_semantic 1,000 16 8,192 290 47 31 PLA
ipv6_service_chain_security_policy_narrow_semantic 946 16 8,192 1,527 134 756 PLA
ipv6_service_mesh_load_balancer_policy_semantic 1,216 18 16,384 3,484 208 3,424 PLA
ipv6_srv6_service_policy_classifier_semantic 1,408 18 16,384 3,283 200 6,185 PLA
ipv6_storage_replication_erasure_policy_semantic 1,376 17 16,384 3,552 217 4,073 PLA
ipv6_vxlan_microsegmentation_ct_policy_semantic 1,024 18 12,288 1,420 135 337 PLA

The PLA files should be uploaded using exactly the benchmark filenames shown in the first column.

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< 250
Medium250 – 9,999
Large10,000 – 99,999
Very large100,000 – 999,999
Extreme≥ 1,000,000