diff options
author | Yann Herklotz <git@yannherklotz.com> | 2020-06-03 17:18:34 +0100 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2020-06-03 17:18:34 +0100 |
commit | 5ba3688e1e2aa7f84f0a1c6b5a72fbe6b59bb1b0 (patch) | |
tree | cb3328e90775c29c3e8efdb568d2c7a31001fa7f /main.tex | |
parent | f39af0c87d03bb20047605b80087cb33b11b30f1 (diff) | |
download | oopsla21_fvhls-5ba3688e1e2aa7f84f0a1c6b5a72fbe6b59bb1b0.tar.gz oopsla21_fvhls-5ba3688e1e2aa7f84f0a1c6b5a72fbe6b59bb1b0.zip |
Add other inference rules
Diffstat (limited to 'main.tex')
-rw-r--r-- | main.tex | 39 |
1 files changed, 19 insertions, 20 deletions
@@ -189,59 +189,58 @@ \section{Verilog Semantics} +Definition of state. + +\begin{equation} + \label{eq:10} + s = (\Gamma, \Delta) +\end{equation} + Definition of stmntrun. \begin{equation} \label{eq:1} - \inferrule[Skip]{ }{\text{stmntrun}\ f\ a\ \mathtt{Vskip}\ a} + \inferrule[Skip]{ }{\text{stmntrun}\ f\ s\ \mathtt{Vskip}\ s} \end{equation} \begin{equation} - \label{eq:2} - \inferrule[CondTrue]{\text{exprrun}\ f\ \Delta\ c\ vc \\ \text{valToB}\ vc = \text{true} \\ - \text{stmntrun}\ f\ as0\ stt\ as1}{\text{stmntrun}\ f\ as0\ (\mathtt{Vcond}\ c\ stt\ stf)\ as1} + \label{eq:4} + \inferrule[Seq]{\text{stmntrun}\ f\ s_{0}\ \mathit{st}_{1}\ s_{1} \\ \text{stmntrun}\ f\ s_{1}\ \mathit{st}_{2}\ s_{2}}{\text{stmntrun}\ f\ s_{0}\ (\mathtt{Vseq}\ \mathit{st}_{1}\ \mathit{st}_{2})\ s_{2}} \end{equation} \begin{equation} - \label{eq:3} - \inferrule[CondFalse]{\text{exprrun}\ f\ \Delta\ c\ vc \\ \text{valToB}\ vc = \text{false} \\ - \text{stmntrun}\ f\ as0\ stf\ as1}{\text{stmntrun}\ f\ as0\ (\mathtt{Vcond}\ c\ stt\ stf)\ as1} + \label{eq:2} + \inferrule[CondTrue]{\text{exprrun}\ f\ \Gamma_{0}\ c\ v_{c} \\ \text{valToB}\ v_{c} = \mathtt{true} \\ \text{stmntrun}\ f\ s_{0}\ \mathit{stt}\ s_{1}}{\text{stmntrun}\ f\ s_{0}\ (\mathtt{Vcond}\ c\ \mathit{stt}\ \mathit{stf})\ s_{1}} \end{equation} \begin{equation} - \label{eq:4} - \inferrule[Seq]{\text{stmntrun}\ f\ as0\ st1\ as1 \\ \text{stmntrun}\ f\ as1\ st2\ as2}{ - \text{stmntrun}\ f\ as0\ (\mathtt{Vseq}\ st1\ st2)\ as2} + \label{eq:3} + \inferrule[CondFalse]{\text{exprrun}\ f\ \Gamma_{0}\ c\ v_{c} \\ \text{valToB}\ v_{c} = \mathtt{false} \\ \text{stmntrun}\ f\ s_{0}\ \mathit{stf}\ s_{1}}{\text{stmntrun}\ f\ s_{0}\ (\mathtt{Vcond}\ c\ \mathit{stt}\ \mathit{stf})\ s_{1}} \end{equation} \begin{equation} \label{eq:5} - \inferrule[CaseNoMatch]{\text{stmntrun}\ f\ as0\ (\mathtt{Vcase}\ e\ cs\ def)\ as1 \\ \text{exprrun}\ f\ \Delta_{0}\ me\ mve - \\ \text{exprrun}\ f\ \Delta_{0}\ e\ ve \\ mve \neq ve}{ - \text{stmntrun}\ f\ as0\ (\mathtt{Vcase}\ e\ ((me,\ sc) :: cs)\ def)\ as1} + \inferrule[CaseNoMatch]{\text{stmntrun}\ f\ s_{0}\ (\mathtt{Vcase}\ e\ cs\ def)\ s_{1} \\ \text{exprrun}\ f\ \Gamma_{0}\ me\ mve \\ \text{exprrun}\ f\ \Gamma_{0}\ e\ ve \\ mve \neq ve}{\text{stmntrun}\ f\ s_{0}\ (\mathtt{Vcase}\ e\ ((me,\ sc) :: cs)\ def)\ s_{1}} \end{equation} \begin{equation} \label{eq:6} - \inferrule[CaseMatch]{\text{stmntrun}\ f\ as0\ sc\ as1 \\ \text{exprrun}\ f\ \Delta_{0}\ e\ ve - \\ \text{exprrun}\ f\ \Delta_{0}\ me\ mve \\ mve = ve}{ - \text{stmntrun}\ f\ as0\ (\mathtt{Vcase}\ e\ ((me,\ sc) :: cs)\ def)\ as1} + \inferrule[CaseMatch]{\text{stmntrun}\ f\ s_{0}\ sc\ s_{1} \\ \text{exprrun}\ f\ \Gamma_{0}\ e\ ve \\ \text{exprrun}\ f\ \Gamma_{0}\ me\ mve \\ mve = ve}{\text{stmntrun}\ f\ s_{0}\ (\mathtt{Vcase}\ e\ ((me,\ sc) :: cs)\ def)\ s_{1}} \end{equation} \begin{equation} \label{eq:7} - \inferrule[CaseDefault]{\text{exprrun}\ f\ \Delta_{0}\ e ve \\ \text{stmntrun}\ f\ as0\ st\ as1}{ - \text{stmntrun}\ f\ as0\ (\mathtt{Vcase}\ e\ []\ (\mathtt{Some}\ st))\ as1} + \inferrule[CaseDefault]{\text{exprrun}\ f\ \Gamma_{0}\ e\ ve \\ \text{stmntrun}\ f\ s_{0}\ st\ s_{1}}{\text{stmntrun}\ f\ s_{0}\ (\mathtt{Vcase}\ e\ []\ (\mathtt{Some}\ st))\ s_{1}} \end{equation} \begin{equation} \label{eq:8} - \inferrule[Blocking]{}{x} + \inferrule[Blocking]{\text{name}\ \mathit{lhs} = \mathtt{OK}\ n \\ \text{exprrun}\ f\ \Gamma\ \mathit{rhs}\ v_{\mathit{rhs}} \\ \Gamma' = \Gamma ! n \rightarrow v_{\mathit{rhs}}}{\text{stmntrun}\ f\ (\Gamma, \Delta)\ (\mathtt{Vblock}\ \mathit{lhs}\ \mathit{rhs})\ (\Gamma', \Delta)} \end{equation} \begin{equation} \label{eq:9} - \inferrule[Nonblocking]{}{x} + \inferrule[Nonblocking]{\text{name}\ \mathit{lhs} = \mathtt{OK}\ n \\ \text{exprrun}\ f\ \Gamma\ \mathit{rhs}\ v_{\mathit{rhs}} \\ \Delta' = \Delta ! n \rightarrow v_{\mathit{rhs}}}{\text{stmntrun}\ f\ (\Gamma, \Delta)\ (\mathtt{Vnonblock}\ \mathit{lhs}\ \mathit{rhs})\ (\Gamma, \Delta')} \end{equation} %% Acknowledgments |