From 7f40b48b493b33f7ea2c72ea55757e2131c63d1c Mon Sep 17 00:00:00 2001 From: alexmadison Date: Thu, 3 Mar 2022 10:47:37 +0100 Subject: [PATCH] arbtree init, using or2s for now --- test/unit_tests/arbtree_5/run/prsim.out | 85 +++++++++++++++++++++++ test/unit_tests/arbtree_5/run/prsim.pdf | Bin 0 -> 24639 bytes test/unit_tests/arbtree_5/run/test.prs | 55 +++++++++++++++ test/unit_tests/arbtree_5/test.act | 41 +++++++++++ test/unit_tests/arbtree_5/test.prsim | 88 ++++++++++++++++++++++++ 5 files changed, 269 insertions(+) create mode 100644 test/unit_tests/arbtree_5/run/prsim.out create mode 100644 test/unit_tests/arbtree_5/run/prsim.pdf create mode 100644 test/unit_tests/arbtree_5/run/test.prs create mode 100644 test/unit_tests/arbtree_5/test.act create mode 100644 test/unit_tests/arbtree_5/test.prsim diff --git a/test/unit_tests/arbtree_5/run/prsim.out b/test/unit_tests/arbtree_5/run/prsim.out new file mode 100644 index 0000000..9354b65 --- /dev/null +++ b/test/unit_tests/arbtree_5/run/prsim.out @@ -0,0 +1,85 @@ +t.in[0] t.out t.in[2] t.in[3] t.at.tmp[6] t.at.tmp[5] t.at.tmp[8] t.in[4] t.at.arbs[1]._y t.in[1] t.at.arbs[2]._y t.at.arbs[3]._y t.at.arbs[0]._y +0 +1 + 0 t.in[0] : 0 + 0 t.in[4] : 0 + 0 t.in[3] : 0 + 0 t.in[2] : 0 + 0 t.in[1] : 0 + 1 t.at.arbs[1]._y : 1 [by t.in[2]:=0] + 7092 t.at.arbs[0]._y : 1 [by t.in[1]:=0] + 7094 t.at.tmp[5] : 0 [by t.at.arbs[0]._y:=1] + 10468 t.at.tmp[6] : 0 [by t.at.arbs[1]._y:=1] + 15221 t.at.arbs[2]._y : 1 [by t.at.tmp[6]:=0] + 16358 t.at.tmp[8] : 0 [by t.at.arbs[2]._y:=1] + 16472 t.at.arbs[3]._y : 1 [by t.at.tmp[8]:=0] + 81838 t.out : 0 [by t.at.arbs[3]._y:=1] +[] setting all low +[] setting bit 0 high + 81838 t.in[0] : 1 + 83564 t.at.arbs[0]._y : 0 [by t.in[0]:=1] + 83603 t.at.tmp[5] : 1 [by t.at.arbs[0]._y:=0] + 83618 t.at.arbs[2]._y : 0 [by t.at.tmp[5]:=1] + 84109 t.at.tmp[8] : 1 [by t.at.arbs[2]._y:=0] + 84122 t.at.arbs[3]._y : 0 [by t.at.tmp[8]:=1] + 84162 t.out : 1 [by t.at.arbs[3]._y:=0] +[] setting all low + 84162 t.in[0] : 0 + 84577 t.at.arbs[0]._y : 1 [by t.in[0]:=0] + 84597 t.at.tmp[5] : 0 [by t.at.arbs[0]._y:=1] + 90658 t.at.arbs[2]._y : 1 [by t.at.tmp[5]:=0] + 90705 t.at.tmp[8] : 0 [by t.at.arbs[2]._y:=1] + 90721 t.at.arbs[3]._y : 1 [by t.at.tmp[8]:=0] + 134819 t.out : 0 [by t.at.arbs[3]._y:=1] +[] setting bit 1 high + 134819 t.in[1] : 1 + 148543 t.at.arbs[0]._y : 0 [by t.in[1]:=1] + 148547 t.at.tmp[5] : 1 [by t.at.arbs[0]._y:=0] + 157676 t.at.arbs[2]._y : 0 [by t.at.tmp[5]:=1] + 157691 t.at.tmp[8] : 1 [by t.at.arbs[2]._y:=0] + 200939 t.at.arbs[3]._y : 0 [by t.at.tmp[8]:=1] + 237870 t.out : 1 [by t.at.arbs[3]._y:=0] +[] setting all low + 237870 t.in[1] : 0 + 237925 t.at.arbs[0]._y : 1 [by t.in[1]:=0] + 289578 t.at.tmp[5] : 0 [by t.at.arbs[0]._y:=1] + 319358 t.at.arbs[2]._y : 1 [by t.at.tmp[5]:=0] + 333207 t.at.tmp[8] : 0 [by t.at.arbs[2]._y:=1] + 358019 t.at.arbs[3]._y : 1 [by t.at.tmp[8]:=0] + 372362 t.out : 0 [by t.at.arbs[3]._y:=1] +[] setting bit 2 high + 372362 t.in[2] : 1 + 372784 t.at.arbs[1]._y : 0 [by t.in[2]:=1] + 421498 t.at.tmp[6] : 1 [by t.at.arbs[1]._y:=0] + 421499 t.at.arbs[2]._y : 0 [by t.at.tmp[6]:=1] + 421500 t.at.tmp[8] : 1 [by t.at.arbs[2]._y:=0] + 441705 t.at.arbs[3]._y : 0 [by t.at.tmp[8]:=1] + 441987 t.out : 1 [by t.at.arbs[3]._y:=0] +[] setting all low + 441987 t.in[2] : 0 + 442755 t.at.arbs[1]._y : 1 [by t.in[2]:=0] + 442758 t.at.tmp[6] : 0 [by t.at.arbs[1]._y:=1] + 465199 t.at.arbs[2]._y : 1 [by t.at.tmp[6]:=0] + 465750 t.at.tmp[8] : 0 [by t.at.arbs[2]._y:=1] + 466821 t.at.arbs[3]._y : 1 [by t.at.tmp[8]:=0] + 467775 t.out : 0 [by t.at.arbs[3]._y:=1] +[] setting bit 3 high + 467775 t.in[3] : 1 + 468856 t.at.arbs[1]._y : 0 [by t.in[3]:=1] + 523326 t.at.tmp[6] : 1 [by t.at.arbs[1]._y:=0] + 524308 t.at.arbs[2]._y : 0 [by t.at.tmp[6]:=1] + 524326 t.at.tmp[8] : 1 [by t.at.arbs[2]._y:=0] + 528339 t.at.arbs[3]._y : 0 [by t.at.tmp[8]:=1] + 532342 t.out : 1 [by t.at.arbs[3]._y:=0] +[] setting all low + 532342 t.in[3] : 0 + 577243 t.at.arbs[1]._y : 1 [by t.in[3]:=0] + 598827 t.at.tmp[6] : 0 [by t.at.arbs[1]._y:=1] + 603587 t.at.arbs[2]._y : 1 [by t.at.tmp[6]:=0] + 604089 t.at.tmp[8] : 0 [by t.at.arbs[2]._y:=1] + 604292 t.at.arbs[3]._y : 1 [by t.at.tmp[8]:=0] + 606146 t.out : 0 [by t.at.arbs[3]._y:=1] +[] setting bit 4 high + 606146 t.in[4] : 1 + 606285 t.at.arbs[3]._y : 0 [by t.in[4]:=1] + 642631 t.out : 1 [by t.at.arbs[3]._y:=0] diff --git a/test/unit_tests/arbtree_5/run/prsim.pdf b/test/unit_tests/arbtree_5/run/prsim.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d4ea311e86690afad9ebc85a840b5d84233475c2 GIT binary patch literal 24639 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 LjE"t.at.arbs[0]._y"- +~("t.at.arbs[0].a"|"t.at.arbs[0].b")->"t.at.arbs[0]._y"+ +"t.at.arbs[0]._y"->"t.at.arbs[0].y"- +~("t.at.arbs[0]._y")->"t.at.arbs[0].y"+ +"t.at.arbs[1].a"|"t.at.arbs[1].b"->"t.at.arbs[1]._y"- +~("t.at.arbs[1].a"|"t.at.arbs[1].b")->"t.at.arbs[1]._y"+ +"t.at.arbs[1]._y"->"t.at.arbs[1].y"- +~("t.at.arbs[1]._y")->"t.at.arbs[1].y"+ +"t.at.arbs[2].a"|"t.at.arbs[2].b"->"t.at.arbs[2]._y"- +~("t.at.arbs[2].a"|"t.at.arbs[2].b")->"t.at.arbs[2]._y"+ +"t.at.arbs[2]._y"->"t.at.arbs[2].y"- +~("t.at.arbs[2]._y")->"t.at.arbs[2].y"+ +"t.at.arbs[3].a"|"t.at.arbs[3].b"->"t.at.arbs[3]._y"- +~("t.at.arbs[3].a"|"t.at.arbs[3].b")->"t.at.arbs[3]._y"+ +"t.at.arbs[3]._y"->"t.at.arbs[3].y"- +~("t.at.arbs[3]._y")->"t.at.arbs[3].y"+ += "t.at.tmp[5]" "t.at.arbs[2].a" += "t.at.tmp[5]" "t.at.arbs[0].y" += "t.at.tmp[6]" "t.at.arbs[2].b" += "t.at.tmp[6]" "t.at.arbs[1].y" += "t.at.tmp[8]" "t.at.arbs[3].a" += "t.at.tmp[8]" "t.at.arbs[2].y" += "t.at.supply.vdd" "t.at.arbs[3].vdd" += "t.at.supply.vdd" "t.at.arbs[2].vdd" += "t.at.supply.vdd" "t.at.arbs[1].vdd" += "t.at.supply.vdd" "t.at.arbs[0].vdd" += "t.at.supply.vss" "t.at.arbs[3].vss" += "t.at.supply.vss" "t.at.arbs[2].vss" += "t.at.supply.vss" "t.at.arbs[1].vss" += "t.at.supply.vss" "t.at.arbs[0].vss" += "t.at.in[0]" "t.at.arbs[0].a" += "t.at.in[0]" "t.at.tmp[0]" += "t.at.in[1]" "t.at.arbs[0].b" += "t.at.in[1]" "t.at.tmp[1]" += "t.at.in[2]" "t.at.arbs[1].a" += "t.at.in[2]" "t.at.tmp[2]" += "t.at.in[3]" "t.at.arbs[1].b" += "t.at.in[3]" "t.at.tmp[3]" += "t.at.in[4]" "t.at.arbs[3].b" += "t.at.in[4]" "t.at.tmp[9]" += "t.at.in[4]" "t.at.tmp[7]" += "t.at.in[4]" "t.at.tmp[4]" += "t.at.out" "t.at.arbs[3].y" += "t.at.out" "t.at.tmp[10]" += "Vdd" "t.at.supply.vdd" += "GND" "t.at.supply.vss" += "t.out" "t.at.out" += "t.in[0]" "t.at.in[0]" += "t.in[1]" "t.at.in[1]" += "t.in[2]" "t.at.in[2]" += "t.in[3]" "t.at.in[3]" += "t.in[4]" "t.at.in[4]" diff --git a/test/unit_tests/arbtree_5/test.act b/test/unit_tests/arbtree_5/test.act new file mode 100644 index 0000000..bb6cbb8 --- /dev/null +++ b/test/unit_tests/arbtree_5/test.act @@ -0,0 +1,41 @@ +/************************************************************************* + * + * This file is part of ACT dataflow neuro library. + * It's the testing facility for cell_lib_std.act + * + * Copyright (c) 2022 University of Groningen - Ole Richter + * Copyright (c) 2022 University of Groningen - Hugh Greatorex + * Copyright (c) 2022 University of Groningen - Michele Mastella + * Copyright (c) 2022 University of Groningen - Madison Cotteret + * + * This source describes Open Hardware and is licensed under the CERN-OHL-W v2 or later + * + * You may redistribute and modify this documentation and make products + * using it under the terms of the CERN-OHL-W v2 (https:/cern.ch/cern-ohl). + * This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY + * AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-W v2 + * for applicable conditions. + * + * Source location: https://git.web.rug.nl/bics/actlib_dataflow_neuro + * + * As per CERN-OHL-W v2 section 4.1, should You produce hardware based on + * these sources, You must maintain the Source Location visible in its + * documentation. + * + ************************************************************************** + */ + +import "../../dataflow_neuro/treegates.act"; +import globals; + +open tmpl::dataflow_neuro; + +defproc arbtree_5 (bool? in[5]; bool! out){ + arbtree<5> at(.in=in, .out=out); + at.supply.vss = GND; + at.supply.vdd = Vdd; + +} + +arbtree_5 t; \ No newline at end of file diff --git a/test/unit_tests/arbtree_5/test.prsim b/test/unit_tests/arbtree_5/test.prsim new file mode 100644 index 0000000..b742486 --- /dev/null +++ b/test/unit_tests/arbtree_5/test.prsim @@ -0,0 +1,88 @@ +watchall + +system "echo '0'" + +set t.in[0] 0 +set t.in[1] 0 +set t.in[2] 0 +set t.in[3] 0 +set t.in[4] 0 + +system "echo '1'" + +cycle +mode run + +# assert t.out 0 + + +system "echo '[] setting all low'" +set t.in[0] 0 +set t.in[1] 0 +set t.in[2] 0 +set t.in[3] 0 +set t.in[4] 0 +cycle + +system "echo '[] setting bit 0 high'" +set t.in[0] 1 +cycle + + +system "echo '[] setting all low'" +set t.in[0] 0 +set t.in[1] 0 +set t.in[2] 0 +set t.in[3] 0 +set t.in[4] 0 +cycle + + +system "echo '[] setting bit 1 high'" +set t.in[0] 0 +set t.in[1] 1 +cycle + + +system "echo '[] setting all low'" +set t.in[0] 0 +set t.in[1] 0 +set t.in[2] 0 +set t.in[3] 0 +set t.in[4] 0 +cycle + + +system "echo '[] setting bit 2 high'" +set t.in[1] 0 +set t.in[2] 1 +cycle + + +system "echo '[] setting all low'" +set t.in[0] 0 +set t.in[1] 0 +set t.in[2] 0 +set t.in[3] 0 +set t.in[4] 0 +cycle + + +system "echo '[] setting bit 3 high'" +set t.in[2] 0 +set t.in[3] 1 +cycle + + +system "echo '[] setting all low'" +set t.in[0] 0 +set t.in[1] 0 +set t.in[2] 0 +set t.in[3] 0 +set t.in[4] 0 +cycle + +system "echo '[] setting bit 4 high'" +set t.in[3] 0 +set t.in[4] 1 +cycle \ No newline at end of file