[Formal] High-Level Synthesis Tools should be Proven Correct #12
Replies: 5 comments 7 replies
-
It seems like in order to make this work, you need to prove things not only about behavior, but also about performance and the secondary constraints that HLS take as input. This seems significantly different than traditional 'certified compilers'? |
Beta Was this translation helpful? Give feedback.
-
A key problem with HLS-like tools is that they also have to reason about structural and timing behavior of hardware designs (implied by the software program). What kind of language-level modeling do you have to do to capture these behaviors and prove timing/structural optimizations correct? |
Beta Was this translation helpful? Give feedback.
-
What is the HLS idiom that is supported by Vericert? Does it support pragmas similar to the ones used by Vivado tools? Should it support them? (thinking about the pipeline-related pragmas) |
Beta Was this translation helpful? Give feedback.
-
I was wondering how this formal verification can deal with systems that include asynchronicity. Specifically, I am thinking of the more involved CGRA designs that include internally-clocked FUs that are connected using handshaking. This can also become a more difficult problem once you move data towards memory, if that is not exclusively assigned to certain FUs. |
Beta Was this translation helpful? Give feedback.
-
Hi Yann, John, I was wondering: is the semantics of vericert deterministic or non-deterministic? In a sense, are there cases where the compiler's syntehsis engine resolves non-determinism: so the source was having non-determinsitic semantics and the compiler is proven to fix the non-determinism in a correct way |
Beta Was this translation helpful? Give feedback.
-
Authors: Yann Herklotz (@ymherklotz) and John Wickerson (@johnwickerson)
Paper PDF: https://capra.cs.cornell.edu/latte21/paper/3.pdf
Talk Recording: https://youtu.be/Olhbhq46Amc
Beta Was this translation helpful? Give feedback.
All reactions