diff options
author | Yann Herklotz Grave <git@yannherklotzgrave.com> | 2019-03-01 12:32:21 +0000 |
---|---|---|
committer | Yann Herklotz Grave <git@yannherklotzgrave.com> | 2019-03-01 12:32:56 +0000 |
commit | 1374e08e67a9c3cedeaaddbf381b03260194a803 (patch) | |
tree | 42ffbd15189592d3a46eaf8d709e708f3d26d2c7 /src/VeriFuzz/Icarus.hs | |
parent | e7631d6561538e35eafb50ffb86066b97cbc0070 (diff) | |
download | verismith-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.hs | 16 |
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 |