showed their missing ability of property verifica-
tion. In contrast, we considered correctness-oriented
hardware design synthesis flows, as implemented by
Kami (Choi et al., 2017) or the Coq/CλaSH synthe-
sis flow (Bornebusch et al., 2020). We address the
question of a quantitative analysis of the trade-off
concerning the performance between both flows by
comparing a non-trivial circuit designed by two rep-
resentative flows. The designed circuit was a synthe-
sized RTL implementation of a 32-bit MIPS proces-
sor (Hara et al., 2009). LegUp was chosen as a repre-
sentative of the acceleration-oriented synthesis flows,
while the Coq/CλaSH flow was chosen as a represen-
tative of the correctness-oriented flows.
Our evaluation, seen in Table 1, allows a quanti-
tative analysis of the trade-off between performance
and correctness. This paper indicates that using
a hardware design flow allowing correctness proofs
does not require sacrificing much performance in the
implemented system. However, if more performance
is needed we argue that it is easier to increase the
performance of circuits synthesized by correctness-
oriented flows than to add correctness to acceleration-
oriented flows. For this reason, we suggest further
research to enhance the performance of correctness-
oriented flows.
Besides the MIPS instruction set architecture the
open RISC-V instruction architecture set (RISC-V,
2020) has got a lot of attention over the last decade.
For example, Kami provides a verified 32-bit RISC-
V processor that implements the integer instruction
set. It would be interesting how the Coq/CλaSH
approach compares to the low-level implementation
synthesized by Kami concerning performance. This
comparision, however, would be future work as it is
outside the scope of this work.
ACKNOWLEDGMENTS
This work was supported by the German Federal Min-
istry of Education and Research (BMBF) within the
project SELFIE under grantno. 01IW16001, the LIT
Secure and Correct Systems Lab funded by the State
of Upper Austria, as well as by the BMK, BMDW,
and the State of Upper Austria in the frame of the
COMET program (managed by the FFG).
REFERENCES
Arvind (2003). Bluespec: A language for hardware de-
sign, simulation, synthesis and verification invited
talk. page 249. IEEE Computer Society.
Baaij, C., Kooijman, M., Kuper, J., Boeijink, A., and Ger-
ards, M. (2010). Cλash: Structural descriptions of
synchronous hardware using haskell. In Euromicro
Conference on Digital System Design (DSD), pages
714–721.
Baaij, C. and Kuper, J. (2013). Using rewriting to synthe-
size functional languages to digital circuits. In Trends
in Functional Programming (TFP), volume 8322 of
Lecture Notes in Computer Science, pages 17–33.
Springer.
Bertot, Y. and Cast
´
eran, P. (2004). Interactive Theorem
Proving and Program Development - Coq’Art: The
Calculus of Inductive Constructions. Texts in Theoret-
ical Computer Science. An (EATCS) Series. Springer.
Bornebusch, F., L
¨
uth, C., Wille, R., and Drechsler, R.
(2020). Towards automatic hardware synthesis from
formal specification to implementation. In Asia and
South Pacific Design Automation Conference (ASP-
DAC).
Broy, M. (2014). Verifying of interface assertions for infi-
nite state mealy machines. Journal of Computer and
System Sciences, 80(7):1298–1322.
Canis, A., Choi, J., Aldham, M., Zhang, V., Kammoona,
A., Czajkowski, T. S., Brown, S. D., and Anderson,
J. H. (2013). Legup: An open-source high-level syn-
thesis tool for fpga-based processor/accelerator sys-
tems. ACM Trans. on Embedded Computing Systems,
13(2):24:1–24:27.
Canis, A., Choi, J., Fort, B., Syrowik, B., Lian, R., Chen,
Y. T., Hsiao, H., Goeders, J. B., Brown, S. D., and
Anderson, J. H. (2016). Legup high-level synthesis. In
Koch, D., Hannig, F., and Ziener, D., editors, FPGAs
for Software Programmers, pages 175–190. Springer.
Chlipala, A. (2013). Certified Programming with Depen-
dent Types - A Pragmatic Introduction to the Coq
Proof Assistant. MIT Press.
Choi, J., Vijayaraghavan, M., Sherman, B., Chlipala, A.,
and Arvind (2017). Kami: a platform for high-level
parametric hardware specification and its modular ver-
ification. Proceedings of the ACM on Programming
Languages (PACMPL), 1(ICFP):24:1–24:30.
Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Min
´
e,
A., Monniaux, D., and Rival, X. (2005). The astre
´
e
analyzer. In European Symposium on Programming,
pages 21–30.
CStandard (1999). Programming languages — C. ISO/IEC
Standard 9899:1999(E). Second Edition.
Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles,
J., and Yakobowski, B. (2012). Frama-C - A soft-
ware analysis perspective. In Software Engineering
and Formal Methods, pages 233–247.
Delahaye, D. (2000). A tactic language for the system coq.
In International Conference on Logic for Program-
ming and Automated Reasoning (LPAR), volume 1955
of Lecture Notes in Computer Science (LNCS), pages
85–95. Springer.
Eisenbiegler, D. and Kumar, R. (1995). Formally em-
bedding existing high level synthesis algorithms. In
Correct Hardware Design and Verification Methods,
IFIP WG 10.5 Advanced Research Working Confer-
ence, (CHARME), volume 987 of Lecture Notes in
Computer Science (LNCS), pages 71–83. Springer.
Performance Aspects of Correctness-oriented Synthesis Flows
85