aboutsummaryrefslogtreecommitdiffstats
path: root/src/VeriFuzz.hs
diff options
context:
space:
mode:
authorYann Herklotz <git@ymhg.org>2019-05-06 18:59:08 +0100
committerYann Herklotz <git@ymhg.org>2019-05-06 18:59:08 +0100
commit1e4798b9bfe090ac68c2edd036637b6bfac5c06b (patch)
tree680f75c00e9e6ee7f49560a8f4509b74b08730ed /src/VeriFuzz.hs
parent4cdbcd7570009187954afe0c0308fa1eb4460c55 (diff)
downloadverismith-1e4798b9bfe090ac68c2edd036637b6bfac5c06b.tar.gz
verismith-1e4798b9bfe090ac68c2edd036637b6bfac5c06b.zip
Support multiple reg assigns in if statements
Diffstat (limited to 'src/VeriFuzz.hs')
-rw-r--r--src/VeriFuzz.hs53
1 files changed, 32 insertions, 21 deletions
diff --git a/src/VeriFuzz.hs b/src/VeriFuzz.hs
index e844f57..84d3336 100644
--- a/src/VeriFuzz.hs
+++ b/src/VeriFuzz.hs
@@ -8,11 +8,14 @@ Stability : experimental
Portability : POSIX
-}
+{-# LANGUAGE TemplateHaskell #-}
+
module VeriFuzz
( runEquivalence
, runSimulation
, runReduce
, draw
+ , versionInfo
, SourceInfo(..)
, module VeriFuzz.Verilog
, module VeriFuzz.Config
@@ -24,28 +27,26 @@ module VeriFuzz
where
import Control.Lens
-import Control.Monad.IO.Class (MonadIO)
-import Control.Monad.Trans.Maybe (runMaybeT)
-import qualified Crypto.Random.DRBG as C
-import Data.ByteString (ByteString)
-import Data.ByteString.Builder (byteStringHex, toLazyByteString)
-import qualified Data.ByteString.Lazy as L
-import qualified Data.Graph.Inductive as G
-import qualified Data.Graph.Inductive.Dot as G
-import Data.Maybe (isNothing)
-import Data.Text (Text)
-import qualified Data.Text as T
-import Data.Text.Encoding (decodeUtf8)
-import qualified Data.Text.IO as T
-import Hedgehog (Gen)
-import qualified Hedgehog.Gen as Hog
-import qualified Hedgehog.Internal.Gen as Hog
-import Hedgehog.Internal.Seed (Seed)
-import qualified Hedgehog.Internal.Seed as Hog
-import qualified Hedgehog.Internal.Tree as Hog
-import Prelude hiding (FilePath)
+import qualified Crypto.Random.DRBG as C
+import Data.ByteString (ByteString)
+import Data.ByteString.Builder (byteStringHex, toLazyByteString)
+import qualified Data.ByteString.Lazy as L
+import qualified Data.Graph.Inductive as G
+import qualified Data.Graph.Inductive.Dot as G
+import Data.Maybe (isNothing)
+import Data.Text (Text)
+import qualified Data.Text as T
+import Data.Text.Encoding (decodeUtf8)
+import qualified Data.Text.IO as T
+import Data.Version (showVersion)
+import Development.GitRev
+import Hedgehog (Gen)
+import qualified Hedgehog.Gen as Hog
+import Hedgehog.Internal.Seed (Seed)
+import Paths_verifuzz (version)
+import Prelude hiding (FilePath)
import Shelly
-import Shelly.Lifted (liftSh)
+import Shelly.Lifted (liftSh)
import VeriFuzz.Circuit
import VeriFuzz.Config
import VeriFuzz.Fuzz
@@ -56,6 +57,16 @@ import VeriFuzz.Sim
import VeriFuzz.Sim.Internal
import VeriFuzz.Verilog
+versionInfo :: String
+versionInfo =
+ "VeriFuzz "
+ <> showVersion version
+ <> " ("
+ <> $(gitCommitDate)
+ <> " "
+ <> $(gitHash)
+ <> ")"
+
-- | Generate a specific number of random bytestrings of size 256.
randomByteString :: C.CtrDRBG -> Int -> [ByteString] -> [ByteString]
randomByteString gen n bytes