Skip to content

lo7ev/LOFMPL

 
 

Repository files navigation

LOFMPL: An Open-Source Logic Optimization Framework with Maximum Fanout-Free Cone (MFFC)-based Hypergraph partitioning and Reinforcement Learning

Prerequisites

System packages (Ubuntu 22.04 / Debian / Arch):

g++  cmake  make  git  python3  yosys

Install on Ubuntu/Debian: sudo apt install g++ cmake make git python3 yosys

Micromamba (conda-compatible package manager, required for the RL Python environment):

"${SHELL}" <(curl -L micro.mamba.pm/install.sh)

Quick Build

git clone --recursive https://github.com/YOUR_USERNAME/LOFMPL.git
cd LOFMPL
make all        # builds abc_p, LSOracle_p, abc_netlist.so, abc_py

Individual targets: make abc, make lsoracle, make abc_netlist, make abc_py

For Python RL environment setup and pipeline usage, see SETUP.md.


As circuit complexity increases, traditional reinforcement learning (RL) approaches face significant challenges in effectively exploring logic optimization sequences within large-scale Boolean networks. These methods often suffer from long runtime overhead and suboptimal optimization results.

LOFMPL addresses these challenges by introducing an innovative logic optimization framework that combines Maximum Fanout-Free Cone (MFFC)-based Hypergraph partitioning with reinforcement learning. LOFMPL leverages Yosys for Verilog parsing and combinational logic extraction.

The core of LOFMPL is a novel two-stage MFFC-based hypergraph partitioning technique. This technique partitions the circuit into highly independent subnetworks, enabling efficient exploration by a parallel RL-based design space exploration engine implemented using C++ APIs. This approach reduces runtime while enhancing the quality of logic optimization.

Key Features

  • Enhanced Optimization: Achieves superior optimization results within the same runtime constraints compared to state-of-the-art methods.
  • Broad Benchmarking: Validated against more than 150 benchmarks compared to other ML-based and greedy methods.
  • Significant Improvements:
    • Partition Efficiency: Outperform KaHypar and MFFCKaHypar by 33% and 28% on node-level-product without significant runtime overhead.
    • Logic Optimization Task: Average node-level-product improvement of 13% over RLG, 3% over ESE, 14% over Boils, and 7% over DRiLLS.
    • ASIC Technology Mapping Task: Average Area-Delay-Product (ADP) improvement of 23% over LSOracle, 9% over Boils, and 5% over DRiLLS.
    • Comprehensive Benchmarking: Across all 150+ benchmarks, LOFMPL demonstrates average improvements of 9%, 6%, and 7% compared to ABC 'resyn2', BOiLS, and DRiLLS respectively.

LOFMPL is an open-source project designed to advance the field of logic optimization, offering a robust, scalable solution for large-scale circuit design challenges.

If you have any questions, please feel free to contact my email for inquiries: kxzhu21@m.fudan.edu.cn

Build

To build and configure LOFMPL, follow the steps below:

1. Clone the Repository

First, clone the LOFMPL repository and initialize the required submodules:

git clone https://github.com/kxzhu0505/LOFMPL.git
cd LOFMPL
git submodule update --init --recursive

2. Build ABC and LSOracle

LOFMPL relies on ABC and LSOracle for circuit partitioning. You need to build these tools following their respective instructions.

ABC_P:

  • Navigate to the ABC submodule directory:
    cd abc_p
  • Build ABC as per the instructions in the README.md of the ABC repository.

LSOracle_p:

  • Navigate to the LSOracle submodule directory:
    cd LSOracle_p
  • Follow the build instructions in the README.md of the LSOracle repository.

3. Build rl_logic_synthesis for Parallel Optimization

LOFMPL uses the rl_logic_synthesis tool for reinforcement learning-based optimization. Build it by following the steps below:

  • Navigate to the rl_logic_synthesis directory:
    cd rl_logic_synthesis
  • Follow the build and setup instructions provided in the README.md of the rl_logic_synthesis repository.

4. Build abc_netlist.so

  • Navigate to the abc_netlist directory:
    cd abc_netlist
    g++ -shared -o abc_netlist.so abc_netlist.cc

Usage

Once the build process is complete, follow these steps to perform partitioning, optimization, and evaluation of circuits.

To perform the optimization, use the run_top.sh script:

./src/run_top.sh

This step divides the input circuit using tools such as ABC and LSOracle.


Manual Partition and Reassemble (Noop Pipeline)

Use these steps to partition a design and glue it back without RL optimization. This is useful for verifying the partition round-trip or as a starting point before applying RL.

1. Create a work directory with bench_info.yaml

file(s):
  - /abs/path/to/dep.v
  - /abs/path/to/top.v
top: your_top_module
type: sequential   # or combinational

2. Partition — yosys flattens the design, abc_p pif partitions it, LSOracle further splits large partitions with --noop_dir

cd /your/work/dir
python3 src/partition.py \
  -work_dir . \
  -yosys_exe /usr/bin/yosys \
  -abc_exe   abc_p/abc \
  -abc_p_exe abc_p/abc \
  -lsoracle_exe LSOracle_p/build/core/lsoracle \
  -part_size 400    # tune: smaller = more partitions

Output: src/part_N.v, src/part_N.ports, src/top.inputs, src/top.outputs

3. Reassemble combinational top

python3 src/gen_top.py -dir src -module_name netlist

Output: src/netlist.v

4. Flatten the assembled netlist

yosys -Q -T -p \
  'read_verilog src/*.v;
   hierarchy -top netlist;
   flatten; techmap; opt -purge;
   write_verilog -noattr netlist.v'

Output: netlist.v (flat, in work dir)

5. Re-insert registers — get final sequential output

This step reads the original RTL (with DFFs), verifies equivalence via ABC CEC, and substitutes the optimized combinational core, producing a sequential output.v.

yosys -Q -T \
  -m abc_netlist/abc_netlist.so \
  -p 'read_verilog -nolatches /abs/path/dep.v;
      read_verilog -nolatches /abs/path/top.v;
      hierarchy -check -top your_top_module;
      flatten; proc; opt -purge; memory; opt -purge;
      fsm; opt -purge; techmap; opt -purge;
      abc_netlist -netlist netlist.v -script "+cec netlist.v; quit";
      opt -purge; write_verilog -noattr src/output.v'

Output: src/output.v — sequential, same interface as original RTL

Note: The --noop_dir partitions are intentionally combinational — they represent the logic between pipeline registers. Register re-insertion happens in step 5 via the abc_netlist yosys plugin. For sequential designs, CEC verifies equivalence of the combinational abstraction (DFFs exposed as PI/PO). A noop round-trip produces a bit-exact equivalent of the original.


RL Optimization — src/rl_opt.py

rl_opt.py is the main tool for RL-based optimization. It takes a folder of partition .v files, trains PPO on each, and writes optimized .v files to an output folder. Simulation, verification, and metrics are left to you.

python3 src/rl_opt.py \
  --input   path/to/partitions/ \
  --output  path/to/optimized/ \
  --steps   5000 \
  --workers 4
Option Default Description
--input required folder with input partition .v files
--output required folder for optimized .v files (created if missing)
--steps 5000 PPO training steps per partition
--workers 4 parallel training jobs (each spawns ABC subprocesses — don't set too high)
--min-nodes 5 skip partitions smaller than N AND-nodes (trivial)
--work-dir <output>/.rl_work where PPO logs and monitor CSVs are stored

Resume-safe: re-running the command skips any partition whose 0.monitor.csv already exists in --work-dir. Interrupt and restart freely.

Output: one optimized .v per input partition. Trivial partitions (below --min-nodes) are copied unchanged. Partitions with no monitor (training failed) are also copied unchanged.

Example — ifft8, 24 partitions, 5000 steps:

Partition                                 Before   After  Saved%
------------------------------------------------------------
network_5_part_0_noop                        677      74   89.1%
network_6_part_4_noop                        671      63   90.6%
network_6_part_8_noop                        672      66   90.2%
network_0                                    593     360   39.3%
...
TOTAL                                      11098    6023   45.7%

Reassembly (optional — if you need a single flat netlist):

python3 src/gen_top.py -dir path/to/optimized/ -module_name netlist
yosys -Q -T -p "read_verilog path/to/optimized/*.v; \
  hierarchy -top netlist; flatten; techmap; opt -purge; \
  write_verilog -noattr flat_netlist.v"

Observed results on ifft8 (8-point IFFT, 24 partitions, 5000 steps):

  • AND-node reduction: 45.7% (11,098 → 6,005 nodes)
  • NMSE vs original RTL: −∞ dB (bit-exact)

Experiment Results For All 150+ benchmarks on ASIC Technology Mapping

Benchmarks ABC LSOracle BoiLs DriLLs LOFMPL
Area(um2) Delay(ps) ADP Area(um2) Delay(ps) ADP Area(um2) Delay(ps) ADP Area(um2) Delay(ps) ADP Area(um2) Delay(ps) ADP
 /vtr/arm_core 156318.2 1034.19 161662747.9 151004.5 1056.51 159537767.5 152004.9 1041.54 158319148 161500.8 1031.03 166512130 146799.1 1022.63 150121140
 /OPDB/sparc_ifu 82344.63 1418.87 116836326.3 82610.32 1623.1 134084814.1 80266.22 1366.24 109662924 77454.7 1378.32 106757366 77491.85 1365.92 105847672
 /quip/oc_aquarius 74737.33 1319.75 98634586.27 72260.9 1322.08 95534688.89 76614.06 1289.77 98814521 65852.52 1310.53 86301706.2 65919.68 1324.6 87317205.4
 /koios/spmv 69036.24 486.8 33606841.71 68554.43 442.71 30349731.48 69442.06 518 35970987 67610.2 441.99 29883032.1 66835.2 427.62 28580068.1
 /vtr/mcml 64033.73 2422.24 155105052.5 65656.8 2516.05 165195793.6 63919.26 2408.69 153961679 63803.23 2477.33 158061658 62014.1 2412.85 149630732
 /koios/attention_layer 58978.97 672.35 39654511.41 54964.41 655.77 36044012.64 52220.98 675.19 35259084.3 52565 662.03 34799604.5 52056.65 656.01 34149683
 /OPDB/l15_wrap 54529.61 694.74 37883899.31 54230.35 636.12 34497012.02 52146.39 705.92 36811179.3 52314.85 658.1 34428400.7 51671.43 659.52 34078342.5
 /OPDB/lsu 47143.15 517.17 24381020.75 52444.45 650.54 34117211.54 15886.88 564.46 8967507.15 15887.74 491.67 7811524.24 15565.55 476.73 7420564.35
 /koios/bnn 46684.91 766.98 35806393.41 52291.84 703.69 36797244.93 47817.84 779.37 37267786.7 48742.38 750.25 36568972.7 47142.9 672.42 31699827.8
 /vtr/LU8PEEng 30131.14 4459.65 134374356.6 32038.3 4468.85 143174337.3 29928.95 4324.69 129433425 30648.11 4370.53 133948472 29466.34 4179.1 123142781
 /OPDB/fpga_bridge_rcv_32 26856.86 489.02 13133539.33 26317.4 492.81 12969475.54 26211.68 437.79 11475209.5 26362.59 455.97 12020551.6 25876.15 499.9 12935485.4
 /vtr/sv_chip2_hierarchy_no_mem 17329.58 1039.59 18015661.9 17958.9 1047.64 18814462.22 16616.14 1026.55 17057299.1 16746.82 1004.29 16818665 16128.13 1014.9 16368442.6
 /koios/robot_maze 16794.64 368.82 6194200.368 16629.96 331.26 5508841.301 16365.57 368.82 6035948.98 16652.61 342.07 5696356.59 16187.2 321.65 5206611.86
 /OPDB/sparc_exu_wrap 15425.38 465.44 7179587.601 14959.43 574.57 8595239.481 15648.44 461.05 7214711.75 15623.78 469.13 7329584.81 15375.83 439.89 6763675.81
 /vtr/mkDelayWorker32B 13983.25 428.96 5998257.022 13891.52 434.21 6031835.834 13788.95 433.98 5984127.33 13791.44 482.77 6658093.69 13755.33 424.64 5841061.53
 /vtr/sv_chip1_hierarchy_no_mem 10483.11 506.19 5306444.109 10734.42 484.28 5198466.276 10837.47 499.5 5413318.4 10652.57 506.75 5398190.2 10485.94 503.2 5276522.93
 /vtr/system 8871.361 639.46 5672880.637 8888.653 636.27 5655583.302 8924.724 610.22 5446045.08 8848.412 633.89 5608920.06 8847.129 619.61 5481769.75
 /iwls05/opencores/vga_enh_top 8781.155 322.06 2828058.7 8581.467 319.67 2743237.581 8464.842 346.26 2931036.07 8290.246 327.63 2716133.35 8394.566 324.38 2723029.34
 /vtr/bgm 8666.031 860 7452786.803 8759.635 874.37 7659161.849 8689.884 792.87 6889948.37 8410.604 821.83 6912086.81 8225.409 739.68 6084170.53
 /koios/top 7834.3 664.41 5205187.54 7767.932 680.06 5282660.014 7699.669 674.58 5194042.51 7736.921 670.08 5184355.75 7678.63 660.27 5069968.88
 /quip/oc_video_compression_systems_dct 7757.508 709.1 5500848.656 8111.51 705.42 5722021.398 8171.448 704.5 5756785.41 7897.898 714.94 5646523.52 7766.708 704.86 5474441.53
 /quip/oc_video_compression_systems_jpeg 7582.096 638.1 4838135.235 7734.777 631.2 4882191.499 7326.873 646.18 4734478.64 7237.847 643.14 4654949.1 7246.639 657.52 4764810.09
 /koios/softmax 7088.096 574.7 4073528.807 7280.45 580.09 4223316.243 7098.39 584.58 4149576.56 7096.013 566.71 4021381.53 7053.017 554.47 3910686.11
 /quip/oc_des_des3perf 6363.164 266.97 1698773.864 6877.196 300.73 2068179.262 6084.948 291.12 1771450.16 6377.904 278.75 1777840.82 6089.833 259.03 1577449.35
 /OPDB/sparc_ffu_nospu_wrap 5834.26 431.75 2518941.663 5544.701 417.95 2317407.781 5788.551 449.04 2599291.16 5747.13 408.44 2347357.66 5582.93 415.36 2318925.7
 /iwls05/opencores/eth_top 5577.2 360.39 2009967.045 5512.756 422.38 2328477.976 5404.441 355.11 1919171.19 5520.659 461.11 2545630.88 5450.368 352.97 1923816.54
 /OPDB/tlu_nospu_wrap 5529.523 577.22 3191751.394 6330.681 610.14 3862601.854 5568.248 579.02 3224126.78 5558.187 639.39 3553849.5 5497.258 598.3 3289009.27
 /vtr/sv_chip0_hierarchy_no_mem 5308.695 227.37 1207037.873 5300.486 243.28 1289502.228 5261.003 228.25 1200824.01 5405.622 236.44 1278105.35 5288.807 227.96 1205636.53
 /vtr/paj_raygentop_hierarchy_no_mem 4919.35 611.17 3006559.291 4892.304 595.75 2914590.315 4711.308 624 2939856.33 4839.787 612.42 2963982.47 4588.545 598.28 2745234.48
 /OPDB/chip_bridge 4842.703 471.79 2284738.927 4820.104 480 2313650.001 4828.721 508.88 2457239.51 4875.421 505.32 2463647.58 4754.407 478.48 2274888.51
 /vtr/paj_boundtop_hierarchy_no_mem 4815.511 369.97 1781594.777 4719.604 397.61 1876561.837 4670.82 392.17 1831755.3 4671.869 369.47 1726115.55 4602.337 363.68 1673778.02
 /vtr/mkPktMerge 3807.713 240.87 917163.7636 3772.415 237.02 894137.6947 3786.397 231.31 875831.436 3970.236 240.47 954722.647 3732.232 225.84 842887.29
 /benchmarks/arithmetic/sqrt/top 3696.803 23481.82 86807656.52 3430.426 22816.8 78271347.15 2731.096 14585.37 39834052.1 3035.104 16686.45 50645111.4 2634.271 14199.12 37404325.2
 /iwls05/faraday/frisc 3076.351 344.28 1059126.046 3022.623 356.66 1078048.89 2968.153 351.11 1042148.06 3014.663 354.17 1067703.13 2948.543 353.37 1041926.46
 /iwls05/faraday/TOP 2839.47 666.02 1891143.512 2964.755 687.55 2038417.64 2838.23 681.02 1932891.57 2861.15 694.87 1988127.31 2302.022 641.04 1475687.92
 /benchmarks/arithmetic/log2/top 2325.481 3292.23 7656017.76 2460.2 3336.55 8208580.42 2290.955 3259.56 7467506.56 2051.1 3311.99 6793222.07 1941.327 3331.18 6466909.65
 /quip/oc_fpu 2317.622 9028.21 20923980.01 2689.82 9471.38 25476311.61 2443.739 9272.64 22659913.9 2308.247 9109.36 21026655.4 2220.242 8976.81 19930694.1
 /iwls05/opencores/fpu 2281.887 9158.31 20898225.15 2577.146 9600.33 24741454.07 2413.894 9194.28 22194016.9 2238.307 9066.59 20293812 2228.188 9027.16 20114214
 /vtr/or1200_flat 2070.418 929.24 1923915.498 2130.561 909.13 1936956.739 2100.001 918.18 1928179.03 2113.619 924.61 1954273.12 2086.456 909.91 1898487.45
 /quip/oc_aes_core_inv 2027.509 468.93 950759.9632 2158.656 478.1 1032053.652 1971.012 472.3 930908.901 1982.253 478.06 947635.888 1950.469 468.55 913892.081
 /iwls05/opencores/wb_conmax_top 1878.998 347.58 653101.9511 1855.043 356.91 662083.239 1854.124 354.62 657509.46 1875.965 337.57 633269.456 1819.978 345.62 629020.677
 /iwls05/opencores/des/des 1840.638 265.01 487787.3447 2027.524 282.44 572653.861 1815.808 265.39 481897.222 1808.591 265.33 479873.361 1788.252 259.38 463836.69
 /iwls05/opencores/pci_bridge32 1760.812 331.82 584272.6378 1758.99 324.41 570633.784 1760.01 308.79 543473.519 1774.051 308.96 548110.685 1757.342 317.8 558483.275
 /quip/oc_des_perf_opt 1732.964 239.08 414317.0817 1881.01 244.64 460170.1692 1760.156 232.21 408725.802 1737.819 240.92 418675.436 1656.594 232.67 385439.764
 /benchmarks/arithmetic/multiplier/top 1695.887 1619.34 2746218.098 1781.895 1692.38 3015642.946 1726.972 1642.82 2837103.87 1798.997 1650.9 2969964.21 1636.313 1626.04 2660711.03
 /benchmarks/random_control/mem_ctrl/mem_ctrl 1645.178 515.5 848089.2786 2005.523 624.04 1251526.411 1399.578 424.67 594358.763 1530.433 449.96 688633.831 1479.753 418.23 618877.247
 /OPDB/picorv32 1520.329 344.63 523951.1477 1447.473 363.8 526590.7563 1528.815 341.08 521448.233 1478.951 362.14 535587.474 1455.886 346.75 504828.428
 /vtr/RLE_BlobMerging 1519.105 806.13 1224595.931 1575.092 859.4 1353634.043 1439.221 783.26 1127284.2 1462.141 774.85 1132939.73 1474.359 783.71 1155469.7
 /OPDB/dynamic_node_top_wrap 1374.967 400.55 550742.9834 1405.891 417.44 586875.1637 1398.834 381.79 534060.962 1389.212 401.73 558087.952 1363.726 378.35 515965.618
 /quip/oc_vga_lcd 1304.735 492.54 642634.1868 1317.901 484.88 639023.7205 1312.448 474.83 623189.608 1316.341 496.62 653721.118 1293.392 462.76 598529.98
 /iwls05/faraday/dma_top 1259.041 319.33 402049.6638 1293.144 333.87 431741.9659 1195.429 299.59 358138.507 1193.854 323.54 386259.567 1195.254 312.86 373947.109
 /benchmarks/arithmetic/square/top 1232.054 667.26 822100.1759 1398.193 674.22 942689.5752 1230.523 655.79 806964.571 1383.496 662.29 916275.696 1215.403 663.3 806177.06
 /quip/oc_aes_core 1223.481 378.76 463405.548 1336.024 386.81 516787.332 1174.346 361.26 424244.27 1133.522 359.47 407467.187 1152.753 364.53 420213.093
 /quip/oc_mem_ctrl 1208.172 406.68 491339.2592 1136.744 422.89 480717.781 1111.346 398.25 442593.505 1118.68 424.05 474376.102 1099.522 386.17 424602.226
 /iwls05/opencores/aes_cipher_top 1200.75 377.16 452875.0492 1265.296 393.31 497653.6221 1140.681 363.2 414295.294 1123.141 382.63 429747.492 1155.844 363.07 419652.308
 /vtr/diffeq_paj_convert 1197.878 1637.46 1961477.662 1289.528 1678.27 2164176.313 1152.491 1521.14 1753099.67 1130.694 1566.63 1771378.48 1133.23 1551.99 1758762.4
 /iwls05/opencores/usbf_top 1145.405 359.32 411566.8459 1137.371 443.38 504287.6431 1136.526 347.3 394715.327 1134.091 358.14 406163.244 1112.06 341.35 379601.79
 /vtr/diffeq_f_systemC 1144.472 1422.12 1627576.06 1240.16 1453.87 1803031.73 1109.334 1363.86 1512976.1 1059.879 1406.98 1491227.88 1055.446 1383.07 1459755.97
 /iwls05/opencores/ac97_top 1138.96 182.35 207689.433 1162.886 195.36 227181.4482 1149.779 185.99 213847.356 1133.07 187.77 212756.573 1127.573 186.43 210213.517
 /quip/oc_wb_dma 1099.784 356.02 391545.0865 1111.506 360.9 401142.6175 1130.796 355.21 401669.914 1122.66 374.49 420424.937 1109.83 346.33 384367.279
 /iwls05/iscas/s35932_bench 1076.208 169.44 182352.7027 1097.247 170.76 187365.9069 1021.446 163.52 167026.79 1038.096 188.73 195919.857 1010.788 167.8 169610.168
 /iwls05/iscas/s38417_bench 977.6619 347.71 339942.8182 993.3354 354.3 351938.7312 971.6841 331.22 321841.206 971.5529 334.73 325207.895 962.3529 328.98 316594.856
 /vtr/mkSMAdapter4B 887.5137 280.22 248699.1013 894.1039 305.31 272978.8629 857.2748 301 258039.722 865.1772 308.63 267019.634 838.4666 301.52 252814.456
 /iwls05/iscas/s38584_bench 841.6159 219.47 184709.4455 841.2368 209.69 176398.9526 843.1906 211.99 178747.966 818.944 228.29 186956.73 822.4578 212.72 174953.223
 /OPDB/gng 795.339 600.95 477958.9666 807.4987 583.32 471030.1481 784.9726 580.01 455291.964 746.3939 595 444104.389 738.652 564.24 416776.977
 /quip/oc_ethernet 753.2174 326.97 246279.4861 771.3403 366.65 282811.9276 672.5171 362.85 244022.822 686.6451 333.46 228968.674 674.602 306.66 206873.455
 /vtr/sha1 741.4659 836.1 619939.6281 781.1818 855.82 668551.0158 786.2411 826.3 649670.995 734.0884 850.7 624489.008 728.8688 849.38 619086.553
 /iwls05/opencores/mc_top 687.1408 360.01 247377.5637 672.5171 392.63 264050.378 680.2153 377.51 256788.082 683.2042 379.57 259323.823 676.8473 366.03 247746.429
 /benchmarks/random_control/arbiter/top 679.7779 191 129837.5825 428.5208 207.17 88776.64999 649.2328 196.13 127334.033 607.7673 199.84 121456.217 691.2378 187.77 129793.722
 /iwls05/opencores/aes 651.4052 522.79 340548.1444 648.5913 548.32 355635.58 654.0734 500 327036.69 611.2373 496.36 303393.765 615.1156 468.53 288200.12
 /quip/barrel64 618.8627 278.96 172637.9329 660.3428 263.79 174191.8217 393.3247 260.42 102429.608 505.3574 277.61 140292.262 268.5344 242.69 65170.623
 /benchmarks/random_control/voter/top 612.535 867.08 531116.8088 619.4459 803.12 497489.3711 567.3953 827.93 469763.571 599.7775 811.7 486839.36 532.5199 805.33 428854.264
 /quip/oc_minirisc 501.3333 382.46 191739.9309 491.8417 419.13 206145.6168 506.1739 386.36 195565.329 500.3564 370.22 185241.958 495.7929 385.32 191038.917
 /benchmarks/arithmetic/sin/top 490.2233 1660.26 813898.2025 489.334 1625.4 795363.4186 479.6966 1658.69 795667.92 464.0814 1653.62 767414.283 440.2431 1615.52 711221.533
 /iwls05/opencores/tv80s 467.5077 508.23 237601.4363 506.3197 489.44 247813.0924 430.9702 506.64 218346.75 440.5347 505.73 222791.612 436.3211 473.11 206427.864
 /quip/mux8_128bit 453.1464 175.76 79645.00915 470.2925 173.01 81365.29989 445.6231 158.39 70582.2441 454.2107 166.12 75453.4861 453.1464 166.12 75276.678
 /quip/fip_risc8 426.7566 524.26 223731.4114 415.1947 534.18 221788.6803 423.3011 503.78 213250.645 422.6159 493.23 208446.827 418.5189 509.51 213239.562
 /quip/mux64_16bit 422.8054 208.73 88252.17323 432.3699 231.71 100184.427 428.7978 198.81 85249.2884 429.381 226.94 97443.7216 422.8054 208.73 88252.1732
 /koios/reduction_layer 377.9865 247.58 93581.89594 372.7377 269.03 100277.6218 365.054 260.76 95191.4896 359.7469 256.7 92347.0326 371.0902 244.52 90738.9642
 /quip/oc_des_des3area 369.9675 357.65 132318.876 313.5137 384.91 120674.5733 309.8542 330.27 102335.533 303.7014 351.07 106620.45 295.0409 347.7 102585.714
 /iwls05/opencores/wb_dma_top 345.2981 246.2 85012.40108 354.746 220.41 78189.56057 351.5821 219.89 77309.3915 346.3479 215.54 74651.8255 345.1086 219.74 75834.1629
 /OPDB/dynamic_node_top_wrap_para 314.9717 302.58 95304.14758 320.4101 316.86 101525.1364 327.5689 323.93 106109.379 323.2823 313.93 101488.023 321.2266 291.05 93492.9888
 /OPDB/sparc_ifu_esl 271.9024 614.69 167135.6979 293.4808 640.66 188021.4215 276.7284 633.8 175390.459 297.3883 631.57 187821.503 270.4736 640.85 173332.993
 /benchmarks/arithmetic/bar/top 250.7177 164.93 41350.86663 257.891 176.79 45592.55661 257.4682 169.95 43756.7235 241.4885 168.53 40698.0636 233.4695 165.46 38629.8701
 /iwls05/opencores/systemcdes/des 237.931 393.39 93599.68396 246.6207 393.39 97018.11717 244.2004 406.84 99350.4989 242.5383 385.73 93554.2985 233.3966 376.37 87843.4934
 /quip/oc_des_area_opt 231.268 306.63 70913.69457 263.1107 270.26 71108.29238 235.1608 300.61 70691.6941 246.6936 286.06 70569.1712 240.2055 268.36 64461.5477
 /quip/mux8_64bit 229.8245 166.91 38360.01297 244.8857 182.68 44735.71493 224.4008 164.8 36981.2476 229.8245 166.91 38360.013 229.8245 166.91 38360.013
 /iwls05/opencores/spi_top 226.6024 420.72 95336.1449 242.3342 421.39 102117.1997 217.3003 394.29 85679.3428 210.5789 407.88 85890.9376 217.971 385.52 84032.1795
 /quip/mux32_16bit 219.3707 187.45 41121.03303 221.4994 218.49 48395.39386 224.5903 202.1 45389.7025 219.5165 175.81 38593.1915 219.3707 185.05 40594.5434
 /benchmarks/arithmetic/max/top 200.0084 475.64 95132.01488 269.6717 499.71 134757.6352 196.2322 474.47 93106.3014 206.3653 503.86 103979.231 189.4379 484.03 91693.6461
 /quip/fip_cordic_rca 199.017 475.82 94696.26846 187.3676 457.61 85741.27783 144.619 484.13 70014.4057 178.5467 461.71 82436.7872 160.0738 451.91 72338.9595
 /quip/barrel32 193.637 232.73 45065.13436 120.3287 191.38 23028.51426 121.0577 206.27 24970.58 121.8013 204.72 24935.1662 113.0387 204.11 23072.3372
 /quip/fip_cordic_cla 157.3474 455.6 71687.45676 166.7515 449.44 74944.77618 153.5857 404.7 62156.1405 159.8405 420 67133.0264 155.0729 392.92 60931.2356
 /quip/oc_video_compression_systems_huffman_dec 137.8247 311.98 42998.56239 137.7518 300.93 41453.66121 128.0124 286.6 36688.3538 130.9576 284.09 37203.7332 123.1427 281.42 34654.813
 /iwls05/iscas/s13207_bench 137.6935 156.11 21495.33525 139.6181 154.08 21512.35377 133.7278 180.7 24164.6061 136.9499 159.48 21840.7764 135.5503 157.23 21312.5672
 /benchmarks/arithmetic/adder/top 129.5579 260.59 33761.48795 135.4774 254.11 34426.1522 155.3207 263.97 41000.0157 188.0383 240.38 45200.6369 148.9639 252.85 37665.512
 /iwls05/iscas/s5378_bench 122.8802 237.89 29231.98006 128.858 244.47 31501.92504 121.5097 236.22 28703.0261 123.5509 228.81 28269.686 123.201 229.83 28315.2858
 /vtr/memset 111.3766 246.91 27500.00075 112.0327 239.64 26847.52054 113.7532 245.05 27875.2114 114.9196 238.59 27418.6573 108.6502 244.63 26579.0882
 /quip/oc_video_compression_systems_huffman_enc 110.2977 209.02 23054.42525 110.3123 197.72 21810.9438 109.7582 204.06 22397.2665 114.0156 192.1 21902.3968 109.1896 186.22 20333.291
 /quip/oc_rtc 110.2977 249.43 27511.55506 105.0489 268.63 28219.28574 116.9753 236.8 27699.7605 109.4521 229.95 25168.5012 103.6638 225.66 23392.7729
 /benchmarks/random_control/dec/dec 107.5275 76.52 8228.0043 107.5275 76.52 8228.0043 107.5275 76.52 8228.0043 107.5275 76.52 8228.0043 107.5275 76.52 8228.0043
 /benchmarks/random_control/i2c/i2c 103.8388 112.48 11679.78372 120.0663 112.85 13549.48196 103.9117 115.68 12020.5008 124.2945 106.32 13214.9911 102.8036 111.62 11474.9356
 /quip/os_sdram16 100.3833 85.4 8572.73382 100.5437 85.4 8586.430272 100.9957 85.4 8625.02936 99.8001 85.4 8522.92854 100.2812 85.4 8564.0179
 /iwls05/iscas/s9234_1_bench 99.49392 231.14 22997.02467 102.235 230.72 23587.64997 104.5678 225.6 23590.4867 100.4999 230.03 23118.0012 98.15256 233.33 22901.9368
 /quip/oc_i2c 94.17222 221.69 20877.03945 98.83782 229.67 22700.08212 92.75796 230.21 21353.81 92.3643 234.14 21626.1772 90.9063 223.94 20357.5568
 /iwls05/opencores/i2c_master_top 91.81026 233.92 21476.25602 98.07966 225.86 22152.27201 91.59156 225.53 20656.6445 92.61216 223.47 20696.0394 92.40804 224.56 20751.1495
 /quip/oc_sdram 90.13356 183.33 16524.18555 87.08634 182.91 15928.96245 86.50314 194.88 16857.7319 86.08032 189.23 16288.979 86.06574 178.82 15390.2756
 /iwls05/opencores/simple_spi_top 79.8984 186.75 14921.02601 83.51424 197.93 16529.97333 81.75006 171.91 14053.6526 83.835 187.52 15720.739 80.7003 171.47 13837.6803
 /quip/oc_gpio 74.53296 137.16 10222.94079 75.91806 136.08 10330.9296 70.61094 135.4 9560.72128 68.0886 171.76 11694.8979 72.4626 134.88 9773.75549
 /iwls05/iscas/s15850_bench 74.48922 188.41 14034.51394 76.38462 199.31 15224.21861 72.41886 194.84 14110.0907 73.14786 190.33 13922.2322 72.79794 191.98 13975.7485
 /OPDB/fpu 73.7019 172.8 12735.68815 47.41416 159.1 7543.592697 25.32546 124.54 3154.03266 14.7258 125.76 1851.91661 26.01072 118.51 3082.53043
 /iwls05/opencores/sasc_top 70.11522 169.53 11886.63308 71.55864 165.44 11838.6614 66.1203 168.37 11132.6747 63.91872 164.24 10498.0104 63.26262 159.36 10081.531
 /vtr/sv_chip3_hierarchy_no_mem 67.66578 195.9 13255.72611 66.47022 188.06 12500.38939 63.84582 191.8 12245.6281 63.77292 193.92 12366.8445 61.87752 186.42 11535.2071
 /benchmarks/random_control/cavlc/top 67.18464 118.11 7935.17783 61.58592 123.2 7587.385344 60.52158 125.17 7575.48617 56.55582 122.77 6943.35802 56.6433 119.98 6796.06313
 /iwls05/iscas/s1423_bench 65.95992 283.37 18691.06253 69.5466 274.55 19094.01903 71.23788 295.88 21077.8639 69.82362 260.06 18158.3306 65.93076 259.96 17139.3604
 /OPDB/sparc_ifu_esl_fsm 61.58592 304.88 18776.31498 59.67594 283.34 16908.58056 56.67246 266.5 15103.2103 53.24616 301.05 16029.7562 51.03 240.13 12253.8337
 /benchmarks/random_control/priority/top 53.26074 134.89 7184.341219 49.7178 188.07 9350.426646 49.36788 140.88 6954.94693 53.42112 137.14 7326.1724 43.36092 129.34 5608.30139
 /iwls05/opencores/usb_phy 53.12952 170.74 9071.334074 52.37136 165.83 8684.742463 53.37738 151.46 8084.53782 53.2899 166.86 8891.95255 53.23158 157.88 8404.20169
 /quip/barrel16 51.87564 215.26 11166.75027 43.85664 172.67 7572.726029 39.59928 174.84 6923.53812 38.81196 174.63 6777.7324 33.95682 169.88 5768.58458
 /quip/xbar_16x16 43.8858 104.47 4584.749526 43.8858 104.47 4584.749526 48.08484 116.74 5613.42422 43.8858 104.47 4584.74953 42.69024 104.47 4459.84937
 /iwls05/iscas/s1494_bench 43.49214 188.52 8199.138233 41.8446 185.9 7778.91114 40.37202 188.42 7606.89601 37.7622 210.7 7956.49554 36.55206 186.65 6822.442
 /iwls05/opencores/pcm_slv_top 41.6988 146.94 6127.221525 41.05728 138.16 5672.473667 43.1568 156.93 6772.59647 43.0839 156.93 6761.15627 41.59674 146.94 6112.22483
 /iwls05/iscas/s1488_bench 40.21164 186 7479.36504 39.10356 186.91 7308.8464 40.37202 214.92 8676.75454 39.70134 196.88 7816.39982 37.96632 182.57 6931.51104
 /iwls05/iscas/s1196_bench 37.73304 194.92 7354.924157 37.22274 196.92 7329.901961 40.32828 186.15 7507.10932 36.56664 184.54 6748.00775 34.71498 179.02 6214.67572
 /iwls05/iscas/s1238_bench 37.09152 199.44 7397.532749 43.78374 180.31 7894.646159 38.43288 197.07 7573.96766 35.15238 207.15 7281.81552 37.31022 186.03 6940.82023
 /quip/barrel16a 33.91308 176.32 5979.554266 32.06142 177.48 5690.260822 34.81704 166.47 5795.99265 32.76126 165.6 5425.26466 30.95334 166.42 5151.25484
 /iwls05/iscas/s838_1_bench 31.69692 174.8 5540.621616 31.94478 175.52 5606.947786 32.49882 210.38 6837.10175 31.65318 179.44 5679.84662 31.52196 199.61 6292.09844
 /quip/oc_fcmp 26.95842 160.7 4332.218094 25.82118 164.82 4255.846888 32.2947 167.58 5411.94583 27.45414 167.9 4609.55011 26.85636 159.87 4293.52627
 /iwls05/iscas/s820_bench 23.37174 172.7 4036.299498 21.41802 169.11 3622.001362 20.35368 172.06 3502.05418 20.67444 171.61 3547.94065 19.77048 172.54 3411.19862
 /benchmarks/random_control/ctrl/top 22.84686 65.92 1506.065011 17.94798 83.14 1492.195057 20.23704 67.26 1361.14331 20.00376 79.26 1585.49802 17.7876 63.96 1137.6949
 /iwls05/iscas/s832_bench 21.0681 169.09 3562.405029 20.9952 170.5 3579.6816 20.71818 169.01 3501.5796 18.86652 176.46 3329.18612 18.8811 166.77 3148.80105
 /benchmarks/random_control/int2float/top 20.42658 99.62 2034.8959 18.99774 103.36 1963.606406 18.5895 100.87 1875.12287 20.89314 106.3 2220.94078 16.94196 97.34 1649.13039
 /iwls05/iscas/s713_bench 19.63926 146.15 2870.277849 19.26018 141.32 2721.848638 17.61264 148.98 2623.93111 15.5277 152.37 2365.95565 16.63578 145.32 2417.51155
 /iwls05/iscas/s526_bench 19.4643 148.61 2892.589623 18.38538 153.03 2813.514701 18.954 155.35 2944.5039 17.87508 151.2 2702.7121 17.37936 148.35 2578.22806
 /iwls05/iscas/s526n_bench 18.5166 154.54 2861.555364 19.27476 157.71 3039.8224 18.06462 143.59 2593.89879 18.06462 148.03 2674.1057 17.30646 143.49 2483.30395
 /iwls05/iscas/s382_bench 18.4437 156.06 2878.323822 18.5895 150.87 2804.597865 16.73784 150.6 2520.7187 17.24814 149.15 2572.56008 15.99426 147.86 2364.91128
 /iwls05/iscas/s641_bench 18.26874 156.02 2850.288815 20.95146 182.46 3822.803392 18.74988 176.81 3315.16628 19.33308 145 2803.2966 16.75242 148.78 2492.42505
 /iwls05/iscas/s444_bench 17.9334 152.13 2728.208142 16.75242 153.2 2566.470744 17.01486 152.94 2602.25269 17.33562 151.9 2633.28068 16.44624 145.76 2397.20394
 /iwls05/iscas/s510_bench 17.23356 166.02 2861.115631 16.9857 160.85 2732.149845 16.73784 163.31 2733.45665 17.43768 166.55 2904.2456 16.44624 165.5 2721.85272
 /iwls05/iscas/s400_bench 16.73784 149.23 2497.787863 17.75844 148.42 2635.707665 17.55432 153.8 2699.85442 19.44972 154.01 2995.45138 16.9857 144.59 2455.96236
 /iwls05/iscas/s420_1_bench 16.63578 146.99 2445.293302 15.27984 184.43 2818.060891 15.46938 179.66 2779.22881 16.37334 157.58 2580.11092 14.8716 148.25 2204.7147
 /OPDB/sparc_ifu_esl_counter 15.57144 189.6 2952.345024 12.58254 203.02 2554.507271 14.75496 208.77 3080.393 13.6323 196.49 2678.61063 14.18634 195.84 2778.25283
 /OPDB/sparc_ifu_esl_htsm 15.42564 115.13 1775.953933 10.68714 116.65 1246.654881 12.8304 114.84 1473.44314 9.9873 120.39 1202.37105 10.62882 77.5 823.73355
 /iwls05/iscas/s344_bench 13.90932 159.39 2217.006515 15.06114 162.78 2451.652369 12.93246 164.58 2128.42427 13.80726 159.59 2203.50062 13.25322 155.4 2059.55039
 /iwls05/iscas/s349_bench 13.79268 158.8 2190.277584 15.80472 155.55 2458.424196 14.4342 148 2136.2616 13.7781 153.82 2119.34734 12.8304 148.11 1900.31054
 /benchmarks/random_control/router/top 11.38698 108.79 1238.789554 10.73088 121.62 1305.089626 9.6957 116.11 1125.76773 9.44784 126.22 1192.50636 7.01298 108.85 763.362873
 /iwls05/iscas/s298_bench 11.09538 146.99 1630.909906 11.70774 153.18 1793.391613 10.55592 144.19 1522.0581 10.99332 152.62 1677.8005 10.7163 140.17 1502.10377
 /iwls05/iscas/s386_bench 10.67256 170.02 1814.548651 12.05766 144.06 1737.0265 10.46844 171.34 1793.66251 11.43072 164.52 1880.58205 10.04562 139.1 1397.34574
 /OPDB/sparc_ifu_esl_lfsr 10.3518 117.2 1213.23096 11.99934 108.6 1303.128324 11.8827 118.26 1405.2481 11.8827 118.26 1405.2481 11.8827 118.26 1405.2481
 /OPDB/sparc_ifu_esl_stsm 8.51472 91.91 782.5879152 12.8304 83.66 1073.391264 10.206 85.83 875.98098 7.75656 86.38 670.011653 7.30458 86.38 630.96962
 /OPDB/sparc_ifu_esl_shiftreg 8.04816 73.36 590.4130176 8.04816 73.36 590.4130176 8.04816 73.36 590.413018 8.04816 73.36 590.413018 8.04816 73.36 590.413018
 /iwls05/iscas/s208_1_bench 7.8732 158.08 1244.595456 7.63992 162.01 1237.743439 7.75656 164.14 1273.16176 8.06274 155.69 1255.28799 6.95466 133.02 925.108873
 /quip/ts_mike_fsm 6.4881 126.27 819.252387 7.12962 132.49 944.6033538 7.4358 125.3 931.70574 7.4358 125.3 931.70574 7.04214 116.21 818.367089
 /OPDB/sparc_ifu_esl_rtsm 4.6656 67.2 313.52832 5.84658 73.44 429.3728352 5.65704 65.92 372.912077 5.65704 65.92 372.912077 5.65704 65.92 372.912077
 /iwls05/iscas/s27_bench 2.09952 100.2 210.371904 2.09952 100.2 210.371904 2.09952 100.2 210.371904 2.09952 100.2 210.371904 2.09952 100.2 210.371904
 /OPDB/sparc_mul_top_nospu_wrap 1.19556 71.08 84.9804048 1.19556 71.08 84.9804048 1.19556 71.08 84.9804048 1.19556 71.08 84.9804048 1.19556 71.08 84.9804048

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Verilog 79.0%
  • SystemVerilog 20.8%
  • Other 0.2%