aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Test/VeriFuzz/Verilog/AST.hs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Test/VeriFuzz/Verilog/AST.hs b/src/Test/VeriFuzz/Verilog/AST.hs
index 184390e..36f4d6d 100644
--- a/src/Test/VeriFuzz/Verilog/AST.hs
+++ b/src/Test/VeriFuzz/Verilog/AST.hs
@@ -48,6 +48,15 @@ instance Monoid Identifier where
newtype Delay = Delay { _delay :: Int }
deriving (Eq)
+instance Num Delay where
+ Delay a + Delay b = Delay $ a + b
+ Delay a - Delay b = Delay $ a - b
+ Delay a * Delay b = Delay $ a * b
+ negate (Delay a) = Delay $ negate a
+ abs (Delay a) = Delay $ abs a
+ signum (Delay a) = Delay $ signum a
+ fromInteger = Delay . fromInteger
+
-- | Verilog syntax for an event, such as @\@x@, which is used for always blocks
data Event = EId Identifier
| EExpr Expr