[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'? |
|
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? |
|
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) |
|
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. |
|
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 |
Uh oh!
There was an error while loading. Please reload this page.
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
All reactions