From 5588fafebdf5ce1e149fd3daef6249e9b0dad98d Mon Sep 17 00:00:00 2001 From: Yehowshua Immanuel Date: Mon, 24 Mar 2025 23:23:39 -0400 Subject: [PATCH] refactor into standalone TagEngineTester --- Makefile | 2 +- bs/Tests/TagEngineTester.bs | 48 +++++++++++++++++++++++++++++++++++++ bs/Top.bs | 47 +++--------------------------------- 3 files changed, 52 insertions(+), 45 deletions(-) create mode 100644 bs/Tests/TagEngineTester.bs diff --git a/Makefile b/Makefile index 52863b1..7579e84 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ $(BDPI_OBJ): $(BDPI_SRC) BSC_LINK_FLAGS += -keep-fires -BSC_PATHS = -p bs/:bsv/:+ +BSC_PATHS = -p bs/:bs/Tests/:bsv/:+ .PHONY: help help: diff --git a/bs/Tests/TagEngineTester.bs b/bs/Tests/TagEngineTester.bs new file mode 100644 index 0000000..9cbab60 --- /dev/null +++ b/bs/Tests/TagEngineTester.bs @@ -0,0 +1,48 @@ +package TagEngineTester(mkTagEngineTester) where + +import TagEngine +import ActionSeq + +mkTagEngineTester :: Module Empty +mkTagEngineTester = do + tagEngine :: TagEngine 5 <- mkTagEngine + count :: Reg (UInt 4) <- mkReg 0; + + s :: ActionSeq + s <- + let + requestTagAction :: Action + requestTagAction = + do + tag <- tagEngine.requestTag + $display "got tag : " (fshow tag) + + retireTagAction :: UInt 3 -> Action + retireTagAction tag = + do + res <- tagEngine.retireTag tag + $display "retiring tag : " (fshow tag) " " (fshow res) + action {} + + in + actionSeq $ + do requestTagAction + |> do requestTagAction + |> do requestTagAction + |> do retireTagAction 3 + |> do requestTagAction + |> do requestTagAction + |> do retireTagAction 4 + |> do retireTagAction 4 + |> do retireTagAction 0 + |> do requestTagAction + |> do requestTagAction + |> do retireTagAction 1 + |> do requestTagAction + + addRules $ + rules + "testIncrement": when (count < 10) ==> + do + count := count + 1 + s.start \ No newline at end of file diff --git a/bs/Top.bs b/bs/Top.bs index 023fce2..5541bf6 100644 --- a/bs/Top.bs +++ b/bs/Top.bs @@ -10,6 +10,8 @@ import TagEngine import List import ActionSeq +import TagEngineTester + type FCLK = 25000000 type BAUD = 9600 @@ -102,56 +104,13 @@ mkSim :: Module Empty mkSim = do let cfg :: BRAM_Configure = defaultValue - tagEngine :: TagEngine 5 <- mkTagEngine + tagEngineTester :: Empty <- mkTagEngineTester count :: Reg (UInt 4) <- mkReg 0; initCFunctions :: Reg Bool <- mkReg False; core :: Core FCLK <- mkCore; - s :: ActionSeq - s <- - let - requestTagAction :: Action - requestTagAction = - do - tag <- tagEngine.requestTag - $display "got tag : " (fshow tag) - in - actionSeq $ - do requestTagAction - |> do requestTagAction - |> do requestTagAction - |> do - res <- tagEngine.retireTag 3 - $display "retiring tag : 3 " (fshow res) - action {} - |> do requestTagAction - |> do requestTagAction - |> do - res <- tagEngine.retireTag 4 - $display "retiring tag : 4 " (fshow res) - action {} - |> do - res <- tagEngine.retireTag 4 - $display "retiring tag : 4 " (fshow res) - action {} - |> do - res <- tagEngine.retireTag 0 - $display "retiring tag : 0 " (fshow res) - action {} - |> do requestTagAction - |> do requestTagAction - |> do - res <- tagEngine.retireTag 1 - $display "retiring tag : 1 " (fshow res) - action {} - |> do requestTagAction - addRules $ rules - "testIncrement": when (count < 10) ==> - do - count := count + 1 - s.start "initCFunctionsOnce": when not initCFunctions ==> do initTerminal