aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2019-02-07 18:14:34 +0000
committerYann Herklotz <ymherklotz@gmail.com>2019-02-07 18:14:34 +0000
commit5b6430a8c88956c865f6ef3fe02efdc6f13823ee (patch)
tree2a6635400babce21cd2e1991e9f1bdc646fd573c /src
parenta0cc699e8b90375d2dcd13f0f549d9b70feee442 (diff)
downloadverismith-5b6430a8c88956c865f6ef3fe02efdc6f13823ee.tar.gz
verismith-5b6430a8c88956c865f6ef3fe02efdc6f13823ee.zip
Add runner for verilog file
Diffstat (limited to 'src')
-rw-r--r--src/VeriFuzz/Icarus.hs13
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"])