summaryrefslogtreecommitdiffstats
path: root/verilog.tex
diff options
context:
space:
mode:
authorJohn Wickerson <j.wickerson@imperial.ac.uk>2020-11-20 12:26:32 +0000
committeroverleaf <overleaf@localhost>2020-11-20 12:27:20 +0000
commit47585b142f991d55f7d7019c3e8383b839f98001 (patch)
tree5328ef8939fac31209c533a66de72fef4c35e9c6 /verilog.tex
parent81c07da32abfb79bcd6b26e742531556bb10a915 (diff)
downloadoopsla21_fvhls-47585b142f991d55f7d7019c3e8383b839f98001.tar.gz
oopsla21_fvhls-47585b142f991d55f7d7019c3e8383b839f98001.zip
Update on Overleaf.
Diffstat (limited to 'verilog.tex')
-rw-r--r--verilog.tex4
1 files changed, 4 insertions, 0 deletions
diff --git a/verilog.tex b/verilog.tex
index e36abc0..e6a9a2d 100644
--- a/verilog.tex
+++ b/verilog.tex
@@ -58,6 +58,7 @@ which modifies one array element using blocking assignment and then a second usi
\paragraph{Removing support for external inputs to modules} Support for receiving external inputs was removed from the semantics for simplicity, as these are not needed for an HLS target. The main module in Verilog models the main function in C, and since the inputs to a C function shouldn't change during its execution, there is no need for external inputs for Verilog modules.
\paragraph{Simplifying representation of bitvectors} Finally, we use 32-bit integers to represent bitvectors rather of arrays of Booleans. This is because \vericert{} (currently) only supports types represented by 32 bits.
+
\subsection{Integrating the Verilog Semantics into \compcert{}'s Model}
\begin{figure*}
@@ -77,6 +78,9 @@ which modifies one array element using blocking assignment and then a second usi
\label{fig:inferrence_module}
\end{figure*}
+The \compcert{} model defines a set of computational states.
+The \compcert{} computation model requires our Verilog semantics to be enriched. In order to support the three CompCert states, our module definitions require five additional Verilog registers.
+
\compcert{} defines a specific model of computation that all semantics have to follow in order to prove properties about them. In this section, we first describe three of \compcert{}'s original computational states. Then, we describe the five registers and semantic rules we add to Verilog semantics to integrate it to the \compcert{} model. \compcert{} has three main states that need to be defined:
\begin{description}