summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2021-09-29 18:55:00 +0100
committerYann Herklotz <git@yannherklotz.com>2021-09-29 18:55:00 +0100
commitf7eccb28395d9f84ca9f34921dff6574cda4dc3e (patch)
treeb6fbcd5469e55854524195f1724903e91b13dcdb
parent33d3442691ec00e36fdbf416897dbd7c8de5f882 (diff)
parent3a2fdd98bdd48aeadb6813f38b9f8e968fef0977 (diff)
downloadoopsla21_fvhls-f7eccb28395d9f84ca9f34921dff6574cda4dc3e.tar.gz
oopsla21_fvhls-f7eccb28395d9f84ca9f34921dff6574cda4dc3e.zip
Merge branch 'master' of git.ymhg.org:private/formal_hls
-rw-r--r--presentation/presentation.org64
1 files changed, 32 insertions, 32 deletions
diff --git a/presentation/presentation.org b/presentation/presentation.org
index 97d7baa..3786da0 100644
--- a/presentation/presentation.org
+++ b/presentation/presentation.org
@@ -305,7 +305,7 @@ Current progress: fully verified HLS tool for a subset of C.
Support for: all *control flow*, *fixedpoint*, *non-recursive functions* and *local arrays/structs/unions*.
* Example
-** Example: RTL :B_frame:
+** Example: 3AC :B_frame:
*** Code example :B_column:
:PROPERTIES:
@@ -333,7 +333,7 @@ int main() {
:BEAMER_ACT: <2>
:END:
-- *three address code (RTL)* instructions are represented as a control-flow graph (CFG).
+- *three address code (3AC)* instructions are represented as a control-flow graph (CFG).
- Each instruction links to the next one.
*** Text :B_column:
@@ -350,7 +350,7 @@ int main() {
Example of a very simple program performing loads and stores.
-**** RTL Code 5 :B_onlyenv:
+**** 3AC Code 5 :B_onlyenv:
:PROPERTIES:
:BEAMER_env: onlyenvNH
:BEAMER_ACT: <2>
@@ -370,7 +370,7 @@ main() {
}
#+end_src
-** Example: HTL Overview
+** Example: HTL Overview :noexport:
The representation of the *finite state-machine with datapath (FSMD)* is abstract and called **HTL**.
@@ -401,7 +401,7 @@ Record module: Type := mkmodule {
}.
#+end_src
-** Example: Translation (RTL $\rightarrow$ HTL)
+** Example: Translation (3AC $\rightarrow$ HTL)
Translation from *control-flow graph (CFG)* into a *finite state-machine with datapath (FSMD)*.
@@ -410,7 +410,7 @@ Translation from *control-flow graph (CFG)* into a *finite state-machine with da
#+attr_beamer: :overlay <+->
- *Control-flow* is translated into a *finite state-machine*.
-- Each *RTL instructions* translated into equivalent *Verilog statements*.
+- Each *3AC instructions* translated into equivalent *Verilog statements*.
- Function *stack* implemented as *RAM*.
- Pointers for loads and stores translated to RAM addresses.
- *Byte* addressed to *word* addressed.
@@ -630,7 +630,7 @@ endmodule
- Control logic is translated into another case statement with a reset.
* Verification
-** Verilog Syntax :noexport:
+** Verilog Syntax
*** Column 1 :B_column:
:PROPERTIES:
@@ -873,7 +873,7 @@ where
\end{align*}
#+end_export
-** RTL $\to$ HTL: Build a Specification :noexport:
+** 3AC $\to$ HTL: Build a Specification :noexport:
Assuming $\yhfunction{HLS} (C) = \yhconstant{OK} (V)$ requires reasoning about implementation details.
@@ -890,7 +890,7 @@ Instead we build a model of the translation which we can use.
#+beamer: \pause
-*** RTL to HTL operator conversion :B_example:
+*** 3AC to HTL operator conversion :B_example:
:PROPERTIES:
:BEAMER_env: example
:BEAMER_ACT: <2->
@@ -902,7 +902,7 @@ Instead we build a model of the translation which we can use.
\end{equation*}
#+end_export
-** RTL $\to$ HTL: Prove Forward Simulation :noexport:
+** 3AC $\to$ HTL: Prove Forward Simulation :noexport:
*** Column 1
:PROPERTIES:
@@ -952,9 +952,9 @@ Prove the simulation diagram correct:
#+beamer: \pause
#+attr_beamer: :overlay <+->
-- Assuming an initial match between the RTL state $S_1$ and Verilog state $R_1$,
+- Assuming an initial match between the 3AC state $S_1$ and Verilog state $R_1$,
- there exists 1 or more steps in Verilog,
-- such that after 1 step in RTL, the resulting states match.
+- such that after 1 step in 3AC, the resulting states match.
* Results
@@ -1176,8 +1176,8 @@ Many optimisations missing:
Currently implemented two new languages for it:
-- ~RTLBlock~ :: RTL with basic blocks.
-- ~RTLPar~ :: RTL with basic blocks made up of parallel constructs.
+- ~3ACBlock~ :: 3AC with basic blocks.
+- ~3ACPar~ :: 3AC with basic blocks made up of parallel constructs.
#+beamer: \vspace{1.5em}
@@ -1187,7 +1187,7 @@ Currently implemented two new languages for it:
:BEAMER_OPT: 10cm
:END:
-**** RTLBlock Basic Block
+**** 3ACBlock Basic Block
:PROPERTIES:
:BEAMER_ACT: 2
:BEAMER_env: onlyenv
@@ -1223,8 +1223,8 @@ Inductive instr: Type :=
\scalebox{0.8}{\begin{tikzpicture}
\begin{scope}
\node[draw,minimum width=3cm,minimum height=1cm,align=center] (imstranslation) at (1.5,2) {\small\texttt{\textcolor{functioncolour}{Iterative Modulo}}\\\small\texttt{\textcolor{functioncolour}{Scheduling}}};
- \node[draw,ellipse] (input) at (-1.5,2) {\small\texttt{RTLBlock}};
- \node[draw,ellipse] (output) at (5,2) {\small\texttt{RTLBlock}};
+ \node[draw,ellipse] (input) at (-1.5,2) {\small\texttt{3ACBlock}};
+ \node[draw,ellipse] (output) at (5,2) {\small\texttt{3ACBlock}};
\draw[->] (input) -- (imstranslation);
\draw[->] (imstranslation) -- (output);
\visible<2->{\node[draw,minimum width=3cm,minimum height=1cm,align=center] (verification) at (1.5,0.5) {\small Equivalence\\\small Check};%
@@ -1234,11 +1234,11 @@ Inductive instr: Type :=
\draw[->] ($(verification.south) - (0.5,0)$) -- (error);%
\node at (0.3,-0.5) {\footnotesize\texttt{\textcolor{keywordcolour}{false}}};%
\node at (2,-0.3) {\footnotesize\texttt{\textcolor{keywordcolour}{true}}};%
- \node[draw,ellipse] (ok) at (5,-0.5) {\small\texttt{\textcolor{constantcolour}{OK}(RTLBlock)}};%
+ \node[draw,ellipse] (ok) at (5,-0.5) {\small\texttt{\textcolor{constantcolour}{OK}(3ACBlock)}};%
\draw[->] (verification) |- (ok);}
\visible<3->{\node[draw,minimum width=3cm,minimum height=1cm,align=center] (schedtranslation) at (9.5,-0.5) {\small\texttt{\textcolor{functioncolour}{Resource Constrained}}\\\small\texttt{\textcolor{functioncolour}{Scheduling}}};%
- \node[draw,ellipse] (schedoutput) at (13,-0.5) {\small\texttt{RTLPar}};%
+ \node[draw,ellipse] (schedoutput) at (13,-0.5) {\small\texttt{3ACPar}};%
\draw[->] (ok) -- (schedtranslation);%
\draw[->] (schedtranslation) -- (schedoutput);%
\node[draw,minimum width=3cm,minimum height=1cm,align=center] (schedverification) at (9.5,-2) {\small Equivalence\\\small Check};%
@@ -1248,7 +1248,7 @@ Inductive instr: Type :=
\draw[->] ($(schedverification.south) - (0.5,0)$) -- (schederror);%
\node at (8.3,-3) {\footnotesize\texttt{\textcolor{keywordcolour}{false}}};%
\node at (10,-2.8) {\footnotesize\texttt{\textcolor{keywordcolour}{true}}};%
- \node[draw,ellipse] (ok) at (13,-3) {\small\texttt{\textcolor{constantcolour}{OK}(RTLPar)}};%
+ \node[draw,ellipse] (ok) at (13,-3) {\small\texttt{\textcolor{constantcolour}{OK}(3ACPar)}};%
\draw[->] (schedverification) |- (ok);}
\end{scope}
\end{tikzpicture}}
@@ -1773,11 +1773,11 @@ r_{3}^{0} + r_{3}^{0} + r_{4}^{0} \stackrel{?}{=} r_{3}^{0} + r_{3}^{0} + r_{4}^
\fill[formalhls,rounded corners=3pt] (-1,-1.5) rectangle (9,-2.5);
\node[language] at (0,0) (clight) {Clight};
\node[language] at (2,0) (cminor) {C\#minor};
- \node[language] at (4,0) (rtl) {RTL};
+ \node[language] at (4,0) (rtl) {3AC};
\node[language] at (6,0) (ltl) {LTL};
\node[language] at (8,0) (ppc) {PPC};
- \node[language] at (2,-2) (acblock) {\small RTLBlock};
- \node[language] at (4,-2) (acpar) {\small RTLPar};
+ \node[language] at (2,-2) (acblock) {\small 3ACBlock};
+ \node[language] at (4,-2) (acpar) {\small 3ACPar};
\node[language] at (6,-2) (dfgstmd) {HTL};
\node[language] at (8,-2) (verilog) {Verilog};
\node at (0,1) {CompCert};
@@ -1796,7 +1796,7 @@ r_{3}^{0} + r_{3}^{0} + r_{4}^{0} \stackrel{?}{=} r_{3}^{0} + r_{3}^{0} + r_{4}^
#+beamer: \vspace{1em}
-Add two more passes, from *RTLBlock* $\rightarrow$ *RTLBlock* and from *RTLBlock* to *RTLPar*.
+Add two more passes, from *3ACBlock* $\rightarrow$ *3ACBlock* and from *3ACBlock* to *3ACPar*.
** About Iterative Modulo Scheduling
@@ -2073,7 +2073,7 @@ int main() {
Example of simple loop accumulating values in array.
-**** RTL Code 2 :B_onlyenv:
+**** 3AC Code 2 :B_onlyenv:
:PROPERTIES:
:BEAMER_env: onlyenvNH
:BEAMER_ACT: <2>
@@ -2100,7 +2100,7 @@ main() {
}
#+end_src
-**** RTL Code 3 :B_onlyenv:
+**** 3AC Code 3 :B_onlyenv:
:PROPERTIES:
:BEAMER_env: onlyenvNH
:BEAMER_ACT: <3>
@@ -2127,7 +2127,7 @@ main() {
}
#+end_src
-**** RTL Code 4 :B_onlyenv:
+**** 3AC Code 4 :B_onlyenv:
:PROPERTIES:
:BEAMER_env: onlyenvNH
:BEAMER_ACT: <4>
@@ -2154,7 +2154,7 @@ main() {
}
#+end_src
-**** RTL Code 5 :B_onlyenv:
+**** 3AC Code 5 :B_onlyenv:
:PROPERTIES:
:BEAMER_env: onlyenvNH
:BEAMER_ACT: <5>
@@ -2181,7 +2181,7 @@ main() {
}
#+end_src
-**** RTL Code 6 :B_onlyenv:
+**** 3AC Code 6 :B_onlyenv:
:PROPERTIES:
:BEAMER_env: onlyenvNH
:BEAMER_ACT: <6>
@@ -2208,7 +2208,7 @@ main() {
}
#+end_src
-**** RTL Code 7 :B_onlyenv:
+**** 3AC Code 7 :B_onlyenv:
:PROPERTIES:
:BEAMER_env: onlyenvNH
:BEAMER_ACT: <7>
@@ -2235,7 +2235,7 @@ main() {
}
#+end_src
-**** RTL Code 8 :B_onlyenv:
+**** 3AC Code 8 :B_onlyenv:
:PROPERTIES:
:BEAMER_env: onlyenvNH
:BEAMER_ACT: <8>
@@ -2262,7 +2262,7 @@ main() {
}
#+end_src
-**** RTL Code 9 :B_onlyenv:
+**** 3AC Code 9 :B_onlyenv:
:PROPERTIES:
:BEAMER_env: onlyenvNH
:BEAMER_ACT: <9>