aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-12-31 19:13:36 +0100
committerYann Herklotz <ymherklotz@gmail.com>2018-12-31 19:13:36 +0100
commit22f24805cba393c92c3adde289a8412ead5ecd65 (patch)
tree88dc6e4678a06d90bf97ff3b20706fc7f7d1f80e /src
parentde580a7d4b5f4def9f0b71c6cff33ccad45d678b (diff)
downloadverismith-22f24805cba393c92c3adde289a8412ead5ecd65.tar.gz
verismith-22f24805cba393c92c3adde289a8412ead5ecd65.zip
Adding code to Icarus
Diffstat (limited to 'src')
-rw-r--r--src/Test/VeriFuzz/Simulator/Icarus.hs18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/Test/VeriFuzz/Simulator/Icarus.hs b/src/Test/VeriFuzz/Simulator/Icarus.hs
index 119544f..e59e4ab 100644
--- a/src/Test/VeriFuzz/Simulator/Icarus.hs
+++ b/src/Test/VeriFuzz/Simulator/Icarus.hs
@@ -16,13 +16,13 @@ module Test.VeriFuzz.Simulator.Icarus where
import Data.ByteString (ByteString)
import qualified Data.ByteString as B
+import Data.Hashable
import Data.Text (Text)
import qualified Data.Text as T
import Prelude hiding (FilePath)
import Shelly
import Test.VeriFuzz.Simulator.General
-import Test.VeriFuzz.Verilog.AST
-import Test.VeriFuzz.Verilog.CodeGen
+import Test.VeriFuzz.Verilog
import Text.Shakespeare.Text (st)
data Icarus = Icarus { icarusPath :: FilePath }
@@ -34,4 +34,16 @@ instance Simulate Icarus where
runSim = runSimIcarus
runSimIcarus :: Icarus -> ModDecl -> [ByteString] -> Sh Int
-runSimIcarus sim mod inp = return 0
+runSimIcarus sim mod tst = do
+ let tb = ModDecl "main" [] []
+ [ Initial $ SeqBlock
+ [ SysTaskEnable $ Task "display"
+ [ Str "21832" ]
+ , SysTaskEnable $ Task "finish" []
+ ]
+ ]
+ let newtb = instantiateMod mod tb
+ let modWithTb = VerilogSrc $ Description <$> [newtb, mod]
+ writefile "main.v" $ genSource modWithTb
+ run_ "iverilog" ["-o", "main", "main.v"]
+ hash <$> run "vvp" ["main"]