summaryrefslogtreecommitdiffstats
path: root/verilog.tex
diff options
context:
space:
mode:
authorJohn Wickerson <j.wickerson@imperial.ac.uk>2020-11-17 20:39:01 +0000
committeroverleaf <overleaf@localhost>2020-11-17 20:39:02 +0000
commitcb4655d41bd82e07d24f4042a16f506ef2a01473 (patch)
treec1887c87b6903fbb2584da0f76e09db8b2ad9b90 /verilog.tex
parenteeb34a66da54f8209968d5785ed136f2a4ad27ea (diff)
downloadoopsla21_fvhls-cb4655d41bd82e07d24f4042a16f506ef2a01473.tar.gz
oopsla21_fvhls-cb4655d41bd82e07d24f4042a16f506ef2a01473.zip
Update on Overleaf.
Diffstat (limited to 'verilog.tex')
-rw-r--r--verilog.tex2
1 files changed, 1 insertions, 1 deletions
diff --git a/verilog.tex b/verilog.tex
index 8da7591..756d717 100644
--- a/verilog.tex
+++ b/verilog.tex
@@ -11,7 +11,7 @@ This semantics is quite practical as it is restricted to a small subset of Veril
The semantics of Verilog differs from regular programming languages, as it is used to describe hardware directly, which is inherently parallel, rather than an algorithm, which is usually sequential. The main construct in Verilog is the always block \JW{consider `always-block' as it's easier to parse}. \JWcouldcut{which is a construct that contains statements.}
A module can contain multiple always blocks, all of which run in parallel. These always blocks further contain statements such as if-statements or assignments to variables. Each always block also contains a list of events at which it should trigger, which could either contain signals that are assigned to other signals in that always block, or a different signal such as a clock which will trigger the always block periodically, only the latter are actually supported in our target semantics. \JW{That sentence is a bit wordy. Can you just say something like: `We support only \emph{synchronous} logic, which means that the always block is triggered on (and only on) the rising edge of a clock signal.'?}
-\NR{We should mention that variables cannot be driven by multiple \alwaysblock{}s, since one might get confused with data races when relating to concurrent processes in software.} \JW{Perhaps we coud }
+\NR{We should mention that variables cannot be driven by multiple \alwaysblock{}s, since one might get confused with data races when relating to concurrent processes in software.} \JW{Perhaps we could say that if the same register is written multiple times in the same clock cycle (e.g. in two differ}