summaryrefslogtreecommitdiffstats
path: root/verilog.tex
diff options
context:
space:
mode:
authorJohn Wickerson <j.wickerson@imperial.ac.uk>2020-11-17 20:39:58 +0000
committeroverleaf <overleaf@localhost>2020-11-17 20:44:17 +0000
commit0f5f4312e0f07edd9bf8ed4e3c44f1465454bac3 (patch)
treee2ac11017957c022aa9bf1adb212a1aedb0ec22d /verilog.tex
parente125ae119a37c449986a5c72dfd762e28d95c2b3 (diff)
downloadoopsla21_fvhls-0f5f4312e0f07edd9bf8ed4e3c44f1465454bac3.tar.gz
oopsla21_fvhls-0f5f4312e0f07edd9bf8ed4e3c44f1465454bac3.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 36e6c32..afea449 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 could say that if the same register is written multiple times in the same clock cycle (e.g. in two different always-blocks, }
+\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.}