aboutsummaryrefslogtreecommitdiffstats
path: root/src/VeriFuzz/Verilog/AST.hs
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2019-01-19 13:31:53 +0000
committerYann Herklotz <ymherklotz@gmail.com>2019-01-19 13:31:53 +0000
commit708e0b680a48e6eb21664a5f1de21815bebf91d2 (patch)
tree960a8758191593934f9b4ef26b5de84926c8e38e /src/VeriFuzz/Verilog/AST.hs
parentab437f8eab368151500b82ade6f7bf8fed49a525 (diff)
downloadverismith-708e0b680a48e6eb21664a5f1de21815bebf91d2.tar.gz
verismith-708e0b680a48e6eb21664a5f1de21815bebf91d2.zip
Small improvement to stmnt and expr function
Diffstat (limited to 'src/VeriFuzz/Verilog/AST.hs')
-rw-r--r--src/VeriFuzz/Verilog/AST.hs29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/VeriFuzz/Verilog/AST.hs b/src/VeriFuzz/Verilog/AST.hs
index 4c22e10..35f678f 100644
--- a/src/VeriFuzz/Verilog/AST.hs
+++ b/src/VeriFuzz/Verilog/AST.hs
@@ -221,13 +221,13 @@ instance IsString Expr where
fromString = Str . fromString
expr :: Int -> QC.Gen Expr
-expr 0 = QC.oneof
- [ Id <$> QC.arbitrary
- , Number <$> positiveArb <*> QC.arbitrary
- , UnOp <$> QC.arbitrary <*> QC.arbitrary
- -- , Str <$> QC.arbitrary
- ]
expr n
+ | n == 0 = QC.oneof
+ [ Id <$> QC.arbitrary
+ , Number <$> positiveArb <*> QC.arbitrary
+ , UnOp <$> QC.arbitrary <*> QC.arbitrary
+ -- , Str <$> QC.arbitrary
+ ]
| n > 0 = QC.oneof
[ Id <$> QC.arbitrary
, Number <$> positiveArb <*> QC.arbitrary
@@ -293,6 +293,9 @@ instance QC.Arbitrary LVal where
, RegSize <$> QC.arbitrary <*> QC.arbitrary <*> QC.arbitrary
]
+instance IsString LVal where
+ fromString = RegId . fromString
+
-- | Different port direction that are supported in Verilog.
data PortDir = PortIn -- ^ Input direction for port (@input@).
| PortOut -- ^ Output direction for port (@output@).
@@ -388,14 +391,14 @@ instance Monoid Stmnt where
mempty = SeqBlock []
statement :: Int -> QC.Gen Stmnt
-statement 0 = QC.oneof
- [ BlockAssign <$> QC.arbitrary
- , NonBlockAssign <$> QC.arbitrary
- -- , StatCA <$> QC.arbitrary
- , TaskEnable <$> QC.arbitrary
- , SysTaskEnable <$> QC.arbitrary
- ]
statement n
+ | n == 0 = QC.oneof
+ [ BlockAssign <$> QC.arbitrary
+ , NonBlockAssign <$> QC.arbitrary
+ -- , StatCA <$> QC.arbitrary
+ , TaskEnable <$> QC.arbitrary
+ , SysTaskEnable <$> QC.arbitrary
+ ]
| n > 0 = QC.oneof
[ TimeCtrl <$> QC.arbitrary <*> (Just <$> substat 2)
, SeqBlock <$> QC.listOf1 (substat 4)