From 22f24805cba393c92c3adde289a8412ead5ecd65 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Mon, 31 Dec 2018 19:13:36 +0100 Subject: Adding code to Icarus --- src/Test/VeriFuzz/Simulator/Icarus.hs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src') 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"] -- cgit