Skip to content

Commit 15c20d1

Browse files
committed
flopoco
1 parent b0185bd commit 15c20d1

2 files changed

Lines changed: 83 additions & 110 deletions

File tree

paper.tex

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1023,9 +1023,16 @@ \section{Results}
10231023
% \end{table}
10241024

10251025
\section{Related Work}
1026+
FloPoCo~\cite{application_specific_arithmetic} is an open-source datapath generator, written in C++,
1027+
that produces arithmetic circuits in VHDL.
1028+
It builds these circuits on the same bit heap abstraction and compression techniques that we formalize in this paper.
1029+
However, the tool provides no formal correctness guarantees, and its circuits have to be validated by testing.
1030+
10261031
\citet{sca} presents a method based \ac{sca} approach to verify multiplication circuits,
10271032
using backwards rewriting of polynomials at the gate level, employing a dynamic strategy consisting of sub-circuit detection and phase signal adjusting.
1028-
However, their verification tool itself remains to be unverified.
1033+
\citet{trace} extend this line beyond multipliers with TRACE, an \ac{sca} engine that combines
1034+
different substitution orders with polynomial compression techniques, namely phase optimization
1035+
and conflict analysis, and verifies adders and multiply-accumulate units as well.
10291036

10301037
In their work, \citet{mertcan_acl2multipliers} prove correctness of integer multiplication circuits using a rewrite-based method in ACL2.
10311038
Their approach can verify different partial-product generation and compression tree algorithms scaling to $1024\times1024$ bit multipliers in minutes.
@@ -1034,6 +1041,8 @@ \section{Related Work}
10341041
A line of research focuses on proving \ac{hls} tools correctt.
10351042
\citet{graphiti} introduces Graphiti, a graph-rewriting framework in Lean 4 to formally reason about optimizations on dataflow circuits.
10361043
Integrated into an existing HLS tool, Graphiti provides a verified rewriting engine that ensures the composition of verified rewrites refines the original behaviour.
1044+
1045+
10371046
\section{Conclusion}
10381047

10391048
%% Acknowledgments. IEEEtran has no \begin{acks} or \grantsponsor/\grantnum;

references.bib

Lines changed: 73 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,135 +1,99 @@
1+
@IEEEtranBSTCTL{bstctl,
2+
CTLuse_forced_etal = "yes",
3+
CTLmax_names_forced_etal = "3",
4+
CTLnames_show_etal = "1",
5+
CTLuse_url = "no",
6+
CTLdash_repeated_names = "no"
7+
}
8+
19
@inproceedings{mertcan_acl2multipliers,
2-
author = {Temel, Mertcan and Slobodova, Anna and Hunt, Warren A.},
3-
title = {Automated and Scalable Verification of Integer Multipliers},
4-
year = {2020},
5-
isbn = {978-3-030-53287-1},
6-
publisher = {Springer-Verlag},
7-
address = {Berlin, Heidelberg},
8-
url = {https://doi.org/10.1007/978-3-030-53288-8_23},
9-
doi = {10.1007/978-3-030-53288-8_23},
10-
abstract = {The automatic formal verification of multiplier designs has been pursued since the introduction of BDDs. We present a new rewriter-based method for efficient and automatic verification of signed and unsigned integer multiplier designs. We have proved the soundness of this method using the ACL2 theorem prover, and we can verify integer multiplier designs with various architectures automatically, including Wallace, Dadda, and 4-to-2 compressor trees, designed with Booth encoding and various types of final stage adders. Our experiments have shown that our approach scales well in terms of time and memory. With our method, we can confirm the correctness of -bit multiplier designs within minutes.},
11-
booktitle = {Computer Aided Verification: 32nd International Conference, CAV 2020, Los Angeles, CA, USA, July 21–24, 2020, Proceedings, Part I},
12-
pages = {485–507},
13-
numpages = {23},
14-
keywords = {ACL2, Formal methods, Hardware verification, Multipliers},
15-
location = {Los Angeles, CA, USA}
10+
author = {Temel, Mertcan and Slobodova, Anna and Hunt, Warren A.},
11+
title = {Automated and Scalable Verification of Integer Multipliers},
12+
booktitle = {Proc. Int. Conf. Computer Aided Verification (CAV)},
13+
pages = {485--507},
14+
year = {2020}
1615
}
1716

18-
@ARTICLE{wallace_tree,
19-
author={Wallace, C. S.},
20-
journal={IEEE Transactions on Electronic Computers},
21-
title={A Suggestion for a Fast Multiplier},
22-
year={1964},
23-
volume={EC-13},
24-
number={1},
25-
pages={14-17},
26-
keywords={Adders;Acceleration;Arithmetic;Hardware;Investments;Computer peripherals;Circuits;Power generation economics;Contracts;Physics computing},
27-
doi={10.1109/PGEC.1964.263830}}
17+
@article{wallace_tree,
18+
author = {Wallace, C. S.},
19+
title = {A Suggestion for a Fast Multiplier},
20+
journal = {IEEE Trans. Electron. Comput.},
21+
volume = {EC-13},
22+
number = {1},
23+
pages = {14--17},
24+
year = {1964}
25+
}
2826

2927
@article{dadda_tree,
30-
author={Dadda, Luigi},
31-
journal={Alta Frequenza},
32-
title={Some Schemes for Parallel Multipliers},
33-
year={1965},
34-
volume={34},
35-
number={5},
36-
pages={349-356}}
28+
author = {Dadda, Luigi},
29+
title = {Some Schemes for Parallel Multipliers},
30+
journal = {Alta Frequenza},
31+
volume = {34},
32+
number = {5},
33+
pages = {349--356},
34+
year = {1965}
35+
}
3736

3837
@article{sca,
39-
author = {Konrad, Alexander and Scholl, Christoph},
40-
title = {Symbolic computer algebra for multipliers revisited - demonstrating the significance of order and phase optimization},
41-
year = {2026},
42-
issue_date = {Mar 2026},
43-
publisher = {Kluwer Academic Publishers},
44-
address = {USA},
45-
volume = {68},
46-
number = {2},
47-
issn = {0925-9856},
48-
url = {https://doi.org/10.1007/s10703-026-00494-9},
49-
doi = {10.1007/s10703-026-00494-9},
50-
abstract = {Using Symbolic Computer Algebra (SCA) enabled a huge progress in formal verification of arithmetic circuits in recent years. Several different approaches have been proposed showing great success especially for the verification of multipliers. Some of them are based on precomputing and simplifying polynomials for specific circuit structures like converging cones while others take advantage of known or detected hierarchy information to replace and simplify particular subcircuits of the design. In this paper we propose a new method that avoids the use of such methods and applies only two dynamic approaches: (1) choosing a good substitution order for the backward rewriting process and (2) adjusting the phases of signals occurring in the intermediate polynomials during the verification process. Both methods are simply based on a greedy local search taking the sizes of intermediate polynomials into account. Our experimental results show that this method is very competitive with already existing tools and it improves their robustness, e.g. against optimizations of the verified circuits using logic synthesis.},
51-
journal = {Form. Methods Syst. Des.},
52-
month = mar,
53-
numpages = {33},
54-
keywords = {Fully automatic formal verification, Symbolic computer algebra, Multiplier verification, Phase optimization}
38+
author = {Konrad, Alexander and Scholl, Christoph},
39+
title = {Symbolic Computer Algebra for Multipliers Revisited: Demonstrating the Significance of Order and Phase Optimization},
40+
journal = {Form. Methods Syst. Des.},
41+
volume = {68},
42+
number = {2},
43+
year = {2026}
5544
}
5645

5746
@inproceedings{graphiti,
58-
author = {Herklotz, Yann and Elakhras, Ayatallah and Camaioni, Martina and Ienne, Paolo and Josipovi\'{c}, Lana and Bourgeat, Thomas},
59-
title = {Graphiti: Formally Verified Out-of-Order Execution in Dataflow Circuits},
60-
year = {2026},
61-
isbn = {9798400723599},
62-
publisher = {Association for Computing Machinery},
63-
address = {New York, NY, USA},
64-
url = {https://doi.org/10.1145/3779212.3790166},
65-
doi = {10.1145/3779212.3790166},
66-
abstract = {High-level synthesis (HLS) tools automatically synthesise hardware from imperative programs and have seen a significant rise in adoption in both industry and academia. To deliver high-quality hardware designs for increasingly general purpose programs, HLS compilers have to become more aggressive. For the most irregular programs, HLS tools generating dataflow circuits show promising performance by adapting and specializing key ideas from processor architectures, like out-of-order execution and speculation. However, the complexity of these transformations makes them difficult to reason about, increasing the risk of subtle bugs and potentially delaying their adoption in a conservative industry where bugs can be extremely costly.This paper introduces Graphiti, a framework embedded in the Lean 4 proof assistant designed to formally reason about and manipulate dataflow circuits at the core of these HLS tools. We develop a metatheory of graph refinement that allows us to verify a general-purpose dataflow circuit rewriting algorithm. Using this framework, we formally verify a loop rewrite that introduces out-of-order execution into a dataflow circuit. Our evaluation shows that the resulting verified optimization pipeline achieves a 2.1× speedup over the in-order HLS flow and a 5.8× speedup over a verified HLS tool generating a static state machine. We also show that it achieves the same performance compared to an existing unverified approach which introduces out-of-order execution.Graphiti is a step toward a fully-verified HLS flow targeting dataflow circuits. In the interim, it can serve as an extensible, verified, optimizing engine that can be integrated into existing dataflow HLS compilers.},
67-
booktitle = {Proceedings of the 31st ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2},
68-
pages = {821–837},
69-
numpages = {17},
70-
keywords = {high-level synthesis, interactive theorem proving, lean 4},
71-
location = {USA},
72-
series = {ASPLOS '26}
47+
author = {Herklotz, Yann and Elakhras, Ayatallah and Camaioni, Martina and Ienne, Paolo and Josipovi\'{c}, Lana and Bourgeat, Thomas},
48+
title = {Graphiti: Formally Verified Out-of-Order Execution in Dataflow Circuits},
49+
booktitle = {Proc. ACM Int. Conf. Architectural Support Program. Lang. Oper. Syst. (ASPLOS)},
50+
pages = {821--837},
51+
year = {2026}
7352
}
7453

7554
@book{application_specific_arithmetic,
7655
author = {de Dinechin, Florent and Kumm, Martin},
7756
title = {Application-Specific Arithmetic},
78-
publisher = {Springer Int. Publ.},
79-
address = {Cham, Switzerland},
57+
publisher = {Springer},
8058
year = {2024}
8159
}
8260

83-
@INPROCEEDINGS{arithmetic_core_generation_bitheaps,
84-
author={Brunie, Nicolas and de Dinechin, Florent and Istoan, Matei and Sergent, Guillaume and Illyes, Kinga and Popa, Bogdan},
85-
booktitle={2013 23rd International Conference on Field programmable Logic and Applications},
86-
title={Arithmetic core generation using bit heaps},
87-
year={2013},
88-
volume={},
89-
number={},
90-
pages={1-8},
91-
keywords={Digital signal processing;Adders;Field programmable gate arrays;Table lookup;Optimization;Generators},
92-
doi={10.1109/FPL.2013.6645544}}
61+
@inproceedings{arithmetic_core_generation_bitheaps,
62+
author = {Brunie, Nicolas and de Dinechin, Florent and Istoan, Matei and Sergent, Guillaume and Illyes, Kinga and Popa, Bogdan},
63+
title = {Arithmetic Core Generation Using Bit Heaps},
64+
booktitle = {Proc. Int. Conf. Field Program. Logic Appl. (FPL)},
65+
pages = {1--8},
66+
year = {2013}
67+
}
9368

9469
@article{asap7,
95-
title = {ASAP7: A 7-nm finFET predictive process design kit},
96-
journal = {Microelectronics Journal},
97-
volume = {53},
98-
pages = {105-115},
99-
year = {2016},
100-
issn = {1879-2391},
101-
doi = {https://doi.org/10.1016/j.mejo.2016.04.006},
102-
url = {https://www.sciencedirect.com/science/article/pii/S002626921630026X},
103-
author = {Lawrence T. Clark and Vinay Vashishtha and Lucian Shifren and Aditya Gujja and Saurabh Sinha and Brian Cline and Chandarasekaran Ramamurthy and Greg Yeric},
104-
keywords = {Predictive process design kit, 7-nm technology, Process scaling, Extreme ultraviolet lithography, Self-aligned multiple patterning, Design rules},
105-
abstract = {We describe a 7-nm predictive process design kit (PDK) called the ASAP7 PDK, developed in collaboration with ARM Ltd. for academic use. The PDK is realistic, based on current assumptions for the 7-nm technology node, but is not tied to any specific foundry. The initial version assumes EUV lithography for key layers, a decision based on its present near cost-effectiveness and resulting simpler layout rules. Non-EUV layers assume appropriate multiple patterning schemes, i.e., self-aligned quadruple patterning (SAQP), self-aligned double patterning (SADP) or litho-etch litho-etch (LELE), based on 193-nm optical immersion lithography. The specific design rule derivation is explained for key layers at the front end of line (FEOL), middle of line (MOL), and back end of line (BEOL) of the predictive process modeled. The MOL and BEOL DRC rules rely on estimation of time dependent dielectric breakdown requirements using layer alignments determined with projected machine to machine overlay assumptions, with significant guard-bands where possible. A high density, low-power standard cell architecture, developed using design/technology co-optimization (DTCO), as well as example SRAM cells are shown. The PDK transistor electrical assumptions are also explained, as are the FEOL design rules, and the models include basic design corners. The transistor models support four threshold voltage (Vth) levels for both NMOS and PMOS transistors. Cadence Virtuoso technology files and associated schematic and layout editing, as well as netlisting are supported. DRC, LVS, and full parasitic extraction is enabled through Mentor Calibre decks.}
70+
author = {Clark, Lawrence T. and Vashishtha, Vinay and Shifren, Lucian and Gujja, Aditya and Sinha, Saurabh and Cline, Brian and Ramamurthy, Chandarasekaran and Yeric, Greg},
71+
title = {{ASAP7}: A 7-nm {FinFET} Predictive Process Design Kit},
72+
journal = {Microelectron. J.},
73+
volume = {53},
74+
pages = {105--115},
75+
year = {2016}
10676
}
77+
10778
@inproceedings{abc,
108-
author = {Brayton, Robert and Mishchenko, Alan},
109-
title = {{ABC}: An Academic Industrial-Strength Verification Tool},
110-
booktitle = {Computer Aided Verification (CAV)},
111-
pages = {24--40},
112-
year = {2010},
113-
publisher = {Springer},
114-
doi = {10.1007/978-3-642-14295-6_5}
79+
author = {Brayton, Robert and Mishchenko, Alan},
80+
title = {{ABC}: An Academic Industrial-Strength Verification Tool},
81+
booktitle = {Proc. Int. Conf. Computer Aided Verification (CAV)},
82+
pages = {24--40},
83+
year = {2010}
11584
}
11685

11786
@inproceedings{bitwuzla,
118-
author = {Aina Niemetz and
119-
Mathias Preiner},
120-
editor = {Constantin Enea and
121-
Akash Lal},
122-
title = {Bitwuzla},
123-
booktitle = {Computer Aided Verification - 35th International Conference, {CAV}
124-
2023, Paris, France, July 17-22, 2023, Proceedings, Part {II}},
125-
series = {Lecture Notes in Computer Science},
126-
volume = {13965},
127-
pages = {3--17},
128-
publisher = {Springer},
129-
year = {2023},
130-
url = {https://doi.org/10.1007/978-3-031-37703-7\_1},
131-
doi = {10.1007/978-3-031-37703-7\_1},
132-
timestamp = {Fri, 21 Jul 2023 17:55:59 +0200},
133-
biburl = {https://dblp.org/rec/conf/cav/NiemetzP23.bib},
134-
bibsource = {dblp computer science bibliography, https://dblp.org}
87+
author = {Niemetz, Aina and Preiner, Mathias},
88+
title = {Bitwuzla},
89+
booktitle = {Proc. Int. Conf. Computer Aided Verification (CAV)},
90+
pages = {3--17},
91+
year = {2023}
92+
}
93+
94+
@misc{trace,
95+
author = {Kleinekath{\"o}fer, Jan and Weingarten, Lennart and Datta, Kamalika and Drechsler, Rolf},
96+
title = {{TRACE}: Traversal and Reasoning Algebraic Computing Engine for Formal Hardware Verification},
97+
year = {2026},
98+
note = {arXiv:2608.16458}
13599
}

0 commit comments

Comments
 (0)