summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2020-11-18 10:00:51 +0000
committerYann Herklotz <git@yannherklotz.com>2020-11-18 10:00:59 +0000
commitc0eb95d20fd8e8e8fe57f72524d96ceecc26ec99 (patch)
tree8017bf5b147e04bd35c2db9073ff5034ce42426a
parent8b62771a4bf5cbd76686ef29463cda049491b940 (diff)
downloadoopsla21_fvhls-c0eb95d20fd8e8e8fe57f72524d96ceecc26ec99.tar.gz
oopsla21_fvhls-c0eb95d20fd8e8e8fe57f72524d96ceecc26ec99.zip
Add citation
-rw-r--r--algorithm.tex2
-rw-r--r--references.bib8
2 files changed, 9 insertions, 1 deletions
diff --git a/algorithm.tex b/algorithm.tex
index 5257c4a..dcb0873 100644
--- a/algorithm.tex
+++ b/algorithm.tex
@@ -114,7 +114,7 @@ The first step of the translation is to use \compcert{} to transform the input C
% + TODO Explain how memory is mapped
-The first translation performed in Vericert is from 3AC to a \JW{new} hardware translation language (HTL), which is one step towards being completely translated to hardware described in Verilog. The main translation that is performed is going from a CFG representation of the computation to a finite state machine with datapath (FSMD) \JW{I feel like this could use some sort of citation, but I'm not sure what. I guess this is all from "Hardware Design 101", right?} representation in HTL.\@ The core idea of the FSMD representation is that it separates the control flow from the operations on the memory and registers, so that the state transitions can be translated into a simple finite state machine (FSM) and each state then contains data operations that update the memory and registers. Figure~\ref{fig:accumulator_diagram} shows the resulting architecture of the FSMD. \JW{I think it would be worth having a sentence to explain how the C model of memory is translated to a hardware-centric model of memory. For instance, in C we have global variables/arrays, stack-allocated variables/arrays, and heap-allocated variables/arrays (anything else?). In Verilog we have registers and RAM blocks. So what's the correspondence between the two worlds? Globals and heap-allocated are not handled, stack-allocated variables become registers, and stack-allocated arrays become RAM blocks? Am I close?}
+The first translation performed in Vericert is from 3AC to a new hardware translation language (HTL), which is one step towards being completely translated to hardware described in Verilog. The main translation that is performed is going from a CFG representation of the computation to a finite state machine with datapath (FSMD)~\cite{hwang99_fsmd}\JW{I feel like this could use some sort of citation, but I'm not sure what. I guess this is all from "Hardware Design 101", right?}\YH{I think I found a good one actually, which goes over the basics.} representation in HTL.\@ The core idea of the FSMD representation is that it separates the control flow from the operations on the memory and registers, so that the state transitions can be translated into a simple finite state machine (FSM) and each state then contains data operations that update the memory and registers. Figure~\ref{fig:accumulator_diagram} shows the resulting architecture of the FSMD. \JW{I think it would be worth having a sentence to explain how the C model of memory is translated to a hardware-centric model of memory. For instance, in C we have global variables/arrays, stack-allocated variables/arrays, and heap-allocated variables/arrays (anything else?). In Verilog we have registers and RAM blocks. So what's the correspondence between the two worlds? Globals and heap-allocated are not handled, stack-allocated variables become registers, and stack-allocated arrays become RAM blocks? Am I close?}
\begin{figure*}
\centering
diff --git a/references.bib b/references.bib
index cb7f441..43b5e62 100644
--- a/references.bib
+++ b/references.bib
@@ -565,3 +565,11 @@
numpages = {14},
publisher = {Association for Computing Machinery},
}
+
+@inproceedings{hwang1999fsmd,
+ title={FSMD functional partitioning for low power},
+ author={Hwang, Enoch and Vahid, Frank and Hsu, Yu-Chin},
+ booktitle={Proceedings of the conference on Design, automation and test in Europe},
+ pages={7--es},
+ year={1999}
+}