diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2019-01-19 13:31:53 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2019-01-19 13:31:53 +0000 |
commit | 708e0b680a48e6eb21664a5f1de21815bebf91d2 (patch) | |
tree | 960a8758191593934f9b4ef26b5de84926c8e38e /src/VeriFuzz | |
parent | ab437f8eab368151500b82ade6f7bf8fed49a525 (diff) | |
download | verismith-708e0b680a48e6eb21664a5f1de21815bebf91d2.tar.gz verismith-708e0b680a48e6eb21664a5f1de21815bebf91d2.zip |
Small improvement to stmnt and expr function
Diffstat (limited to 'src/VeriFuzz')
-rw-r--r-- | src/VeriFuzz/Verilog/AST.hs | 29 |
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) |