An Efficient Multi-Output LUT Mapping Technique for Field-Programmable Gate Arrays
Abstract
:1. Background
- We propose an efficient multi-output LUT generation method, which includes a side-fanout insertion algorithm and a runtime multi-output LUT expansion algorithm.
- We propose a bottom-up layer-based cut merging and reduction method, which can efficiently utilize the features of multi-output cuts without worsening the delay.
- We develop a comprehensive FPGA design framework with the proposed mapping algorithm to demonstrate the potential advantages in terms of area, delay, and energy at the system level.
2. Proposed Methods
2.1. Single-Output Cut Enumeration
2.2. Cut Interconnection-Based Multi-Output LUT Generation
2.2.1. Side-Fanout Insertion Algorithm
Algorithm 1 Side-fanout Insertion Algorithm | ||||
Require: Layer leaves from POs to PIs | ||||
Ensure: Insert side-fanout and generation of the next layer’s leaves | ||||
1: | function SideFanoutInsertion(layer_leaves) | |||
2: | Step 1: Enumerate possible side-fanouts | |||
3: | for each node in leaves do | |||
4: | cut_fanout_list = FindSideFanouts(current_node_cut) | |||
5: | end for | |||
6: | Step 2: Leaves coverage and cuts reduction | |||
7: | while exist layer_leaves not visited do | |||
8: | best_node: cut with most coverage with optimized side-fanout | |||
9: | for each fanout_node in best_node cut do | |||
10: | mark fanout_node as visited | |||
11: | end for | |||
12: | end while | |||
13: | Step 3: Generate the next layer’s leaves | |||
14: | Initialize layer_leaves_next as empty | |||
15: | for each selected node in leaves do | |||
16: | Add current_cut leaves to layer_leaves_next | |||
17: | end for | |||
18: | Step 4: Recursive loop | |||
19: | if layer_leaves_next is not empty then | |||
20: | SideFanoutInsertion(layer_leaves_next) | |||
21: | end if | |||
22: | end function |
2.2.2. Runtime Multi-Output LUT Expansion Algorithm
Algorithm 2 Recursive Cut Expansion Algorithm | ||||||
Require: Logic network represented as a set of nodes and cuts | ||||||
Ensure: Recursive expansion of cuts satisfy fanin/fanout/level constraints | ||||||
1: | Declare Constraints: fanin/fanout/level/max enumeration number | |||||
2: | function ExpandCut(current_node, level, current_cut) | |||||
3: | if current_node is not visited then | |||||
4: | Mark current_node as visited | |||||
5: | if satisfy Constraints then | |||||
6: | if NotRepeated(current_cut, cut_list) then | |||||
7: | Add current_cut to cut_list | |||||
8: | end if | |||||
9: | if curr_node.Level <= root_level then | |||||
10: | for each fanout node do | |||||
11: | current_cut add fanout_node | |||||
12: | ExpandCut(fanout_node, new_level, current_cut) | |||||
13: | end for | |||||
14: | for each fanin node do | |||||
15: | current_cut add fanin_node | |||||
16: | ExpandCut(fanin_node, new_level, current_cut) | |||||
17: | end for | |||||
18: | else | |||||
19: | for each fanin node do | |||||
20: | current_cut add fanin_node | |||||
21: | ExpandCut(fanin_node, new_level, current_cut) | |||||
22: | end for | |||||
23: | end if | |||||
24: | else | |||||
25: | Remove current_node from current_cut | |||||
26: | end if | |||||
27: | Add current_cut to cut_list | |||||
28: | end if | |||||
29: | end function |
Algorithm 3 Runtime Multi-output Cut Expanding Algorithm | ||||
Require: Layer leaves (initial nodes for expansion) | ||||
Ensure: Recursive expansion of cuts and generation of the next layer’s leaves | ||||
1: | function RunTimeExpand(layer_leaves) | |||
2: | Step 1: Recursive expansion based on ExpandCut | |||
3: | for each node in leaves do | |||
4: | Initialize current_cut = ABC_Best(current_node) | |||
5: | cut_list = ExpandCut(current_node, level, current_cut) | |||
6: | BestMultiCut = BestMultiCutSel(cut_list, leaves) | |||
7: | Assign BestMultiCut to current_node | |||
8: | end for | |||
9: | Step 2: Leaves coverage and cuts reduction | |||
10: | while exist leaves not visited do | |||
11: | best_node = CutWithMaxCoverage(leaves_unvisited) | |||
12: | for each fanout_node in best_node cut do | |||
13: | mark fanout_node as visited | |||
14: | end for | |||
15: | end while | |||
16: | Step 3: Generate the next layer’s leaves | |||
17: | Initialize layer_leaves_next as empty | |||
18: | for each selected node in leaves do | |||
19: | Add current_cut leaves to layer_leaves_next | |||
20: | end for | |||
21: | Step 4: Recursive loop | |||
22: | if layer_leaves_next is not empty then | |||
23: | RunTimeExpand(layer_leaves_next) | |||
24: | end if | |||
25: | end function | |||
26: | ||||
27: | function BestMultiCutSel(cut_list, leaves) | |||
28: | Goal: Ensure the selected multi-output cut has the smallest area | |||
29: | for each cut in cut_list do | |||
30: | cut_area = AreaCountRec(current_node) | |||
31: | end for | |||
32: | Cut_best = cut_with_minArea | |||
33: | end function |
3. Experimental Configurations and Settings
4. Simulation Results
4.1. Comparison Between Different FPGA Architectures
4.2. Comparison with State-of-the-Art Dual-Output Mapping Technique
4.3. Runtime Analysis
4.4. FPGA System-Level Simulation Results
5. Discussion
6. Conclusions
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
Abbreviations
FPGA | Field-Programmable Gate Array |
CPU | Central Processing Unit |
ASIC | Application-Specific Integrated Circuit |
LUT | Look-Up Table |
BLE | Basic Logic Element |
CLB | Configurable Logic Blocks |
FF | Flip-Flop |
DAG | Directed Acyclic Graph |
AIG | And Inverter Graph |
PIs | Primary Inputs |
POs | Primary Outputs |
Appendix A
References
- Betz, V.; Rose, J.; Marquardt, A. Architecture and CAD for Deep-Submicron FPGAs; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2012; Volume 497. [Google Scholar]
- Ahmed, E.; Rose, J. The effect of LUT and cluster size on deep-submicron FPGA performance and density. In Proceedings of the 2000 ACM/SIGDA Eighth International Symposium on Field Programmable Gate Arrays, Monterey, CA, USA, 10–11 February 2000; pp. 3–12. [Google Scholar]
- AMD. Vivado UltraScale Libraries User Guide (UG974)—LUT6; AMD: Santa Clara, CA, USA, 2024. [Google Scholar]
- Cong, J.; Liu, B.; Neuendorffer, S.; Noguera, J.; Vissers, K.; Zhang, Z. High-level synthesis for FPGAs: From prototyping to deployment. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 2011, 30, 473–491. [Google Scholar] [CrossRef]
- Cong, J.; Ding, Y. FlowMap: An optimal technology mapping algorithm for delay optimization in lookup-table based FPGA designs. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 1994, 13, 1–12. [Google Scholar] [CrossRef]
- Mishchenko, A.; Chatterjee, S.; Brayton, R. Improvements to technology mapping for LUT-based FPGAs. In Proceedings of the 2006 ACM/SIGDA 14th International Symposium on Field Programmable Gate Arrays, Monterey, CA, USA, 22–24 February 2006; pp. 41–49. [Google Scholar]
- Intel Stratix FPGA. Available online: https://www.intel.com/content/www/us/en/products/details/fpga/stratix.html (accessed on 21 March 2025).
- Murray, K.E.; Petelin, O.; Zhong, S.; Wang, J.M.; Eldafrawy, M.; Legault, J.-P.; Sha, E.; Graham, A.G.; Wu, J.; Walker, M.J. VTR 8: High-performance CAD and customizable FPGA architecture modelling. ACM Trans. Reconfigurable Technol. Syst. 2020, 13, 9. [Google Scholar] [CrossRef]
- Shang, L.; Lu, S.; Zhang, Y.; Jung, S.; Pan, C. Directed Acyclic Graph-Based Datapath Synthesis Using Graph Isomorphism and Gate Reconfiguration. Chips 2024, 3, 182–195. [Google Scholar] [CrossRef]
- Shang, L.; Lu, S.; Jung, S.; Pan, C. Novel Fence Generation Methods for Accelerating Reconfigurable Exact Synthesis. In Proceedings of the 2023 IEEE 66th International Midwest Symposium on Circuits and Systems (MWSCAS), Tempe, AZ, USA, 6–9 August 2023; pp. 506–510. [Google Scholar]
- Lu, S.; Shang, L.; Jung, S.; Zhang, Y.; Pan, C. A Novel Delay-Aware Packing Algorithm for FPGA Architecture Using RFET. In Proceedings of the 2024 IEEE 67th International Midwest Symposium on Circuits and Systems (MWSCAS), Springfield, MA, USA, 11–14 August 2024; pp. 362–366. [Google Scholar]
- Gaillardon, P.-E.; Tang, X.; Kim, G.; De Micheli, G. A novel FPGA architecture based on ultrafine grain reconfigurable logic cells. IEEE Trans. Very Large Scale Integr. Syst. 2014, 23, 2187–2197. [Google Scholar] [CrossRef]
- Brayton, R.; Mishchenko, A. ABC: An academic industrial-strength verification tool. In Proceedings of the Computer Aided Verification: 22nd International Conference, CAV 2010, Edinburgh, UK, 15–19 July 2010; pp. 24–40. [Google Scholar]
- Jang, S.; Chan, B.; Chung, K.; Mishchenko, A. Wiremap: FPGA technology mapping for improved routability and enhanced LUT merging. ACM Trans. Reconfigurable Technol. Syst. 2009, 2, 14. [Google Scholar] [CrossRef]
- Wang, F.; Zhu, L.; Zhang, J.; Li, L.; Zhang, Y.; Luo, G. Dual-output LUT merging during FPGA technology mapping. In Proceedings of the 39th International Conference on Computer-Aided Design, San Diego, CA, USA, 2–5 November 2020; pp. 1–9. [Google Scholar]
- Calvino, A.T.; De Micheli, G. Technology mapping using multi-output library cells. In Proceedings of the 2023 IEEE/ACM International Conference on Computer Aided Design (ICCAD), San Francisco, CA, USA, 28 October–2 November 2023; pp. 1–9. [Google Scholar]
- Shi, J.; Wang, X.; Meng, C.; Qian, W. QUADOL: A Quality-Driven Approximate Logic Synthesis Method Exploiting Dual-Output LUTs for Modern FPGAs. arXiv 2024, arXiv:2411.18330. [Google Scholar]
- Jiang, Z.; Lin, C.Y.; Yang, L.; Wang, F.; Yang, H. Exploring architecture parameters for dual-output LUT based FPGAs. In Proceedings of the 2014 24th International Conference on Field Programmable Logic and Applications (FPL), Munich, Germany, 2–4 September 2014; pp. 1–6. [Google Scholar]
- Lee, J.-Y.; Hu, Y.; Majumdar, R.; He, L.; Li, M. Fault-tolerant resynthesis with dual-output LUTs. In Proceedings of the 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC), Taipei, Taiwan, 18–21 January 2010; pp. 325–330. [Google Scholar]
- Hu, Y.; Shih, V.; Majumdar, R.; He, L. FPGA area reduction by multi-output function based sequential resynthesis. In Proceedings of the 45th Annual Design Automation Conference, Anaheim, CA, USA, 8–13 June 2008; pp. 24–29. [Google Scholar]
- Beamer, S.; Asanović, K.; Patterson, D. Direction-optimizing breadth-first search. Sci. Program. 2013, 21, 137–148. [Google Scholar] [CrossRef]
- ABC: A System for Sequential Logic Synthesis and Verification. Available online: https://github.com/berkeley-abc/abc (accessed on 23 April 2025).
- AMD. Versal Adaptive SoC Configurable Logic Block Architecture Manual (AM005); AMD: Santa Clara, CA, USA, 2024. [Google Scholar]
- Amarú, L.; Gaillardon, P.-E.; De Micheli, G. The EPFL combinational benchmark suite. In Proceedings of the 24th International Workshop on Logic & Synthesis (IWLS), Mountain View, CA, USA, 12–13 June 2015. [Google Scholar]
- Lamoureux, J.; Wilton, S.J. Activity estimation for field-programmable gate arrays. In Proceedings of the 2006 International Conference on Field Programmable Logic and Applications, Madrid, Spain, 28–30 August 2006; pp. 1–8. [Google Scholar]
- Pan, C.; Naeemi, A. A proposal for a novel hybrid interconnect technology for the end of roadmap. IEEE Electron Device Lett. 2013, 35, 250–252. [Google Scholar] [CrossRef]
- Pan, C.; Naeemi, A. A paradigm shift in local interconnect technology design in the era of nanoscale multigate and gate-all-around devices. IEEE Electron Device Lett. 2015, 36, 274–276. [Google Scholar] [CrossRef]
- Elgammal, M.A.; Murray, K.E.; Betz, V. RLPlace: Using reinforcement learning and smart perturbations to optimize FPGA placement. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 2021, 41, 2532–2545. [Google Scholar] [CrossRef]
- Ababei, C.; Feng, Y.; Goplen, B.; Mogal, H.; Zhang, T.; Bazargan, K.; Sapatnekar, S. Placement and routing in 3D integrated circuits. IEEE Des. Test Comput. 2005, 22, 520–531. [Google Scholar] [CrossRef]
- Li, W.; Dhar, S.; Pan, D.Z. UTPlaceF: A routability-driven FPGA placer with physical and congestion aware packing. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 2017, 37, 869–882. [Google Scholar] [CrossRef]
FPGA | UltraScale+ | Versal |
---|---|---|
6 | 6 | |
5 | 6 | |
5 | 6 | |
5 | 6 |
Netlist | Netlist Information | Original ABC | Resyn ABC | Original/Resyn Ratio | |||
---|---|---|---|---|---|---|---|
Input | Output | AIG Node | Depth | LUT Area | LUT Area | ||
adder | 256 | 129 | 1020 | 255 | 254 | 257 | 101.18% |
arbiter | 256 | 129 | 11,839 | 87 | 2722 | 2722 | 100.00% |
bar | 135 | 128 | 3336 | 12 | 512 | 512 | 100.00% |
cavlc | 8 | 256 | 304 | 3 | 116 | 118 | 101.72% |
ctrl | 7 | 26 | 174 | 10 | 29 | 29 | 100.00% |
dec | 8 | 256 | 304 | 3 | 287 | 287 | 100.00% |
div | 128 | 128 | 44,762 | 4470 | 22,113 | 9931 | 44.91% |
hyp | 256 | 128 | 214,335 | 24,801 | 44,508 | 44,338 | 99.62% |
i2c | 147 | 142 | 1342 | 20 | 353 | 316 | 89.52% |
int2float | 11 | 7 | 260 | 16 | 51 | 47 | 92.16% |
log2 | 32 | 32 | 32,060 | 444 | 8092 | 8077 | 99.81% |
max | 512 | 130 | 2865 | 287 | 769 | 793 | 103.12% |
mem_ctrl | 1204 | 1231 | 46,836 | 114 | 12,084 | 11,747 | 97.21% |
multiplier | 128 | 128 | 27,062 | 274 | 5927 | 5922 | 99.92% |
priority | 128 | 8 | 978 | 250 | 210 | 178 | 84.76% |
router | 60 | 30 | 257 | 54 | 89 | 76 | 85.39% |
sin | 24 | 25 | 5416 | 225 | 1464 | 1477 | 100.89% |
sqrt | 128 | 64 | 24,618 | 5058 | 5711 | 4645 | 81.33% |
square | 64 | 128 | 18,484 | 250 | 3998 | 3949 | 98.77% |
voter | 1001 | 1 | 13,758 | 70 | 2695 | 1736 | 64.42% |
Parameter Type | Parameters | Values |
---|---|---|
FPGA Device/System-Level Variables | Vdd (V) | 0.7 |
# of LUT Inputs | ||
# of BLEs per CLB | ||
FPGA System-Level Parameters | # of CLB Inputs | |
# of Channels (W) | ||
Fcin | 0.15 W | |
Fcout | 0.25 W | |
Switch Box Style | Wilton Style | |
3 | ||
Wire Segments Length | 4 CLB Width |
Architecture | Netlsit | Single Output LUT Area | Proposed Results with Resyn Benchmarks | Reference Results with Resyn Benchmarks | ||
---|---|---|---|---|---|---|
Dual Output LUT Area | Dual Output LUT Area Saving | Dual Output LUT Area | Dual Output LUT Area Saving | |||
Versal | adder | 257 | 151 | 41.25% | 140 | 45.53% |
arbiter | 2722 | 2467 | 9.37% | 2457 | 9.74% | |
bar | 512 | 448 | 12.50% | 448 | 12.50% | |
cavlc | 118 | 80 | 32.20% | 80 | 32.20% | |
ctrl | 29 | 16 | 44.83% | 15 | 48.28% | |
dec | 287 | 144 | 49.83% | 137 | 52.26% | |
i2c | 316 | 221 | 30.06% | 268 | 15.19% | |
int2float | 47 | 35 | 25.53% | 35 | 25.53% | |
max | 793 | 531 | 33.04% | 690 | 12.99% | |
priority | 178 | 107 | 39.89% | 150 | 15.73% | |
sin | 1477 | 941 | 36.29% | 1109 | 24.92% | |
square | 3949 | 1998 | 49.40% | 2127 | 46.14% | |
voter | 1736 | 941 | 45.79% | 1264 | 27.19% | |
Average | 34.61% | 28.32% | ||||
Ultrascale+ | adder | 257 | 179 | 30.35% | 189 | 26.46% |
arbiter | 2722 | 2468 | 9.33% | 2469 | 9.29% | |
bar | 512 | 448 | 12.50% | 448 | 12.50% | |
cavlc | 118 | 105 | 11.02% | 108 | 8.47% | |
ctrl | 29 | 18 | 37.93% | 17 | 41.38% | |
dec | 287 | 144 | 49.83% | 140 | 51.22% | |
i2c | 316 | 242 | 23.42% | 300 | 5.06% | |
int2float | 47 | 41 | 12.77% | 41 | 12.77% | |
max | 793 | 620 | 21.82% | 822 | −3.66% | |
priority | 178 | 159 | 10.67% | 160 | 10.11% | |
sin | 1477 | 1203 | 18.55% | 1426 | 3.45% | |
square | 3949 | 2692 | 31.83% | 3241 | 17.93% | |
voter | 1736 | 1380 | 20.51% | 1520 | 12.44% | |
Average | 22.35% | 15.96% |
Netlsit | Netlists Size | ABC Runtime (s) | Proposed Runtime (s) | Time Overhead (1×) |
---|---|---|---|---|
adder | 1020 | 0.137 | 0.286 | 2.09 |
arbiter | 11,839 | 0.516 | 2.982 | 5.78 |
bar | 3336 | 0.139 | 0.394 | 2.83 |
cavlc | 304 | 0.072 | 0.098 | 1.36 |
ctrl | 174 | 0.060 | 0.059 | 0.98 |
dec | 304 | 0.061 | 0.090 | 1.48 |
div | 44,762 | 3.701 | 56.307 | 15.21 |
hyp | 214,335 | 14.196 | 399.647 | 28.15 |
i2c | 1342 | 0.089 | 0.214 | 2.40 |
int2float | 260 | 0.055 | 0.065 | 1.18 |
log2 | 32,060 | 2.108 | 16.255 | 7.71 |
max | 2865 | 0.174 | 0.535 | 3.07 |
mem_ctrl | 46,836 | 2.436 | 59.881 | 24.58 |
multiplier | 27,062 | 1.644 | 9.978 | 6.07 |
priority | 978 | 0.086 | 0.138 | 1.60 |
router | 257 | 0.059 | 0.074 | 1.25 |
sin | 5416 | 0.362 | 1.330 | 3.67 |
sqrt | 24,618 | 1.562 | 9.706 | 6.21 |
square | 18,484 | 1.137 | 6.341 | 5.58 |
voter | 13,758 | 0.718 | 3.893 | 5.42 |
ABC Single-Output LUT Baseline | ||||
Netlist | Area (μm2) | Delay (ns) | Wire Length (μm) | Switch Energy (pJ) |
adder | 1.03 × 106 | 6.98 | 6.85 × 104 | 1.21 × 10−2 |
arbiter | 1.25 × 107 | 3.96 | 8.27 × 105 | 1.77 × 10−2 |
bar | 1.96 × 106 | 1.55 | 1.25 × 105 | 1.05 × 10−2 |
cavlc | 4.82 × 105 | 1.06 | 8.83 × 103 | 1.63 × 10−3 |
ctrl | 1.29 × 105 | 0.52 | 1.40 × 103 | 7.79 × 10−4 |
dec | 1.02 × 106 | 1.13 | 3.71 × 104 | 5.43 × 10−3 |
i2c | 1.17 × 106 | 1.40 | 7.62 × 104 | 9.57 × 10−3 |
int2float | 1.68 × 105 | 0.88 | 2.83 × 103 | 1.30 × 10−3 |
max | 3.18 × 106 | 6.13 | 2.46 × 105 | 2.72 × 10−2 |
priority | 7.71 × 105 | 2.02 | 3.12 × 104 | 4.33 × 10−3 |
sin | 6.47 × 106 | 8.52 | 4.14 × 105 | 1.87 × 10−2 |
square | 1.56 × 107 | 7.55 | 7.72 × 105 | 5.78 × 10−2 |
voter | 7.17 × 106 | 4.08 | 5.16 × 105 | 5.21 × 10−2 |
Versal Series Architecture | ||||
Netlist | Area (μm2) | Delay (ns) | Wire Length (μm) | Switch Energy (pJ) |
adder | 8.63 × 105 | 1.58 | 6.11 × 104 | 1.13 × 10−2 |
arbiter | 1.57 × 107 | 4.19 | 9.06 × 105 | 2.21 × 10−2 |
bar | 1.99 × 106 | 1.61 | 1.29 × 105 | 9.52 × 10−3 |
cavlc | 3.11 × 105 | 0.97 | 4.79 × 103 | 1.34 × 10−3 |
ctrl | 1.11 × 105 | 0.52 | 1.07 × 103 | 8.13 × 10−4 |
dec | 6.36 × 105 | 1.25 | 5.15 × 104 | 2.43 × 10−3 |
i2c | 1.53 × 106 | 1.36 | 7.95 × 104 | 9.94 × 10−3 |
int2float | 1.49 × 105 | 0.75 | 2.01 × 103 | 1.21 × 10−3 |
max | 2.72 × 106 | 7.50 | 2.81 × 105 | 3.00 × 10−2 |
priority | 5.70 × 105 | 3.04 | 2.74 × 104 | 4.63 × 10−3 |
sin | 5.14 × 106 | 2.65 | 3.20 × 105 | 1.42 × 10−2 |
square | 1.12 × 107 | 5.42 | 6.18 × 105 | 4.02 × 10−2 |
voter | 4.65 × 106 | 2.34 | 5.13 × 105 | 4.73 × 10−2 |
Average Savings | 13.92% | 11.51% | 7.31% | 8.41% |
UltraScale+ Series Architecture | ||||
Netlist | Area (μm2) | Delay (ns) | Wire Length (μm) | Switch Energy (pJ) |
adder | 9.92 × 105 | 1.75 | 6.95 × 104 | 1.23 × 10−2 |
arbiter | 1.41 × 107 | 3.79 | 8.53 × 105 | 1.74 × 10−2 |
bar | 1.99 × 106 | 1.54 | 1.30 × 105 | 1.07 × 10−2 |
cavlc | 4.39 × 105 | 1.02 | 8.43 × 103 | 1.57 × 10−3 |
ctrl | 1.11 × 105 | 0.52 | 1.07 × 103 | 7.51 × 10−4 |
dec | 6.36 × 105 | 1.25 | 5.15 × 104 | 2.43 × 10−3 |
i2c | 1.62 × 106 | 1.25 | 7.53 × 104 | 9.96 × 10−3 |
int2float | 1.94 × 105 | 0.84 | 3.20 × 103 | 1.10 × 10−3 |
max | 2.94 × 106 | 5.59 | 2.82 × 105 | 2.93 × 10−2 |
priority | 7.33 × 105 | 3.20 | 2.83 × 104 | 4.61 × 10−3 |
sin | 5.89 × 106 | 5.41 | 3.58 × 105 | 1.68 × 10−2 |
square | 1.40 × 107 | 4.54 | 6.57 × 105 | 4.82 × 10−2 |
voter | 6.69 × 106 | 4.95 | 5.53 × 105 | 5.45 × 10−2 |
Average Savings | 2.66% | 7.28% | −1.17% | 6.13% |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Lu, S.; Shang, L.; Qu, Q.; Jung, S.; Liang, Q.; Pan, C. An Efficient Multi-Output LUT Mapping Technique for Field-Programmable Gate Arrays. Electronics 2025, 14, 1782. https://doi.org/10.3390/electronics14091782
Lu S, Shang L, Qu Q, Jung S, Liang Q, Pan C. An Efficient Multi-Output LUT Mapping Technique for Field-Programmable Gate Arrays. Electronics. 2025; 14(9):1782. https://doi.org/10.3390/electronics14091782
Chicago/Turabian StyleLu, Sheng, Liuting Shang, Qianhou Qu, Sungyong Jung, Qilian Liang, and Chenyun Pan. 2025. "An Efficient Multi-Output LUT Mapping Technique for Field-Programmable Gate Arrays" Electronics 14, no. 9: 1782. https://doi.org/10.3390/electronics14091782
APA StyleLu, S., Shang, L., Qu, Q., Jung, S., Liang, Q., & Pan, C. (2025). An Efficient Multi-Output LUT Mapping Technique for Field-Programmable Gate Arrays. Electronics, 14(9), 1782. https://doi.org/10.3390/electronics14091782