aboutsummaryrefslogtreecommitdiffstats
path: root/src/VeriFuzz/Verilog
diff options
context:
space:
mode:
authorYann Herklotz <git@ymhg.org>2019-04-23 10:11:27 +0100
committerYann Herklotz <git@ymhg.org>2019-04-23 10:11:27 +0100
commit931b1a60643f50768eb33903e87a7471898835db (patch)
tree1e9bc6058324aa90fea37cfad230a3b953349ba1 /src/VeriFuzz/Verilog
parent879d1d3522d5693d8621164cfb09fb830ea2ef0c (diff)
downloadverismith-931b1a60643f50768eb33903e87a7471898835db.tar.gz
verismith-931b1a60643f50768eb33903e87a7471898835db.zip
Add event list generation for always blocks
Diffstat (limited to 'src/VeriFuzz/Verilog')
-rw-r--r--src/VeriFuzz/Verilog/CodeGen.hs4
-rw-r--r--src/VeriFuzz/Verilog/Gen.hs3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/VeriFuzz/Verilog/CodeGen.hs b/src/VeriFuzz/Verilog/CodeGen.hs
index 361d27e..e31866c 100644
--- a/src/VeriFuzz/Verilog/CodeGen.hs
+++ b/src/VeriFuzz/Verilog/CodeGen.hs
@@ -146,7 +146,7 @@ expr (Str t ) = "\"" <> t <> "\""
showNum :: BitVec -> Text
showNum (BitVec s n) =
- "(" <> minus <> showT s <> "'h" <> T.pack (showHex (abs n) "") <> ")"
+ minus <> showT s <> "'h" <> T.pack (showHex (abs n) "")
where
minus | signum n >= 0 = ""
| otherwise = "-"
@@ -211,7 +211,7 @@ event a = "@(" <> eventRec a <> ")"
eventRec :: Event -> Text
eventRec (EId i) = getIdentifier i
eventRec (EExpr e) = expr e
-eventRec EAll = "@*"
+eventRec EAll = "*"
eventRec (EPosEdge i) = "posedge " <> getIdentifier i
eventRec (ENegEdge i) = "negedge " <> getIdentifier i
eventRec (EOr a b) = "(" <> eventRec a <> " or " <> eventRec b <> ")"
diff --git a/src/VeriFuzz/Verilog/Gen.hs b/src/VeriFuzz/Verilog/Gen.hs
index 6159766..bf9f84d 100644
--- a/src/VeriFuzz/Verilog/Gen.hs
+++ b/src/VeriFuzz/Verilog/Gen.hs
@@ -347,8 +347,9 @@ eventList = do
always :: StateGen ModItem
always = do
+ events <- eventList
stat <- SeqBlock <$> some statement
- return $ Always (EventCtrl (EPosEdge "clk") (Just stat))
+ return $ Always (EventCtrl events (Just stat))
instantiate :: ModDecl -> StateGen ModItem
instantiate (ModDecl i outP inP _ _) = do