aboutsummaryrefslogtreecommitdiffstats
path: root/src/VeriFuzz/Icarus.hs
diff options
context:
space:
mode:
authorYann Herklotz Grave <git@yannherklotzgrave.com>2019-03-01 12:32:21 +0000
committerYann Herklotz Grave <git@yannherklotzgrave.com>2019-03-01 12:32:56 +0000
commit1374e08e67a9c3cedeaaddbf381b03260194a803 (patch)
tree42ffbd15189592d3a46eaf8d709e708f3d26d2c7 /src/VeriFuzz/Icarus.hs
parente7631d6561538e35eafb50ffb86066b97cbc0070 (diff)
downloadverismith-1374e08e67a9c3cedeaaddbf381b03260194a803.tar.gz
verismith-1374e08e67a9c3cedeaaddbf381b03260194a803.zip
[Fix #37] Fix types in the simulator with more general functions
Diffstat (limited to 'src/VeriFuzz/Icarus.hs')
-rw-r--r--src/VeriFuzz/Icarus.hs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/VeriFuzz/Icarus.hs b/src/VeriFuzz/Icarus.hs
index 3d62c23..0a807dc 100644
--- a/src/VeriFuzz/Icarus.hs
+++ b/src/VeriFuzz/Icarus.hs
@@ -12,7 +12,6 @@ Icarus verilog module.
module VeriFuzz.Icarus where
-import Control.Lens
import Crypto.Hash (Digest, hash)
import Crypto.Hash.Algorithms (SHA256)
import Data.Binary (encode)
@@ -32,18 +31,18 @@ import Prelude hiding (FilePath)
import Shelly
import VeriFuzz.AST
import VeriFuzz.CodeGen
-import VeriFuzz.General
-import VeriFuzz.Internal.AST
+import VeriFuzz.Internal
import VeriFuzz.Mutate
data Icarus = Icarus { icarusPath :: FilePath
, vvpPath :: FilePath
}
+ deriving (Eq, Show)
-instance Simulator Icarus where
+instance Tool Icarus where
toText _ = "iverilog"
-instance Simulate Icarus where
+instance Simulator Icarus where
runSim = runSimIcarus
runSimWithFile = runSimIcarusWithFile
@@ -78,20 +77,21 @@ mask = T.replace "x" "0"
callback :: ByteString -> Text -> ByteString
callback b t = b <> convert (mask t)
-runSimIcarus :: Icarus -> ModDecl -> [ByteString] -> Sh ByteString
-runSimIcarus sim m bss = do
+runSimIcarus :: Icarus -> SourceInfo -> [ByteString] -> Sh ByteString
+runSimIcarus sim rinfo bss = do
let tb = ModDecl
"main"
[]
[]
[ Initial
- $ fold (addDisplay $ assignFunc (m ^. modInPorts) <$> bss)
+ $ fold (addDisplay $ assignFunc (_modInPorts m) <$> bss)
<> (SysTaskEnable $ Task "finish" [])
]
let newtb = instantiateMod m tb
let modWithTb = VerilogSrc $ Description <$> [newtb, m]
writefile "main.v" $ genSource modWithTb
runSimWithFile sim "main.v" bss
+ where m = mainModule rinfo
runSimIcarusWithFile :: Icarus -> FilePath -> [ByteString] -> Sh ByteString
runSimIcarusWithFile sim f _ = do