diff options
author | Yann Herklotz <git@ymhg.org> | 2019-04-21 07:19:23 +0100 |
---|---|---|
committer | Yann Herklotz <git@ymhg.org> | 2019-04-21 07:19:35 +0100 |
commit | 879d1d3522d5693d8621164cfb09fb830ea2ef0c (patch) | |
tree | db52e8a9ce21e7c4233a859d2f45e6af5f8ce755 /src/VeriFuzz/Verilog/CodeGen.hs | |
parent | 8f7d6e4ee2941c592a33510687a724c4c733d403 (diff) | |
download | verismith-879d1d3522d5693d8621164cfb09fb830ea2ef0c.tar.gz verismith-879d1d3522d5693d8621164cfb09fb830ea2ef0c.zip |
Add support for more event lists
Diffstat (limited to 'src/VeriFuzz/Verilog/CodeGen.hs')
-rw-r--r-- | src/VeriFuzz/Verilog/CodeGen.hs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/VeriFuzz/Verilog/CodeGen.hs b/src/VeriFuzz/Verilog/CodeGen.hs index 3b9c7ad..361d27e 100644 --- a/src/VeriFuzz/Verilog/CodeGen.hs +++ b/src/VeriFuzz/Verilog/CodeGen.hs @@ -204,13 +204,18 @@ unaryOp UnXor = "^" unaryOp UnNxor = "~^" unaryOp UnNxorInv = "^~" --- | Generate verilog code for an 'Event'. event :: Event -> Text -event (EId i) = "@(" <> getIdentifier i <> ")" -event (EExpr e) = "@(" <> expr e <> ")" -event EAll = "@*" -event (EPosEdge i) = "@(posedge " <> getIdentifier i <> ")" -event (ENegEdge i) = "@(negedge " <> getIdentifier i <> ")" +event a = "@(" <> eventRec a <> ")" + +-- | Generate verilog code for an 'Event'. +eventRec :: Event -> Text +eventRec (EId i) = getIdentifier i +eventRec (EExpr e) = expr e +eventRec EAll = "@*" +eventRec (EPosEdge i) = "posedge " <> getIdentifier i +eventRec (ENegEdge i) = "negedge " <> getIdentifier i +eventRec (EOr a b) = "(" <> eventRec a <> " or " <> eventRec b <> ")" +eventRec (EComb a b) = "(" <> eventRec a <> ", " <> eventRec b <> ")" -- | Generates verilog code for a 'Delay'. delay :: Delay -> Text |