diff options
-rw-r--r-- | src/VeriFuzz/Icarus.hs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/VeriFuzz/Icarus.hs b/src/VeriFuzz/Icarus.hs index 0519b93..b5b2b02 100644 --- a/src/VeriFuzz/Icarus.hs +++ b/src/VeriFuzz/Icarus.hs @@ -45,6 +45,7 @@ instance Simulator Icarus where instance Simulate Icarus where runSim = runSimIcarus + runSimWithFile = runSimIcarusWithFile defaultIcarus :: Icarus defaultIcarus = Icarus "iverilog" "vvp" @@ -91,7 +92,13 @@ runSimIcarus sim m bss = do let newtb = instantiateMod m tb let modWithTb = VerilogSrc $ Description <$> [newtb, m] writefile "main.v" $ genSource modWithTb - echoP "Run icarus" - run_ (icarusPath sim) ["-o", "main", "main.v"] + runSimWithFile sim "main.v" bss + +runSimIcarusWithFile :: Icarus -> FilePath -> [ByteString] -> Sh ByteString +runSimIcarusWithFile sim f _ = do + dir <- pwd + echoP "Icarus: Compile" + _ <- logger dir "icarus" $ run (icarusPath sim) ["-o", "main", toTextIgnore f] + echoP "Icarus: Run" B.take 8 . BA.convert . (hash :: ByteString -> Digest SHA256) <$> - runFoldLines (mempty :: ByteString) callback (vvpPath sim) ["main"] + logger dir "vvp" (runFoldLines (mempty :: ByteString) callback (vvpPath sim) ["main"]) |