Add cargo directory and change info.yaml file
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..e3dd6ee
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,7 @@
+[submodule "cargo/wb2axip"]
+	path = cargo/wb2axip
+	url = https://github.com/milovanovic/wb2axip.git
+[submodule "cargo/lis"]
+	path = cargo/lis
+	url = https://github.com/milovanovic/lis.git
+	branch = lisTest
diff --git a/cargo/Makefile b/cargo/Makefile
new file mode 100644
index 0000000..9e9b17e
--- /dev/null
+++ b/cargo/Makefile
@@ -0,0 +1,29 @@
+LIS_PATH = ./lis
+TOP_TEST_PATH = ./top/dv/LISTest/lis
+
+SIZE?=24
+export LIS_SIZE=$(SIZE)
+
+move_user_proj_example:
+	mv ../verilog/rtl/user_proj_example.v ./user_proj_example.v
+
+move_back_user_proj_example:
+	mv ./user_proj_example.v ../verilog/rtl/user_proj_example.v 
+	
+verilog_lis:
+	cd $(LIS_PATH); sbt -J-Xmx2048m -J-XX:MaxMetaspaceSize=2048m "runMain lis.LISTestApp"; cd -;
+
+test_lis:
+	cd $(LIS_PATH);sbt -J-Xmx2048m -J-XX:MaxMetaspaceSize=2048m "testOnly lis.LISTestSpec"; cd -;
+
+.PHONY: test_top
+test_top:
+	make move_user_proj_example
+	make verilog_lis
+	make test_lis
+	cd $(TOP_TEST_PATH); make all; cd -;
+	make move_back_user_proj_example
+
+clean_top:
+	cd $(TOP_TEST_PATH); make clean; cd -;
+	
diff --git a/cargo/README.md b/cargo/README.md
new file mode 100644
index 0000000..62554d1
--- /dev/null
+++ b/cargo/README.md
@@ -0,0 +1,17 @@
+
+LINSORTER - LinearINsertion SORTER 
+=======================================================
+
+Block diagram of the LinearINsertion SORTER is given below and detailed explanation of the each block is given inside submodules `lis` and `wb2axip`.
+
+![Global block scheme of the LINSORTER](./doc/images/LinearSorters.svg)
+
+This directory contains following submodules and directories:
+
+* Submodule `lis` -  contains a linear insertion sorter (LIS) generator written in [Chisel ](http://www.chisel-lang.org) hardware design language. It comprises description of three types of the linear insertion sorter, parameter definition, setup explanation and many other useful information related to blocks that are depicted at presented global block scheme.
+* Submodule  `wb2axip` - contains wishbone to AXI4 bridge. Current submodule is forked version of the [ZipCPU/wb2axip](https://github.com/ZipCPU/wb2axip). While all blocks inside LINSORTER use AXI4 memory mapped bus, this bridge was necessary to attach so that correct connection between processor and linear insertion sorters is established.
+* `doc` - contains global block scheme of the LINSORTER in svg and png format.
+* `top/dv/LISTest` - contains verilog testbenches mostly, together with .c files.
+* `top/rtl/LISTest` - contains `user_proj_example.v`.
+* Makefile - have targets for verilog generation (module LISTest) and for running scala tests described  inside `lis` submodule.
+
diff --git a/cargo/doc/images/LinearSorters.png b/cargo/doc/images/LinearSorters.png
new file mode 100644
index 0000000..eacb0e7
--- /dev/null
+++ b/cargo/doc/images/LinearSorters.png
Binary files differ
diff --git a/cargo/doc/images/LinearSorters.svg b/cargo/doc/images/LinearSorters.svg
new file mode 100644
index 0000000..c8785e1
--- /dev/null
+++ b/cargo/doc/images/LinearSorters.svg
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2241px" height="983px" viewBox="-0.5 -0.5 2241 983" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2020-12-10T16:32:54.597Z&quot; agent=&quot;5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36&quot; etag=&quot;mkKSIGr8LS0XvrnVfv9m&quot; version=&quot;14.0.0&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;qXFagdSMaphbRnIKP229&quot; name=&quot;Page-1&quot;&gt;7V1bd9u2lv41fjQXbsTlMU6TNLPac9omM23nxYu2aFtzZEmV5MTOrx9QEikSAK8CQEqiulZjkRJAYX/7gn3DFX7//PppFS2ffl1M4tkVApPXK/zTFUIQYC7/Sa687a4QAXcXHlfTyf5Dhwtfpj/i3cVwf/FlOonXhc9tFovZZrosXrxfzOfx/aZwLVqtFt+LH3tYzIqTLqPHWLvw5T6a6Vf/nE42T7urGANwuPFzPH182k8tb4ndneco/fT+o+unaLL4nruEP1zh96vFYrP76/n1fTxLFi9dl933PpbczZ5sFc83Tb4wiX5/d/PvT7PV4+LTp+uvr7+/fX++RnQ3zLdo9rL/yfun3bylaxDPJ++SpZTv5ou5vHjztHmeyXdQ/rnerBb/id8vZovV9tP4jockBPKO/NqenHT7uWi1yb2Xdz9OZ8koyWcf5J+5MR74fXx/n42erjxJx0kf5262uP/P16fpPL2xHzJ5MH159isWTwok3y/Wp3jxHG9Wb/ID3w+EDve0e8qROL22imfRZvqtCJRoj7fHbLhsht8WU/kkCOxZA0Gyx/ieMzgMi2OsFy+r+3j/tTxh9ZFIIHBhMMZ4cTC5Oo/xRhtM/pH77YdLW+y0wREUrYCUp1wOTQfMEAUzpIAZqGED6SiK4SSMmQmjgjIc7VAof/Zf2eTyzd97RG7f/PRaePe2f7davMwn8SS99zrdJEOAQAi4f78dJaCA798fBkrevOXe/BavpnLx49X+Wilsd2ioIgHYk2BH6opPQkQGxQqQURogcHixIpYJDzg93FXGb8omkIkjZinhH4nn6C33sWXygXXFT+XpmqXTgoLUln/shrTKnRDVM+ejRPWyFH3f4tUmfi1c2qvc6C4dAVwZMZRKKcDNvzwPMggB1WFGgCIZ85AqSLK2C4MhNKwMnW0SabLYEu6wRPSfl0V643q9FUvv5AcgWb4ebsq/Hvf/bke5Sy+8rOPV7XK1+L/b+DV6Xsox95+QD36nfkte202fXlaIVZRA35+mm/jLMtqKh+/SDjOp6Lyg1MlcDRuV+KVEvhagqNSuMTVQmYY6kakFGv/vdzB/eP3nHxp9+fWf5Qv9I/7jz+sQmWhsb0ETzRTNpo9Slf00ix82iiLam0x9L7kIDWuesaB1xuJHs5VcLANb/fL5i7z3eb582TjhFftkyhMBG3QoE4Er6aabZNLeUpdHPv+myqTf49cAaQX0yVpM5c7p3f7y83QySSYxLnmRKPZXfc8LKFvcHBmQgQrIFSNAUMcJ95ldegA7vtntojT8r+LHdVPgH0/Ze0mPxDLVaHu32GwWz41oO4vu4tlvi/V0M10Yx/xF+UCGG2cik+iYIAZMQOKMM+vNjofovigef45n3+JkwXRQLJoLw+Mxsdot0LDYfX9X8IImRNzA/SYZ7I77aQPbo4F/JW9rHPabYX63WbnTbLwzpnTr21L9M0d4XSpJW7uphaktM5CtKlNtLUGKQzTdjVJlIAKUgew5bIxWMWbtPH8WHDaZsyXzqPx9gHGFu6XW0SPBzCfEBGeO7iSk2+NyIGgjQgQCaD6JPWYgCAAX2Qt3dB+GuGoSeS/3Ygz7RSlvJz97RGl7TB69Lx8ISmlYBSAWQHE8SGklJ8g5wGEO+TyeRSmrs+bqnUjItNvlVx/QFadXAmF0ItvdRvS6hixgYe4uJJqdBkEFYq07ibAweSwGKWhsxD1OU9CwGiGAcpIGqPZUU0nDK9WhlDQopw6psyhbiTrUvQkvf7zeRpNomWyqPXoAhrDdY6iKVPImIwdacU41GWPa9dvYC5aoCQPxvl4s8Ugl8TAq2J29Ey9Mnez+ggiGvXny2tsOueu7l++wA6fFcN41MoUdeOoAKagD6srfIif0rcYHmIbAi2kIBFX6hnrLQiB8UNZFXRaClFcAdbMp6lIPDENbyzdQHE1hCBUuc5BvkMnhi2ZDhgpsyBHrmw/NdgkZlpVfx4dUMgs+3HXEktWzuOJOvpeJbrOBQj0wXMWdY9KnPWwLJgVBMUrFMQtoVxQbxmMcB5g1wqs9RLUzu0ZEWUZUMfmXchGo6VQtEFXciVECXGGpZKdlxeVfDigdDGWwKWr2xpApc/MdPHtNzIpq3JfCslbdEzIwABMYKugF3aCLhLIlJepIttS2+siEhzVPRsxPZkvPGymNMLbBSb6t8OFLXCgCUlThlHffGwrSZDjHUhdhMmLFEVZokbhcErdjbGKLlfrhnGOlgS90xIoFrAjAAs5yfnBrsKkZ2TmCvCcfXSqCkBQPnbcCOmwMw7nGCrFixVR5/ZqjSPH12UkVUpCXx2iXXM9SlOZ9hsalhuF+ZWs3EZAPDflqMS3vqGK1MjVOm2nXtpsIBJQ9Aed2fX9mbqJWJK8dbjL726F17imGw8JK7qmLfjfmpRRG9f73cFjVuAiqhZoUBDlXeNeNziE632xcW3yGVD4Lazbr2heKJbr1X2DUboythJNNWYd9c3IWfT5ow30crHEErQV/J6OoIbMuTN+IzavqHBsweTgsJkdAwazq5m3M1piAAEBE1eECSNTnas3S1o1JaiU/xKkx2Sr47FYZducLeLKMAdMGRak7Ws0pa84YSSZp0SxlCKg1ha7UXPrczbUWgjVf0H6MFzVnpbGM2+1fQBBXlB63x7hNtRzsxssDYTzIlFyIpKyka0ckzHiSP1rUSUlNAqUMuc7pSFshpRlXtXwVHvkF2z1kzIxoSF8eGiM6Up2lrNNAu7FBMRnCSvuh7sFWzGtG6t/YYyeZDDx4QS24MZqQq7XAHTEFoAjyQQmmzMLlRuNw13PUSyADmuo7ebx/TykwdPKIZt+jt/XtKo4mb/66N7jo1VLWIkwHaIYgxZIUIMwC3jkQC0PLInflOYYKj+n8dr2cTTe3wAEpnDTSaE8LTrAaUg5ZkDqXctRgfqmh+6mTSrdLJAcbAjnKS5wn02/JlPvlOgi63YKWNsbrJjNnt5Jq5R2QssvbhzqtHjhWsCKGgJXy5m+esfIjXi1GsJSBRcABgAXqct6FdHdTCtvB8tFsZ064yfZx1aSuhAq6eIeXRQXOPHYKLKnD0hPfz5oVkAhwvsi7SBA0ALZIK+MuhS2qKTIEQWVIBtN9OudFEUVQ0SFQQU8Wx5dFBT4EKugOC3JRVNg6BPumQupVNbmNXDDFMLYTWidMSmnA9XYu+X2FX7Loqlsjxuj7L1/90mQfEaiUT+K0Oec/LQ7aImarpUskQ7Ocxx8Vh3bdbSvUjY2DD/KSeJuEAQOaXdibzyDUzY8z3ighHOp5RAT0vl0NdfPjjDdHRiqgAVBB95+d8YbISAUwACro/rMz3hCZqJClf/RHAz3scMbbISMNaP+cQPXtUHjmVChmqVCpmtPGC/1RwXvb9PZ7nRZ5dkPZ/RCo8xzDAc61BO6asUrCpGBC20XlZsndVGdxvRFK21ONqU9HCwwSooKPXaEz1f0mfrOg6EU52I0cHZIBCHDv7Vhy1QwA4KtCNQNhWXvM0m5VhiKFS9UJDMIAUAs6gUudQLWhUdhX3w5M9T2/Y1i2qQ1thqhDTwXGxVW+GA7A9H7zDq15tlEKX0PRiWtKEV/f2k0Mq6PyljcQpOk+LHNe0QAyCLtyBVPi0rQZE7SuqCPqUc2E1tpwxSdjNSV4hFZ+wU0hD2aX5bgzqXgBAqRbWn5VvGjXiWPsmWoxiiVEECo9UwkLYO5Ioq7tY4hSV9+0B6U17hbt2kKcIawadGchO5XUGwApEwEptm3eOu+oFkBvDUDK+wUgIVb6koyRd7WFbOLvLSKGsQDk9gK8I2KSbNhWIztH0Fi36QRBUsIovS2EpDOzgCDRcmTnCLLSNGJEUC2CGKSBmpZzBGxMw7nGiiGBb8SKE6xgKRM6trA1YcUwnHOsVFWluoj4DyNoYbAQknTPK3UD7TUNjBiSLg7E0Hn4jInBB0AM3WY7EMOFe2moxGCABWg4yZLEcNiT20L6wRIGDYswxn4ibRw1TU2OVofXVMZbJlHMH+41TCRnk97z+O7hNCN4VNtZM1zsQ9Oxnw2Gqn+/4VlKrUMVtGQip4EEIryfL3OJ6GQSi0VftTN4qsLOGjzVnurICzy951BcIjyFN+EJHKGTAfNEjtGpR2HPuYjFlCaDeMCIZoV5jcKGwLv3RxULYcwnxCQWOLrD9ESzokKmioWkcJ3lMh87lgnqYqFh+octxoVNKkvXT9Ey+XMj2Sn+sUgGvFnm8nyy67nkHyMj5jD2MH2NU5TtlM1GkmiR8LKwVmMNRMA1shlqrOHhpKE8fPAhrGmdVWHLpHZ9w9RQqg2Eh6AIiaFLDVWO9m1+mhPXhqNIG85WF+QkXFn68E41KzRmq7cW6fcvq29brOhHug4fOZQpzvJ8T8f2yNGGSxq+OkMO1x6eeUIO0z3Ks+n64/Rhcfv88qqB6GysM9NJb8TYHI74NM6y80Na1p3c7BKWtLqTVfxY3g3QH23vFpvN4rkRbWfRXTz7bbGe7hW9NuYvygcy3NhCRVU/qOTcg0YIgUTt5G/PKjA2+S5g5EDVFBDJjev11pR6Jz8g1+lVR8svn7/Iex8/f/x3U8wUaVdjzlkgkH5WHaSGAlCIDSRh2uEK9kjCTXuqAkkeovsiRX6OZ9/iBNE6HRYvG39MO5AOHBmqM17TyWqiqjNRnB34WGhz5IAAw4geaYy1T/3vzU9BUht2VIV9qEIEUdF3ZZa0nnUfMrRg0ah3oq4IhHGRBanQG0xAnHmZfHkhUMvKzFP3QiAst2NErW/EnU9mIlAbjnLu6lA0LFD5wzs+t8xKqeQJeyG2VTZal5juyDEMx7A2nLXiP0O8AnhBDkGmsPqo6n2peqzY3jREEglVeUOe1T42nuHdbssLkWnLi9HVB3TF6ZVAfLCbXqKFligPazK7IKiQcw4IVOuTGDfA1UQOiUZkKf6riex1Q4wN55Ke8YbYwHS19PC7QTaWU1+wUOQEBdzgDPQqCYmxGnmUhEdJQh5SE2W9ir+s1cilir8koGoggmeZp+sgySK30SRaJgazR+veN1MAjR4CmujhNV6JWW28smMs6r/f/fF1sLqHQr06jBsKkqCJOdTuBBaJUbuNHlVPNWGZxmVUmAjr1/BmugP2jDWPgbmMNPAcjTI5wUcXlS8XlV6xRKmoOaLBt5OqPi9jFL/VVOaa5c8AGpQPhOn25xmLYqZtAurp4VcsY2TgOYUa9TEnrRBh15BKW1O1f2waEcZXeglE6foPJVglND3LQBiEOb9/17iV0F2ZvHJkWyEsgYjpJ9U0sRRY/db2cQvfchT4wlbqSbvB11Czk4Pz8OFrprUT+DLkB74aELcTewFiu9acoxxtKHSsCE+qD+cOcrnZHEPOStfEUfa5gFyNKG2NPuttqXCDhomt3ILqTqgUA206shjchHoPZtM2VTgzmA1Hro9+jGZ+jKfFavpD/sDIpivZhBE97dOzK4OQiq5vPunqu4WSviUiPJOrfQVZQqg7HVKem0y/XTWJsZBijAWkK3+4uKeBxuGtwznqVEZ5Qrev8tnuspqk6TyO5GOBz/N1Ag7Jkgh8WUiSrvKC504dQBNG2eXtktmIJOmNvTU8641Pdr97t2q567uXmUtsIDvrw5SVs+pCxqyJRBZktA/sVGl3BzbktcDeutKOhrU2kRHWHN1gE6wXL5svm1UcPR8HzyH4FZPH/rJ/JGgBmnp7i5CY4tpeDwUL68M9rRFTIuDcAJG+5x9uPurTSy1eD8F6YTpAXDqBIhImKHKv2h+VJ5QNXUgOAvLbTerxkD8ZAe2EEYCREfyawej4uvdBAvTl6yiTm0ORca8yeRL9/u7m359mq8fFp0/XX19/f/v+fA0buC4f5VIsmy9Agpn5PL7fRHfpCKDapAdpgfp+YUIOAv0QT4etEIxLYzTpy726J30YUyU2BuIrptKYzh3MyYvuDQhZwEDu1TFmRpW6QVQ5qr1+dWYKnHCORrW4qZeaewIgYajVd5WZYZYDtR1RRj9z43y5Y1Gxv2toqeLOsWxGRW304bJS5CwRVhTrdxE3cL+rPDnzT3DcoirpxtGU9EdWBxxLoj5tMT27aFSE3hXhmDg+KkIdFaZeKaMiPDtF2CSvzrmnQKiNpZje5hSCIJ/WLdJz5gqrJApJQYK44o4+U8PaZiNWkn0gToDr4vZcoWN6dGjrvDHLabDmp0tRVtqruYhtu+2KzMS1clivn8TFU0CnJnlAEa5YEc5t8Zniys1hKtA4i1sAmvKBBgrAoWXOKqqQAXpE3myouD2xmwbxSCjZO2xf9uQUZcTkwRtR1hFltiAGnUHMPJFTiEFoBWPjSdTqgRKweCAZK5I20bgdAbntkN9uaNfRHtjukJwRQw0xlJBSj+FledHybh4HXeEUHjGLc2ShEVn+kZV0eoC5iLUbZFXP4hxZ3s+RHZGFGJd3uXOZVT2Lc2RZacJdjoHuh8NK0Kze/sq/+Tt5E4Tp259e8zd/ersypvIoOM0jOn6dbv46jCnf/Z2OKP8+DJ+8SUcvxfQODlVLneYj7kha8UkxMC4hJCBFzOIwAKQbOyCpoAtnJhVHhvrItrYsIDn1QPkdIp3N8b7FSrn8KL9VZIo6nc1zkrUzYKWWyKl+oWCIymdoXfpsD1l66GM63xVe3kINYwON5rU/eI0ThQqA13T3Yo7qgUrIovv8s4LYi6ILGhhd6kpj9VKX3crW1boYkzLev6cUGJIyotnsVpKvPDHDU/HIUEFDhgWaitxUz6D5Ea8WI2pKUEMHhhrdzwgcUGMgvRASW0zRyAfXbl+5dDA1s3M0cKF8B0sDub8JSd800H1XZ80HSQ1wgQqUD4ET9LTSs+YEjQrDkEe6t013BJwRFdS4NhoCDXRfDL4kGpAh0ED3WpBLogEdAg0apCWe6NG4UEAQoCaiB0IRUH3VLZ2PW7Lw7dLxTv18XCjCsMpLK9eaKYM2D63xyqEh0Ya2lcUp1DYD2HS8gNuoAjb5JcqBdH4H6EoqsCAspz84BlrVQ4f60NagxVmgzIZ6AJfuvphN19tKytvnl9dz1tYKa1MitYGociy56mtTQhndqTFWCHo7Wmab0ahs8LdnqLcFiMNqQWg4J+BkKnnbN6vUO9vAvqt4ITaV8bbWzWPE35CxlU/wxEXCM3hEpnLYdmjXsX1sJTdrxJABQ7o6T+ksoLVE5a6TOMfVmI3kHVcUAmtpyl0ncY4rK2XYI65a4QpDa0nKXSdxjis3BdQnkaM8eHQmx0rn03lpUdOFsHOmcI0OTcy1Yz0w9qHqptT6JKDqOZ0+3K9sbTp9mos5FI4RJFTy0EPOjsinT/q4lnIJ1Ue2lk9PgPo7BPSTT2+n1ny0NAz59JXGpZ10elhIp1cmgX1m0xtOu8qy6XWEnVEqZTHeEFIwqFRKgjSyHLLpz5ouijXFB0YXU1nqmE3fN2iKzCzXbFigKW9wOWbTDwc1aGCo0X3hZ51FLJSQVgj7zxgznPJ41jnEKg2kddx7Nj3RfaxnzQcYKMH2EA+BE3SP5Flzgk6FQcgj3dnmYjMwHCoo8ogNgAah7ok572x6VScMgQa61+K8s+mLNNj6jHqnge6i0Ehwutn0UMmmLxE9fWTTh6YkmTEb8spXNmSomQYEDywbMmyXl3DSZ8wNLaLAFMFBFAncPBisjETUY8ZdxwbCdj34zqJspzz6LvToe6uqnfKRaeiwaEff0fuuqwhN7s9yGJ1l0Q4v1FMo5D8GWFUjJ/FLdyU7XCnZMYdq3EKL6hJqNl1/ni9fNudesqO2PRfUUAHgt0yHDqiz5hnlm1GuBCq4CEJ4qNPrKjsYajWua2uDjTZrXwhjhARU38Bk1YAoELm60K4Jt0wJuBGOPSOsXVbtiDCLMgzhgKmwYnlYQdwRVjR1/WWwapb9Zw9W5R0WlyWB+9Znu+qHHX6dPicJIOBf8Xf5/z8Wz9Fc9+3cfP7ytSbcf7cyJAAsSz1AR54V297QCZWT05PaZKpbOtDk/OTOTB2uBwEuywdng7RUaTFAQ6loNMr69p2lpbWXefDoWt6czh/3tnG/nlaqZugwI+t73eQg4GaTs1OCGjmOO3lzYEYAQ8XkTirCwkGWCks3NyxDZVxWOa4tFwhTo3LJz6E1j0qg/qiF77jxlCBgpQL2Es+qM9PZAWyTkyB8wFaB4HZaLxA8oTOLTwGCXds+aOIy1AdzBbbcXI7BdkJHEF8U2KqFZ+/1rAiYdvPHbIJV47yU/i0sY82SIs3MYuHMLDaeU3pJG+LuW6WnxWr6Q/7AyKbbpCtCHO6skeEc0rvperOravNJVs+xOpUWDPNMoPa2j21ydOejXItl8xVIeHw+j+830V06AqhZGUwDRdmkrQjzvj0Q5OPKIhXRhYUSBbWSHdbsYOGsnEzpx4ytJv1ADI7ropdHoWSa8t666try9sn8dCnOSu2fYmPNwocdWb7QSrqNH8v3JPCpSR/FbY0VGd0WoSmylGFsbcGMsziGYI8+0pPffEmNmAu2F2Ob2xSNzlsxCiuGZq7wx4iq4xn0IgdHj6czELpBIHCFwBCqCAQ+xCDS9zsdENgm661ry6uL6PWD1ZRJRAOca+/TNY8OC8O4OZT7zXJCxmbpp4k6iTk+ISbUcXSH6UmgLutpnEOH0FO2W6MOGdAcUu30Bm+oK2+M0zTnCaJiztPO3cevPqArTq/EFtjNPILek5Q0YgAYEJ3IBZ9GBebsOy2MzdkvJqnFBomxsl1jkNaQGHv15xlap5/vAQg6w9VSw2txNDI0HJ/Ob6NJtEw80vapMhRXN1JqFRLTu5oufr3ehgYaxVZc9VqKK5m5XZt3tZ5Jydu1Naw5MMfRTWJgadNP5182qzh6rm8ipj1g+Ucvot8YgKqNQAo1oQYbIf1GnjfUcmJ7vJEGh8cWs1Y3AAQX6azktAoacL30pvV2gNAjZnG9ORDeHSEXgqyw0FdYOf5ZmkScH18mSOgRszhHlndnx4gslLiHmYWTXWqQVT2Lc2RZCfOPyGqHrFBKE+FcZlXP4hxZui8ma7nuopPcMHbsRK3j4zTIWyQ9t9tFwuQ/cdhwfZhUYWBgVDH6UXZUgZdDFcQCMJzW1EjolRwZVVz05h0oVcjAqNJjycOJ19dgUbV7ZhgGOCcVUVerBFXOAouzNOti0DoZgqSBp5IfJ2p+g5LRqD61h65PSJicuJ6AfuKZPViI/oEeVs5iDegqUkPvSMXAikv1QkVyG6R2dptWIpWKyllcIdU8rWOkWnHRjjK1J6TWSO7eyyoxQPX46r2sUs3kozxr9dxXYSUGtYlVY2Glz8LK7hhxWFqJQblP0SdZfedkqVKQEZOs7SvbBDfpFeS8xpKAUK2xFKEBsoOqssR99quxUmWZEX8gZspYZWnXnumxmY2VKsuh4XOssmwNwbHFTUesGXQiQ6GdbRoG6shhpm3tOw60n5EdTuMYe6ML1ib2SMBy0GP2sIfdYQ+VT+b40AfdqfrnDXr312cNgb7rgKQhoiit9PiNHLa4AVvOknohNfldTigPnVKMTadZ/9kgrbw+A/1cd8ZJgUzRIDEA0e9e2NggrFxjnFDz/UP566Hi9e/8vZLy11I67wR+xWKmHe93sryJrByI8pNqI1QPz4Md00cNY5GG1n0HVfQUoR+f6X8tvz3+z90ff7+ubwD+ft0gZtJKBekgVOEaJv9daZkxGm/Q7WsvdHPXd68MfAb3kobHcs8SZEUhkwmdHJgoNHlCBS5HTlMxY6RIrbYrUTLb1bKv4xAxqc5fPnz68K+fvOgvm3qpDEo6ahdJE/lNUc7ZhhrToWYquLVhWRmR5qYL3N7cMS1qm1Ryo9BvtOC+uiKIossu6/nVvg+CkpWnjeRYB9QW1vuVOGZj/Ytk9mhWHvizsiFI7p2pSe5BoKWHvdb1iLBhoRuB7KZnW2akHyfQysz20xN02JqgU0dyLOjcBOSyyiWr+MgqpU4PHyEKWNcOfxpEQme9p4wQcROQyHo9WYVI1lvq9CDCujqINXyoIznGx/HNN2ht843tjvj43hvqRMdZcX9O1093iVkywPYYxxfX2LeOEMNFoALdfZnm/ngxjuqPN/ANqXd/fSb9GtYnARzUN3BMPsLegXOdNvEBGN1ln1gNY8N2Ergihu0a9QosRw6oex7fPVg3tqKYP5zmfq1zdwvN2HLXwcIMkFrPVL+Sh4+Cp4vgofrBMZ4Fj8lR1Cuuvkznj3JCBGbTg4k9gqoFqLgeTfEMKpN3yU0+SUNQ3SQKc110ao/e6/1dQlgBQP17r6EpH9uFVHr/nlJTQtK2TTW4enf0tEWErZPiEOXSMpo3GZhVjSsXeTeOflmfsdw1cVQY6bj11iNlIJp9j97Wt9LAmLzt5tj9KbGzvkqgZ4Myu0lK1wBE91v7c1Q6WvsUVFQ6Bp8OxtynzDD5q0eZ0afM2O0nD48AjxcQQ16NPkXl7FbKjJ2BAxYvm2XS038nJ8HrR/kaDekOMs3gbsQmd4U7mVYeYxllWnHc6DmByPxuvTxruyjh9B/xalHC6tuCm5HV27M6ccfq8u1qkVD14A+UP/Lp18UkTj7x/w==&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><path d="M 1129.97 677.53 L 1129.93 655" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1129.99 687.53 L 1126.64 677.53 L 1133.31 677.52 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 750.64 576.72 L 835 577 L 926.56 577.06" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.56 577.06 L 926.56 579.06 L 926.57 575.06 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="160" y="217" width="165" height="65" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 163px; height: 1px; padding-top: 250px; margin-left: 161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 14px"><b>user_proj_example</b></font></div></div></div></foreignObject><text x="243" y="253" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">user_proj_example</text></switch></g><rect x="160" y="217" width="1955" height="700" fill="none" stroke="#000000" stroke-width="4" pointer-events="all"/><rect x="1065" y="577" width="130" height="79.5" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 617px; margin-left: 1066px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 20px">LIS Input</font></div></div></div></foreignObject><text x="1130" y="620" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">LIS Input</text></switch></g><rect x="1065" y="606.5" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 617px; margin-left: 1067px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="1067" y="620" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><rect x="1110" y="577" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 589px; margin-left: 1111px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="1130" y="589" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="1163" y="605.5" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 28px; height: 1px; padding-top: 616px; margin-left: 1163px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="1191" y="619" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><path d="M 1130 233.53 L 1130 173" fill="none" stroke="#663300" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1130 243.53 L 1126.67 233.53 L 1133.33 233.53 Z" fill="#663300" stroke="#663300" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 1564.9 587.09 L 1596.66 587.02" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1602.66 587.01 L 1596.67 589.02 L 1596.66 585.02 Z" fill="#82b366" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1724.9 584.2 L 1756.66 584.13" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1762.66 584.12 L 1756.67 586.13 L 1756.66 582.13 Z" fill="#82b366" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1764.9" y="559.25" width="100" height="50" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 584px; margin-left: 1766px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 12px">8→32</font></div></div></div></foreignObject><text x="1815" y="588" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">8→32</text></switch></g><path d="M 1864.9 584.22 L 1896.66 584.15" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1902.66 584.14 L 1896.67 586.15 L 1896.66 582.15 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1794.9" y="606.75" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 617px; margin-left: 1796px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_adapter</div></div></div></foreignObject><text x="1815" y="620" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">uRx_ad...</text></switch></g><rect x="1494.9" y="610" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 620px; margin-left: 1496px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uTx_adapter</div></div></div></foreignObject><text x="1515" y="624" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">uTx_ad...</text></switch></g><rect x="205" y="317" width="1861" height="560" fill="none" stroke="#666666" stroke-width="4" pointer-events="all"/><path d="M 750.24 559.8 L 850 428 L 927.56 428.05" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 933.56 428.06 L 927.56 430.05 L 927.57 426.05 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 749.88 596.43 L 850 725 L 926.16 725.02" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.16 725.02 L 926.16 727.02 L 926.16 723.02 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 955.88 700.15 L 955.88 660.37" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 955.88 710.15 L 952.55 700.15 L 959.21 700.15 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 955.88 552.18 L 956 517" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 955.85 562.18 L 952.55 552.17 L 959.21 552.19 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 400 542.53 L 400 362 L 1925 357 L 1924.91 522.53" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 400 552.53 L 396.67 542.53 L 403.33 542.53 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 1924.9 532.53 L 1921.57 522.53 L 1928.24 522.53 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 904.4 745.02 L 926.16 745.02" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.16 745.02 L 926.16 747.02 L 926.16 743.02 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 904.6 765.04 L 926.36 765.04" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.36 765.04 L 926.36 767.04 L 926.36 763.04 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 904.6 784.88 L 926.36 784.88" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.36 784.88 L 926.36 786.88 L 926.36 782.88 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 904.6 805.05 L 926.36 805.05" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.36 805.05 L 926.36 807.05 L 926.36 803.05 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 974.34 764.76 L 1025 765 L 1058.57 738.14" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1063.25 734.4 L 1059.82 739.71 L 1057.32 736.58 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1193 732 L 1225 732 L 1225 677 L 1225 638 L 1356.71 637.53" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1362.71 637.51 L 1356.72 639.53 L 1356.71 635.53 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1195 616.75 L 1356.33 616.93" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1362.33 616.94 L 1356.33 618.93 L 1356.34 614.93 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1196 497.05 L 1225 497 L 1225 598 L 1280 598 L 1356.71 597.55" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1362.71 597.51 L 1356.73 599.55 L 1356.7 595.55 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 750 536.5 L 804 398 L 1244 398 L 1244 577 L 1355.76 576.69" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1361.76 576.67 L 1355.77 578.69 L 1355.76 574.69 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1335 557 L 1356.71 557" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1362.71 557 L 1356.71 559 L 1356.71 555 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 974.6 784.85 L 996.56 784.97" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1002.56 785.01 L 996.55 786.97 L 996.58 782.97 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="980" y="782.02" width="95" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 93px; height: 1px; padding-top: 792px; margin-left: 982px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#CC6600">always_ready</font></div></div></div></foreignObject><text x="982" y="796" fill="#000000" font-family="Helvetica" font-size="12px">always_ready</text></switch></g><rect x="828.6" y="734.67" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 745px; margin-left: 829px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_split_0</div></div></div></foreignObject><text x="902" y="748" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">in_split_0</text></switch></g><rect x="828.6" y="754.67" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 765px; margin-left: 829px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_split_0</div></div></div></foreignObject><text x="902" y="768" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">uRx_split_0</text></switch></g><rect x="828.6" y="774.67" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 785px; margin-left: 829px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="right"><font color="#CC6600">all_ones</font></div></div></div></div></foreignObject><text x="902" y="788" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">all_ones</text></switch></g><rect x="828.6" y="794.67" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 805px; margin-left: 829px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="right"><font color="#CC6600">all_zeros</font></div></div></div></div></foreignObject><text x="902" y="808" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">all_zeros</text></switch></g><rect x="974.6" y="725.02" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 735px; margin-left: 976px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">0</div></div></div></foreignObject><text x="985" y="739" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">0</text></switch></g><rect x="974.6" y="764.5" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 775px; margin-left: 976px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1</div></div></div></foreignObject><text x="985" y="778" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><rect x="914.4" y="705.02" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 715px; margin-left: 915px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">0</div></div></div></foreignObject><text x="924" y="719" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">0</text></switch></g><rect x="914.4" y="725.02" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 735px; margin-left: 915px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1</div></div></div></foreignObject><text x="924" y="739" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><rect x="914.6" y="745.02" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 755px; margin-left: 916px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">2</div></div></div></foreignObject><text x="925" y="759" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">2</text></switch></g><rect x="914.6" y="765.02" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 775px; margin-left: 916px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">3</div></div></div></foreignObject><text x="925" y="779" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">3</text></switch></g><rect x="914.6" y="785.02" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 795px; margin-left: 916px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">4</div></div></div></foreignObject><text x="925" y="799" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">4</text></switch></g><rect x="1260" y="543.8" width="70" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 68px; height: 1px; padding-top: 554px; margin-left: 1260px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_split_3</div></div></div></foreignObject><text x="1328" y="557" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">in_split_3</text></switch></g><path d="M 1334.75 536.55 L 1356.71 536.67" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1362.71 536.71 L 1356.7 538.67 L 1356.73 534.67 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1260" y="522.71" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 533px; margin-left: 1260px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_split_3</div></div></div></foreignObject><text x="1333" y="536" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">uRx_split_3</text></switch></g><rect x="1344.95" y="617.5" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 628px; margin-left: 1346px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">0</div></div></div></foreignObject><text x="1355" y="631" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">0</text></switch></g><rect x="1344.95" y="597.5" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 608px; margin-left: 1346px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1</div></div></div></foreignObject><text x="1355" y="611" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><rect x="1344.95" y="577.5" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 588px; margin-left: 1346px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">2</div></div></div></foreignObject><text x="1355" y="591" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">2</text></switch></g><rect x="1344.95" y="557" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 567px; margin-left: 1346px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">3</div></div></div></foreignObject><text x="1355" y="571" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">3</text></switch></g><rect x="1344.95" y="537.5" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 548px; margin-left: 1346px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">4</div></div></div></foreignObject><text x="1355" y="551" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">4</text></switch></g><rect x="1344.7" y="517.33" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 527px; margin-left: 1346px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">5</div></div></div></foreignObject><text x="1355" y="531" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">5</text></switch></g><path d="M 1404.95 550.33 L 1426.91 550.45" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1432.91 550.49 L 1426.9 552.45 L 1426.93 548.45 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1437.4" y="538" width="95" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 93px; height: 1px; padding-top: 548px; margin-left: 1439px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#CC6600">always_ready</font></div></div></div></foreignObject><text x="1439" y="552" fill="#000000" font-family="Helvetica" font-size="12px">always_ready</text></switch></g><rect x="1404.95" y="531.33" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 541px; margin-left: 1406px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">2</div></div></div></foreignObject><text x="1415" y="545" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">2</text></switch></g><path d="M 1404.95 588.07 L 1456.92 588.23" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1462.92 588.25 L 1456.92 590.23 L 1456.93 586.23 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1404.22 623.17 L 1435 623 L 1435 747 L 1445 747 L 1456.86 746.86" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1462.86 746.8 L 1456.89 748.86 L 1456.84 744.86 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1404.95" y="567.21" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 577px; margin-left: 1406px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1</div></div></div></foreignObject><text x="1415" y="581" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><path d="M 1384.57 509.68 L 1385 357" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1384.54 519.68 L 1381.24 509.67 L 1387.9 509.69 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 1664.91 532.24 L 1665 357" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1664.91 542.24 L 1661.58 532.24 L 1668.24 532.24 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 1944.9 554.06 L 1966.66 554.06" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1972.66 554.06 L 1966.66 556.06 L 1966.66 552.06 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1945.1 574.08 L 1966.86 574.08" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1972.86 574.08 L 1966.86 576.08 L 1966.86 572.08 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1945.1 593.92 L 1966.86 593.92" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1972.86 593.92 L 1966.86 595.92 L 1966.86 591.92 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1945.1 614.09 L 1966.86 614.09" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1972.86 614.09 L 1966.86 616.09 L 1966.86 612.09 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1974.9" y="543.8" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 73px; height: 1px; padding-top: 554px; margin-left: 1977px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_split_3</div></div></div></foreignObject><text x="1977" y="557" fill="#000000" font-family="Helvetica" font-size="12px">uRx_split_3</text></switch></g><rect x="1974.9" y="563.8" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 73px; height: 1px; padding-top: 574px; margin-left: 1977px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_split_2</div></div></div></foreignObject><text x="1977" y="577" fill="#000000" font-family="Helvetica" font-size="12px">uRx_split_2</text></switch></g><rect x="1974.9" y="584.21" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 73px; height: 1px; padding-top: 594px; margin-left: 1977px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_split_1</div></div></div></foreignObject><text x="1977" y="598" fill="#000000" font-family="Helvetica" font-size="12px">uRx_split_1</text></switch></g><rect x="1974.9" y="604.21" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 73px; height: 1px; padding-top: 614px; margin-left: 1977px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_split_0</div></div></div></foreignObject><text x="1977" y="618" fill="#000000" font-family="Helvetica" font-size="12px">uRx_split_0</text></switch></g><path d="M 1644.91 625.04 L 1645 717 L 2145 717" fill="none" stroke="#6c8ebf" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1644.9 619.04 L 1646.91 625.03 L 1642.91 625.04 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1664.73 616.8 L 1665 697 L 2136.76 697" fill="none" stroke="#6c8ebf" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2142.76 697 L 2136.76 699 L 2136.76 695 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1684.9 616.8 L 1685 677 L 2136.76 677" fill="none" stroke="#6c8ebf" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2142.76 677 L 2136.76 679 L 2136.76 675 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1404.95" y="605.74" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 616px; margin-left: 1406px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">0</div></div></div></foreignObject><text x="1415" y="619" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">0</text></switch></g><path d="M 1564.9 745.74 L 2136.76 746" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 2142.76 746 L 2136.76 748 L 2136.76 744 Z" fill="#82b366" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 894.8 784.5 L 914.8 745.02 L 994.4 745.02 L 1014.4 784.5 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" transform="rotate(90,954.6,764.76)" pointer-events="all"/><path d="M 939.6 764.67 L 944.6 764.67 L 969.6 739.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 952.1 734.67 Q 972.1 754.67 956.6 777.92" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 952.72 783.74 L 954.66 776.62 L 958.54 779.21 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="934.6" y="824.67" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 835px; margin-left: 936px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">lisFifo_mux</div></div></div></foreignObject><text x="955" y="838" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">lisFif...</text></switch></g><rect x="934.4" y="717.42" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 729px; margin-left: 935px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="954" y="729" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="1065" y="693.5" width="130" height="79.5" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 733px; margin-left: 1066px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 20px">LIS FIFO</font></div></div></div></foreignObject><text x="1130" y="737" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">LIS FIFO</text></switch></g><rect x="1163" y="722" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 28px; height: 1px; padding-top: 732px; margin-left: 1163px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="1191" y="736" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><rect x="1065" y="723" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 733px; margin-left: 1067px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="1067" y="737" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><rect x="1110" y="693.5" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 705px; margin-left: 1111px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="1130" y="705" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><path d="M 1315 606.48 L 1335 567 L 1434.9 567 L 1454.9 606.48 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" transform="rotate(90,1384.95,586.74)" pointer-events="all"/><path d="M 1372.45 590.5 L 1377.45 590.5 L 1402.45 565.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1384.95 560.5 Q 1404.95 580.5 1389.45 603.75" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1385.57 609.57 L 1387.51 602.45 L 1391.39 605.04 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1363" y="529.96" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 541px; margin-left: 1364px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="1383" y="541" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="1464.9" y="562.21" width="100" height="50" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 587px; margin-left: 1466px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 12px">32→8</font></div></div></div></foreignObject><text x="1515" y="591" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">32→8</text></switch></g><rect x="1534.9" y="576.21" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 28px; height: 1px; padding-top: 586px; margin-left: 1535px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="1563" y="590" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><rect x="1464.9" y="576.21" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 586px; margin-left: 1467px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="1467" y="590" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><rect x="1464.9" y="719.85" width="100" height="50" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 745px; margin-left: 1466px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 12px">32→8</font></div></div></div></foreignObject><text x="1515" y="748" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">32→8</text></switch></g><rect x="1534.9" y="733.85" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 28px; height: 1px; padding-top: 744px; margin-left: 1535px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="1563" y="747" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><rect x="1464.9" y="734.85" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 745px; margin-left: 1467px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="1467" y="748" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><rect x="1494.9" y="768.85" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 779px; margin-left: 1496px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">out_adapter</div></div></div></foreignObject><text x="1515" y="782" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">out_ad...</text></switch></g><rect x="1604.9" y="545.8" width="120" height="80" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 586px; margin-left: 1606px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 20px">UART</font></div></div></div></foreignObject><text x="1665" y="589" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">UART</text></switch></g><rect x="1694.9" y="575.8" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 28px; height: 1px; padding-top: 586px; margin-left: 1695px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="1723" y="589" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><rect x="1604.9" y="575.8" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 586px; margin-left: 1607px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="1607" y="589" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><rect x="1644.9" y="546.71" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 558px; margin-left: 1646px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="1665" y="558" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="1834.9" y="579.21" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 28px; height: 1px; padding-top: 589px; margin-left: 1835px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="1863" y="593" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><rect x="1764.9" y="579.21" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 589px; margin-left: 1767px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="1767" y="593" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><path d="M 1904.9 582.56 L 1909.9 582.56 L 1919.9 562.56 L 1929.78 562.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1933.78 562.56 L 1929.78 563.89 L 1929.78 561.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1909.9 582.56 L 1919.9 602.56 L 1929.78 602.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1933.78 602.56 L 1929.78 603.89 L 1929.78 601.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1909.9 582.56 L 1919.9 542.56 L 1929.78 542.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1933.78 542.56 L 1929.78 543.89 L 1929.78 541.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1909.9 582.56 L 1929.78 582.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1933.78 582.56 L 1929.78 583.89 L 1929.78 581.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1904.9" y="538" width="40" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><rect x="1904.9" y="537" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 549px; margin-left: 1906px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="1925" y="549" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="1904.9" y="625.56" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 636px; margin-left: 1906px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_split</div></div></div></foreignObject><text x="1925" y="639" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">uRx_sp...</text></switch></g><rect x="1825" y="777" width="240" height="99.85" fill="none" stroke="#666666" stroke-width="4" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 827px; margin-left: 1826px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div style="font-size: 24px" align="center"><font style="font-size: 24px" color="#666666"><b>Linear Insertion Sorters</b></font></div></div></div></div></foreignObject><text x="1945" y="831" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Linear Insertion Sorters</text></switch></g><rect x="2145" y="731.85" width="95" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 93px; height: 1px; padding-top: 742px; margin-left: 2147px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; "><div style="font-size: 18px" align="left"><font style="font-size: 18px" color="#82B366">outStream</font></div></div></div></div></foreignObject><text x="2147" y="745" fill="#000000" font-family="Helvetica" font-size="12px" font-weight="bold">outStream</text></switch></g><rect x="2145" y="706.85" width="80" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 78px; height: 1px; padding-top: 717px; margin-left: 2147px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 18px"><b><font style="font-size: 18px" color="#6C8EBF">uRx</font></b></font></div></div></div></foreignObject><text x="2147" y="720" fill="#000000" font-family="Helvetica" font-size="12px">uRx</text></switch></g><rect x="2145" y="686.85" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 38px; height: 1px; padding-top: 697px; margin-left: 2147px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div style="font-size: 18px" align="left"><font style="font-size: 18px"><b><font style="font-size: 18px" color="#6C8EBF">int</font></b></font></div></div></div></div></foreignObject><text x="2147" y="700" fill="#000000" font-family="Helvetica" font-size="12px">int</text></switch></g><rect x="2145" y="666.85" width="80" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 78px; height: 1px; padding-top: 677px; margin-left: 2147px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 18px"><b><font style="font-size: 18px" color="#6C8EBF">uTx</font></b></font></div></div></div></foreignObject><text x="2147" y="680" fill="#000000" font-family="Helvetica" font-size="12px">uTx</text></switch></g><path d="M 1130.91 560.53 L 1131 530" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1130.88 570.53 L 1127.58 560.52 L 1134.25 560.54 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="1066" y="486.8" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 497px; margin-left: 1068px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="1068" y="500" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><rect x="1111" y="457.3" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 469px; margin-left: 1112px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="1131" y="469" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="1164" y="485.8" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 28px; height: 1px; padding-top: 496px; margin-left: 1164px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="1192" y="499" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><rect x="1066" y="457.3" width="130" height="79.5" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 497px; margin-left: 1067px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 20px">LIS Fixed</font></div></div></div></foreignObject><text x="1131" y="501" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">LIS Fixed</text></switch></g><rect x="1066" y="486.8" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 497px; margin-left: 1068px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="1068" y="500" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><rect x="1111" y="457.3" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 469px; margin-left: 1112px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="1131" y="469" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="1164" y="485.8" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 28px; height: 1px; padding-top: 496px; margin-left: 1164px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="1192" y="499" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><path d="M 1910 583.56 L 1915 583.56 L 1925 559 L 1935.14 555.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1938.94 554.35 L 1935.57 556.88 L 1934.72 554.35 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1915.1 584 L 1930 574 L 1934.88 574" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1938.88 574 L 1934.88 575.33 L 1934.88 572.67 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1915 583.56 L 1925 609 L 1935.14 612.38" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1938.94 613.65 L 1934.72 613.65 L 1935.57 611.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1915 583 L 1930 594 L 1934.88 594" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1938.88 594 L 1934.88 595.33 L 1934.88 592.67 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 904.8 597.06 L 926.56 597.06" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.56 597.06 L 926.56 599.06 L 926.56 595.06 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 905 617.08 L 926.76 617.08" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.76 617.08 L 926.76 619.08 L 926.76 615.08 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 905 636.92 L 926.76 636.92" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.76 636.92 L 926.76 638.92 L 926.76 634.92 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 905 657.09 L 926.76 657.09" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 932.76 657.09 L 926.76 659.09 L 926.76 655.09 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 974.74 616.8 L 1024.4 616.04 L 1056.76 616.41" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1062.76 616.47 L 1056.74 618.41 L 1056.79 614.41 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 975 636.89 L 996.96 637.01" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1002.96 637.05 L 996.95 639.01 L 996.98 635.01 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="829" y="585.71" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 596px; margin-left: 829px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_split_1</div></div></div></foreignObject><text x="902" y="599" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">in_split_1</text></switch></g><rect x="829" y="605.71" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 616px; margin-left: 829px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_split_1</div></div></div></foreignObject><text x="902" y="619" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">uRx_split_1</text></switch></g><rect x="829" y="625.71" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 636px; margin-left: 829px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="right"><font color="#CC6600">all_ones</font></div></div></div></div></foreignObject><text x="902" y="639" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">all_ones</text></switch></g><rect x="829" y="645.71" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 656px; margin-left: 829px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="right"><font color="#CC6600">all_zeros</font></div></div></div></div></foreignObject><text x="902" y="659" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">all_zeros</text></switch></g><rect x="975" y="577.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 587px; margin-left: 976px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">0</div></div></div></foreignObject><text x="985" y="591" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">0</text></switch></g><rect x="975" y="616.54" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 627px; margin-left: 976px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1</div></div></div></foreignObject><text x="985" y="630" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><rect x="914.8" y="557.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 567px; margin-left: 916px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">0</div></div></div></foreignObject><text x="925" y="571" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">0</text></switch></g><rect x="914.8" y="577.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 587px; margin-left: 916px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1</div></div></div></foreignObject><text x="925" y="591" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><rect x="915" y="597.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 607px; margin-left: 916px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">2</div></div></div></foreignObject><text x="925" y="611" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">2</text></switch></g><rect x="915" y="617.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 627px; margin-left: 916px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">3</div></div></div></foreignObject><text x="925" y="631" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">3</text></switch></g><rect x="915" y="637.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 647px; margin-left: 916px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">4</div></div></div></foreignObject><text x="925" y="651" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">4</text></switch></g><path d="M 895.2 636.54 L 915.2 597.06 L 994.8 597.06 L 1014.8 636.54 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" transform="rotate(90,955,616.8)" pointer-events="all"/><path d="M 940 616.71 L 945 616.71 L 970 591.71" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 952.5 586.71 Q 972.5 606.71 957 629.96" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 953.12 635.78 L 955.06 628.66 L 958.94 631.25 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="945" y="526.5" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 537px; margin-left: 946px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">lisFixed_mux</div></div></div></foreignObject><text x="965" y="540" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">lisFix...</text></switch></g><rect x="934.8" y="569.46" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 581px; margin-left: 936px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="955" y="581" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="1066" y="458.5" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 469px; margin-left: 1068px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="1068" y="472" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><path d="M 905.8 448.06 L 927.56 448.06" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 933.56 448.06 L 927.56 450.06 L 927.56 446.06 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 906 468.08 L 927.76 468.08" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 933.76 468.08 L 927.76 470.08 L 927.76 466.08 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 906 487.92 L 927.76 487.92" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 933.76 487.92 L 927.76 489.92 L 927.76 485.92 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 906 508.09 L 927.76 508.09" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 933.76 508.09 L 927.76 510.09 L 927.76 506.09 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 876.4 428.04 L 927.76 427.76" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 933.76 427.72 L 927.78 429.76 L 927.75 425.76 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 975.74 467.8 L 1025.4 468.04 L 1059.3 492.26" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1064.18 495.75 L 1058.14 493.89 L 1060.46 490.63 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 976 487.89 L 997.96 488.01" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1003.96 488.05 L 997.95 490.01 L 997.98 486.01 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="830" y="437.71" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 448px; margin-left: 830px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_split_2</div></div></div></foreignObject><text x="903" y="451" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">in_split_2</text></switch></g><rect x="831" y="457.71" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 468px; margin-left: 831px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">uRx_split_2</div></div></div></foreignObject><text x="904" y="471" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">uRx_split_2</text></switch></g><rect x="830" y="477.71" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 488px; margin-left: 830px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="right"><font color="#CC6600">all_ones</font></div></div></div></div></foreignObject><text x="903" y="491" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">all_ones</text></switch></g><rect x="830" y="497.71" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 73px; height: 1px; padding-top: 508px; margin-left: 830px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div align="right"><font color="#CC6600">all_zeros</font></div></div></div></div></foreignObject><text x="903" y="511" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">all_zeros</text></switch></g><rect x="976" y="428.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 438px; margin-left: 977px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">0</div></div></div></foreignObject><text x="986" y="442" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">0</text></switch></g><rect x="976" y="467.54" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 478px; margin-left: 977px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1</div></div></div></foreignObject><text x="986" y="481" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><rect x="915.8" y="408.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 418px; margin-left: 917px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">0</div></div></div></foreignObject><text x="926" y="422" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">0</text></switch></g><rect x="915.8" y="428.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 438px; margin-left: 917px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1</div></div></div></foreignObject><text x="926" y="442" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><rect x="916" y="448.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 458px; margin-left: 917px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">2</div></div></div></foreignObject><text x="926" y="462" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">2</text></switch></g><rect x="916" y="468.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 478px; margin-left: 917px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">3</div></div></div></foreignObject><text x="926" y="482" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">3</text></switch></g><rect x="916" y="488.06" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 498px; margin-left: 917px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">4</div></div></div></foreignObject><text x="926" y="502" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">4</text></switch></g><path d="M 896.2 487.54 L 916.2 448.06 L 995.8 448.06 L 1015.8 487.54 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" transform="rotate(90,956,467.8)" pointer-events="all"/><rect x="935.8" y="420.46" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 432px; margin-left: 937px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="956" y="432" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><path d="M 957 402.53 L 957 362" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 957 412.53 L 953.67 402.53 L 960.33 402.53 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 941 467.71 L 946 467.71 L 971 442.71" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 953.5 437.71 Q 973.5 457.71 958 480.96" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 954.12 486.78 L 956.06 479.66 L 959.94 482.25 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="940" y="673.5" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 684px; margin-left: 941px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">lisInput_mux</div></div></div></foreignObject><text x="960" y="687" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">lisInp...</text></switch></g><path d="M 670 566.51 L 701.76 566.51" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 707.76 566.51 L 701.76 568.51 L 701.76 564.51 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 729.69 505.43 L 730 360" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 729.67 515.43 L 726.36 505.42 L 733.02 505.44 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 608.81 510.43 L 609 361" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 608.8 520.43 L 605.48 510.42 L 612.14 510.43 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="550" y="526.65" width="120" height="80" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 567px; margin-left: 551px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><p><font style="font-size: 20px" face="Times New Roman">BIST</font><br /></p></div></div></div></foreignObject><text x="610" y="570" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">BIST&#xa;</text></switch></g><rect x="590" y="529.9" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 541px; margin-left: 591px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="610" y="541" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="630" y="556.65" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 38px; height: 1px; padding-top: 567px; margin-left: 630px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="668" y="570" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><path d="M 711 572.56 L 716 572.56 L 726 552.56 L 735.88 552.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 739.88 552.56 L 735.88 553.89 L 735.88 551.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 716 572.56 L 726 592.56 L 735.88 592.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 739.88 592.56 L 735.88 593.89 L 735.88 591.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 716 572.56 L 726 532.56 L 735.88 532.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 739.88 532.56 L 735.88 533.89 L 735.88 531.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 716 572.56 L 735.88 572.56" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 739.88 572.56 L 735.88 573.89 L 735.88 571.23 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="711" y="522" width="40" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><rect x="711" y="522" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 534px; margin-left: 712px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="731" y="534" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="711" y="615.56" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 626px; margin-left: 712px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">bist_split</div></div></div></foreignObject><text x="731" y="629" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">bist_s...</text></switch></g><path d="M 716.1 566.56 L 721.1 566.56 L 731.1 542 L 741.24 538.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 745.04 537.35 L 741.67 539.88 L 740.82 537.35 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 721.2 567 L 736.1 557 L 740.98 557" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 744.98 557 L 740.98 558.33 L 740.98 555.67 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 721.1 566.56 L 731.1 592 L 741.24 595.38" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 745.04 596.65 L 740.82 596.65 L 741.67 594.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 721.1 566 L 736.1 577 L 740.98 577" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 744.98 577 L 740.98 578.33 L 740.98 575.67 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 340 603.39 L 371.76 603.32" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 377.76 603.31 L 371.77 605.32 L 371.76 601.32 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 120 603.95 L 231.76 603.59" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 237.76 603.57 L 231.77 605.59 L 231.76 601.59 Z" fill="#82b366" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="240" y="578.45" width="100" height="50" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 603px; margin-left: 241px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 12px">8→32</font></div></div></div></foreignObject><text x="290" y="607" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">8→32</text></switch></g><rect x="310" y="593.45" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 28px; height: 1px; padding-top: 603px; margin-left: 310px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font face="Helvetica">out</font></div></div></div></foreignObject><text x="338" y="607" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">out</text></switch></g><rect x="240" y="593.45" width="20" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 18px; height: 1px; padding-top: 603px; margin-left: 242px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in</div></div></div></foreignObject><text x="242" y="607" fill="#000000" font-family="Helvetica" font-size="12px">in</text></switch></g><rect x="270" y="628.45" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 638px; margin-left: 271px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_adapter</div></div></div></foreignObject><text x="290" y="642" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">in_ada...</text></switch></g><rect x="0" y="582" width="115" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 113px; height: 1px; padding-top: 602px; margin-left: 0px;"><div style="box-sizing: border-box; font-size: 0; text-align: right; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div style="font-size: 18px" align="right"><font style="font-size: 18px"><b><font style="font-size: 18px" color="#82B366">inStream</font></b></font></div></div></div></div></foreignObject><text x="113" y="606" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="end">inStream</text></switch></g><path d="M 420 573.86 L 441.76 573.86" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 447.76 573.86 L 441.76 575.86 L 441.76 571.86 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 420.2 593.88 L 441.96 593.88" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 447.96 593.88 L 441.96 595.88 L 441.96 591.88 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 420.2 613.72 L 441.96 613.72" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 447.96 613.72 L 441.96 615.72 L 441.96 611.72 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 420.2 633.89 L 441.96 633.89" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 447.96 633.89 L 441.96 635.89 L 441.96 631.89 Z" fill="#9673a6" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="450" y="563.6" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 73px; height: 1px; padding-top: 574px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_split_3</div></div></div></foreignObject><text x="452" y="577" fill="#000000" font-family="Helvetica" font-size="12px">in_split_3</text></switch></g><rect x="450" y="583.6" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 73px; height: 1px; padding-top: 594px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_split_2</div></div></div></foreignObject><text x="452" y="597" fill="#000000" font-family="Helvetica" font-size="12px">in_split_2</text></switch></g><rect x="450" y="604.01" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 73px; height: 1px; padding-top: 614px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_split_1</div></div></div></foreignObject><text x="452" y="618" fill="#000000" font-family="Helvetica" font-size="12px">in_split_1</text></switch></g><rect x="450" y="624.01" width="75" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 73px; height: 1px; padding-top: 634px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_split_0</div></div></div></foreignObject><text x="452" y="638" fill="#000000" font-family="Helvetica" font-size="12px">in_split_0</text></switch></g><path d="M 380 608.36 L 385 608.36 L 395 588.36 L 404.88 588.36" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 408.88 588.36 L 404.88 589.69 L 404.88 587.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 385 608.36 L 395 628.36 L 404.88 628.36" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 408.88 628.36 L 404.88 629.69 L 404.88 627.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 385 608.36 L 395 568.36 L 404.88 568.36" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 408.88 568.36 L 404.88 569.69 L 404.88 567.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 385 608.36 L 404.88 608.36" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 408.88 608.36 L 404.88 609.69 L 404.88 607.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="380" y="557.8" width="40" height="90" fill="#ffffff" stroke="#000000" pointer-events="all"/><rect x="380" y="557.8" width="40" height="14.5" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 569px; margin-left: 381px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#B85450">regs</font></div></div></div></foreignObject><text x="400" y="569" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">regs</text></switch></g><rect x="380" y="651.36" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 661px; margin-left: 381px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">in_split</div></div></div></foreignObject><text x="400" y="665" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">in_spl...</text></switch></g><path d="M 385.1 602.36 L 390.1 602.36 L 400.1 577.8 L 410.24 574.42" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 414.04 573.15 L 410.67 575.68 L 409.82 573.15 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 390.2 602.8 L 405.1 592.8 L 409.98 592.8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 413.98 592.8 L 409.98 594.13 L 409.98 591.47 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 390.1 602.36 L 400.1 627.8 L 410.24 631.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 414.04 632.45 L 409.82 632.45 L 410.67 629.92 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 390.1 601.8 L 405.1 612.8 L 409.98 612.8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 413.98 612.8 L 409.98 614.13 L 409.98 611.47 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="1090" y="248" width="80" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 268px; margin-left: 1091px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">WB2AXI</div></div></div></foreignObject><text x="1130" y="272" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">WB2AXI</text></switch></g><rect x="1110" y="148" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 158px; margin-left: 1111px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 18px"><b><font style="font-size: 18px" color="#663300">WB</font></b></font></div></div></div></foreignObject><text x="1130" y="162" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">WB</text></switch></g><path d="M 1130.88 442.83 L 1130 288" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1130.93 452.83 L 1127.54 442.85 L 1134.21 442.81 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="160" y="2" width="610" height="193" fill="#f5f5f5" stroke="#666666" stroke-width="4" pointer-events="all"/><rect x="160" y="4" width="630" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 628px; height: 1px; padding-top: 24px; margin-left: 161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#666666"><b><font style="font-size: 24px">LEGEND</font></b></font></div></div></div></foreignObject><text x="475" y="28" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">LEGEND</text></switch></g><path d="M 175 89 L 237.53 89" fill="none" stroke="#663300" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 245.53 89 L 237.53 91.67 L 237.53 86.33 Z" fill="#663300" stroke="#663300" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="160" y="49" width="100" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 59px; margin-left: 161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#666666"><b><font style="font-size: 18px">Signals</font><font style="font-size: 18px">:</font></b></font></div></div></div></foreignObject><text x="210" y="63" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Signals:</text></switch></g><path d="M 175 109 L 237.53 109" fill="none" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 245.53 109 L 237.53 111.67 L 237.53 106.33 Z" fill="#b85450" stroke="#b85450" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 175 129.76 L 237.53 129.96" fill="none" stroke="#9673a6" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 245.53 129.99 L 237.52 132.63 L 237.54 127.29 Z" fill="#9673a6" stroke="#9673a6" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 175 154 L 237.53 154" fill="none" stroke="#82b366" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 245.53 154 L 237.53 156.67 L 237.53 151.33 Z" fill="#82b366" stroke="#82b366" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="258" y="78" width="95" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 93px; height: 1px; padding-top: 88px; margin-left: 260px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div style="font-size: 16px" align="left"><font style="font-size: 16px" color="#666666"><b>Wishbone</b></font></div></div></div></div></foreignObject><text x="260" y="92" fill="#000000" font-family="Helvetica" font-size="12px">Wishbone</text></switch></g><rect x="258" y="98" width="95" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 93px; height: 1px; padding-top: 108px; margin-left: 260px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px" color="#666666"><b>AXI4</b></font></div></div></div></foreignObject><text x="260" y="112" fill="#000000" font-family="Helvetica" font-size="12px">AXI4</text></switch></g><rect x="258" y="119" width="165" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 163px; height: 1px; padding-top: 129px; margin-left: 260px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px" color="#666666"><b>AXI4-Stream 32b<br /></b></font></div></div></div></foreignObject><text x="260" y="133" fill="#000000" font-family="Helvetica" font-size="12px">AXI4-Stream 32b&#xa;</text></switch></g><path d="M 175 175 L 237.53 175" fill="none" stroke="#6c8ebf" stroke-width="4" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 245.53 175 L 237.53 177.67 L 237.53 172.33 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><rect x="258" y="143" width="165" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 163px; height: 1px; padding-top: 153px; margin-left: 260px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px" color="#666666"><b>AXI4-Stream 8b<br /></b></font></div></div></div></foreignObject><text x="260" y="157" fill="#000000" font-family="Helvetica" font-size="12px">AXI4-Stream 8b&#xa;</text></switch></g><rect x="258" y="164" width="165" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 163px; height: 1px; padding-top: 174px; margin-left: 260px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px" color="#666666"><b>Single line<br /></b></font></div></div></div></foreignObject><text x="260" y="178" fill="#000000" font-family="Helvetica" font-size="12px">Single line&#xa;</text></switch></g><rect x="432" y="49" width="100" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 59px; margin-left: 433px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 18px" color="#666666"><b>Blocks:</b></font></div></div></div></foreignObject><text x="482" y="63" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Blocks:</text></switch></g><rect x="447" y="78" width="338" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 336px; height: 1px; padding-top: 88px; margin-left: 449px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px" color="#CC6600">•<font style="font-size: 16px"><sup><span style="font-size: 7px"></span></sup></font></font><font style="font-size: 16px" color="#CC6600"><b> always_ready: ready is <font style="font-size: 16px">always</font> active</b></font></div></div></div></foreignObject><text x="449" y="92" fill="#000000" font-family="Helvetica" font-size="12px">• always_ready: ready is always active</text></switch></g><rect x="447" y="98" width="350" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 348px; height: 1px; padding-top: 108px; margin-left: 449px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px" color="#CC6600">•<font style="font-size: 16px"><sup><span style="font-size: 7px"></span></sup></font></font><font size="1" color="#CC6600"><sup><span style="font-size: 7px"></span></sup></font><font style="font-size: 16px" color="#CC6600"><b> all_ones: output is 0xFFFF<br /></b></font></div></div></div></foreignObject><text x="449" y="112" fill="#000000" font-family="Helvetica" font-size="12px">• all_ones: output is 0xFFFF&#xa;</text></switch></g><rect x="447" y="118" width="350" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 348px; height: 1px; padding-top: 128px; margin-left: 449px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px" color="#CC6600">•<font style="font-size: 16px"><sup><span style="font-size: 7px"> </span></sup></font></font><font style="font-size: 16px" color="#CC6600"><b>all_zeros: output is 0x0000<br /></b></font></div></div></div></foreignObject><text x="449" y="132" fill="#000000" font-family="Helvetica" font-size="12px">• all_zeros: output is 0x0000&#xa;</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://desk.draw.io/support/solutions/articles/16000042487" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>
\ No newline at end of file
diff --git a/cargo/lis b/cargo/lis
new file mode 160000
index 0000000..be02358
--- /dev/null
+++ b/cargo/lis
@@ -0,0 +1 @@
+Subproject commit be02358aad24d7e680b2d769e423504e069a31f8
diff --git a/cargo/top/dv/LISTest/compare.py b/cargo/top/dv/LISTest/compare.py
new file mode 100644
index 0000000..b3bc527
--- /dev/null
+++ b/cargo/top/dv/LISTest/compare.py
@@ -0,0 +1,14 @@
+import sys
+file1 = open(sys.argv[1], 'r')
+file2 = open(sys.argv[2], 'r')
+
+data1 = file1.read()
+data2 = file2.read()
+
+if (data1 == data2):
+    print("Test passed!")
+else:
+    print("Test failed!")
+
+file1.close()
+file2.close()
\ No newline at end of file
diff --git a/cargo/top/dv/LISTest/defs.h b/cargo/top/dv/LISTest/defs.h
new file mode 100644
index 0000000..2402f47
--- /dev/null
+++ b/cargo/top/dv/LISTest/defs.h
@@ -0,0 +1,186 @@
+#ifndef _STRIVE_H_
+#define _STRIVE_H_
+
+#include <stdint.h>
+#include <stdbool.h>
+
+// a pointer to this is a null pointer, but the compiler does not
+// know that because "sram" is a linker symbol from sections.lds.
+extern uint32_t sram;
+
+// Pointer to firmware flash routines
+extern uint32_t flashio_worker_begin;
+extern uint32_t flashio_worker_end;
+
+// Storage area (MGMT: 0x0100_0000, User: 0x0200_0000)
+#define reg_rw_block0  (*(volatile uint32_t*)0x01000000)
+#define reg_rw_block1  (*(volatile uint32_t*)0x01100000)
+#define reg_ro_block0  (*(volatile uint32_t*)0x02000000)
+
+// UART (0x2000_0000)
+#define reg_uart_clkdiv (*(volatile uint32_t*)0x20000000)
+#define reg_uart_data   (*(volatile uint32_t*)0x20000004)
+#define reg_uart_enable (*(volatile uint32_t*)0x20000008)
+
+// GPIO (0x2100_0000)
+#define reg_gpio_data (*(volatile uint32_t*)0x21000000)
+#define reg_gpio_ena  (*(volatile uint32_t*)0x21000004)
+#define reg_gpio_pu   (*(volatile uint32_t*)0x21000008)
+#define reg_gpio_pd   (*(volatile uint32_t*)0x2100000c)
+
+// Logic Analyzer (0x2200_0000)
+#define reg_la0_data (*(volatile uint32_t*)0x25000000)
+#define reg_la1_data (*(volatile uint32_t*)0x25000004)
+#define reg_la2_data (*(volatile uint32_t*)0x25000008)
+#define reg_la3_data (*(volatile uint32_t*)0x2500000c)
+
+#define reg_la0_ena (*(volatile uint32_t*)0x25000010)
+#define reg_la1_ena (*(volatile uint32_t*)0x25000014)
+#define reg_la2_ena (*(volatile uint32_t*)0x25000018)
+#define reg_la3_ena (*(volatile uint32_t*)0x2500001c)
+
+// User Project Control (0x2300_0000)
+#define reg_mprj_xfer (*(volatile uint32_t*)0x26000000)
+#define reg_mprj_pwr  (*(volatile uint32_t*)0x26000004)
+#define reg_mprj_datal (*(volatile uint32_t*)0x26000008)
+#define reg_mprj_datah (*(volatile uint32_t*)0x2600000c)
+
+#define reg_mprj_io_0 (*(volatile uint32_t*)0x26000020)
+#define reg_mprj_io_1 (*(volatile uint32_t*)0x26000024)
+#define reg_mprj_io_2 (*(volatile uint32_t*)0x26000028)
+#define reg_mprj_io_3 (*(volatile uint32_t*)0x2600002c)
+#define reg_mprj_io_4 (*(volatile uint32_t*)0x26000030)
+#define reg_mprj_io_5 (*(volatile uint32_t*)0x26000034)
+#define reg_mprj_io_6 (*(volatile uint32_t*)0x26000038)
+
+#define reg_mprj_io_7 (*(volatile uint32_t*)0x2600003c)
+#define reg_mprj_io_8 (*(volatile uint32_t*)0x26000040)
+#define reg_mprj_io_9 (*(volatile uint32_t*)0x26000044)
+#define reg_mprj_io_10 (*(volatile uint32_t*)0x26000048)
+
+#define reg_mprj_io_11 (*(volatile uint32_t*)0x2600004c)
+#define reg_mprj_io_12 (*(volatile uint32_t*)0x26000050)
+#define reg_mprj_io_13 (*(volatile uint32_t*)0x26000054)
+#define reg_mprj_io_14 (*(volatile uint32_t*)0x26000058)
+
+#define reg_mprj_io_15 (*(volatile uint32_t*)0x2600005c)
+#define reg_mprj_io_16 (*(volatile uint32_t*)0x26000060)
+#define reg_mprj_io_17 (*(volatile uint32_t*)0x26000064)
+#define reg_mprj_io_18 (*(volatile uint32_t*)0x26000068)
+
+#define reg_mprj_io_19 (*(volatile uint32_t*)0x2600006c)
+#define reg_mprj_io_20 (*(volatile uint32_t*)0x26000070)
+#define reg_mprj_io_21 (*(volatile uint32_t*)0x26000074)
+#define reg_mprj_io_22 (*(volatile uint32_t*)0x26000078)
+
+#define reg_mprj_io_23 (*(volatile uint32_t*)0x2600007c)
+#define reg_mprj_io_24 (*(volatile uint32_t*)0x26000080)
+#define reg_mprj_io_25 (*(volatile uint32_t*)0x26000084)
+#define reg_mprj_io_26 (*(volatile uint32_t*)0x26000088)
+
+#define reg_mprj_io_27 (*(volatile uint32_t*)0x2600008c)
+#define reg_mprj_io_28 (*(volatile uint32_t*)0x26000090)
+#define reg_mprj_io_29 (*(volatile uint32_t*)0x26000094)
+#define reg_mprj_io_30 (*(volatile uint32_t*)0x26000098)
+#define reg_mprj_io_31 (*(volatile uint32_t*)0x2600009c)
+
+#define reg_mprj_io_32 (*(volatile uint32_t*)0x260000a0)
+#define reg_mprj_io_33 (*(volatile uint32_t*)0x260000a4)
+#define reg_mprj_io_34 (*(volatile uint32_t*)0x260000a8)
+#define reg_mprj_io_35 (*(volatile uint32_t*)0x260000ac)
+#define reg_mprj_io_36 (*(volatile uint32_t*)0x260000b0)
+#define reg_mprj_io_37 (*(volatile uint32_t*)0x260000b4)
+
+// User Project Slaves (0x3000_0000)
+#define reg_mprj_slave (*(volatile uint32_t*)0x30000000)
+
+// Flash Control SPI Configuration (2D00_0000)
+#define reg_spictrl (*(volatile uint32_t*)0x2d000000)         
+
+// Bit fields for Flash SPI control
+#define FLASH_BITBANG_IO0	0x00000001
+#define FLASH_BITBANG_IO1	0x00000002
+#define FLASH_BITBANG_CLK	0x00000010
+#define FLASH_BITBANG_CSB	0x00000020
+#define FLASH_BITBANG_OEB0	0x00000100
+#define FLASH_BITBANG_OEB1	0x00000200
+#define FLASH_ENABLE		0x80000000
+
+// Counter-Timer 0 Configuration
+#define reg_timer0_config (*(volatile uint32_t*)0x22000000)
+#define reg_timer0_value  (*(volatile uint32_t*)0x22000004)
+#define reg_timer0_data   (*(volatile uint32_t*)0x22000008)
+
+// Counter-Timer 1 Configuration
+#define reg_timer1_config (*(volatile uint32_t*)0x23000000)
+#define reg_timer1_value  (*(volatile uint32_t*)0x23000004)
+#define reg_timer1_data   (*(volatile uint32_t*)0x23000008)
+
+// Bit fields for Counter-timer configuration
+#define TIMER_ENABLE		0x01
+#define TIMER_ONESHOT		0x02
+#define TIMER_UPCOUNT		0x04
+#define TIMER_CHAIN		0x08
+#define TIMER_IRQ_ENABLE	0x10
+
+// SPI Master Configuration
+#define reg_spimaster_config (*(volatile uint32_t*)0x24000000)
+#define reg_spimaster_data   (*(volatile uint32_t*)0x24000004)
+
+// Bit fields for SPI master configuration
+#define SPI_MASTER_DIV_MASK	0x00ff
+#define SPI_MASTER_MLB		0x0100
+#define SPI_MASTER_INV_CSB	0x0200
+#define SPI_MASTER_INV_CLK	0x0400
+#define SPI_MASTER_MODE_1	0x0800
+#define SPI_MASTER_STREAM	0x1000
+#define SPI_MASTER_ENABLE	0x2000
+#define SPI_MASTER_IRQ_ENABLE	0x4000
+#define SPI_HOUSEKEEPING_CONN	0x8000
+
+// System Area (0x2F00_0000)
+#define reg_power_good    (*(volatile uint32_t*)0x2F000000)
+#define reg_clk_out_dest  (*(volatile uint32_t*)0x2F000004)
+#define reg_trap_out_dest (*(volatile uint32_t*)0x2F000008)
+#define reg_irq_source    (*(volatile uint32_t*)0x2F00000C)
+
+// Bit fields for reg_power_good
+#define USER1_VCCD_POWER_GOOD 0x01
+#define USER2_VCCD_POWER_GOOD 0x02
+#define USER1_VDDA_POWER_GOOD 0x04
+#define USER2_VDDA_POWER_GOOD 0x08
+
+// Bit fields for reg_clk_out_dest
+#define CLOCK1_MONITOR 0x01
+#define CLOCK2_MONITOR 0x02
+
+// Bit fields for reg_irq_source
+#define IRQ7_SOURCE 0x01
+#define IRQ8_SOURCE 0x02
+
+// Individual bit fields for the GPIO pad control
+#define MGMT_ENABLE	  0x0001
+#define OUTPUT_DISABLE	  0x0002
+#define HOLD_OVERRIDE	  0x0004
+#define INPUT_DISABLE	  0x0008
+#define MODE_SELECT	  0x0010
+#define ANALOG_ENABLE	  0x0020
+#define ANALOG_SELECT	  0x0040
+#define ANALOG_POLARITY	  0x0080
+#define SLOW_SLEW_MODE	  0x0100
+#define TRIPPOINT_SEL	  0x0200
+#define DIGITAL_MODE_MASK 0x1c00
+
+// Useful GPIO mode values
+#define GPIO_MODE_MGMT_STD_INPUT_NOPULL    0x0403
+#define GPIO_MODE_MGMT_STD_INPUT_PULLDOWN  0x0803
+#define GPIO_MODE_MGMT_STD_INPUT_PULLUP	   0x0c03
+#define GPIO_MODE_MGMT_STD_OUTPUT	   0x1809
+
+#define GPIO_MODE_USER_STD_INPUT_NOPULL	   0x0402
+#define GPIO_MODE_USER_STD_INPUT_PULLDOWN  0x0802
+#define GPIO_MODE_USER_STD_INPUT_PULLUP	   0x0c02
+#define GPIO_MODE_USER_STD_OUTPUT	   0x1808
+
+// --------------------------------------------------------
+#endif
diff --git a/cargo/top/dv/LISTest/lis/BIST_LISFIFO_POUT/BIST_LISFIFO_POUT.c b/cargo/top/dv/LISTest/lis/BIST_LISFIFO_POUT/BIST_LISFIFO_POUT.c
new file mode 100644
index 0000000..50be1b1
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/BIST_LISFIFO_POUT/BIST_LISFIFO_POUT.c
@@ -0,0 +1,61 @@
+#include "../../defs.h"
+#include "../../stub.c"
+
+#include "../../lisDefs.h"
+
+/*
+	LIS Test:
+*/
+
+
+void main()
+{
+	// Configure GPIO pins
+        reg_mprj_io_24 = GPIO_MODE_USER_STD_INPUT_PULLUP;
+        reg_mprj_io_23 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_22 = GPIO_MODE_USER_STD_OUTPUT;
+
+        reg_mprj_io_21 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_20 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_19 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_18 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_17 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_14 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_13 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_12 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_11 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+
+        reg_mprj_io_10 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_9  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_8  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_7  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_6  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_5  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_4  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_3  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_2  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_1  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_0  = GPIO_MODE_USER_STD_OUTPUT;
+
+        /* Apply configuration */
+        reg_mprj_xfer = 1;
+        while (reg_mprj_xfer == 1);
+
+        bistAddress_reg(2*BEATBYTES) = 0x1; // configure counter to be active
+        bistAddress_reg(3*BEATBYTES) = 0x1; // configure counter to be up counter
+  
+        lisFIFOMuxAddress0_reg(0) = 0x0;
+        lisFIFOAddress_reg(4*BEATBYTES) = LIS_SIZE/2;
+        lisInputMuxAddress0_reg(BEATBYTES) = 0x0;
+        lisFixedMuxAddress0_reg(BEATBYTES) = 0x0;
+        
+        // configure fixed -> outMux
+        outMuxAddress_reg(0) = 0x0;
+        // configure bist_split -> out_mux
+        outMuxAddress_reg(2*BEATBYTES) = 0x3;
+  
+        // enable bist
+        bistAddress_reg(0) =  0x1; 
+}
\ No newline at end of file
diff --git a/cargo/top/dv/LISTest/lis/BIST_LISFIFO_POUT/BIST_LISFIFO_POUT_tb.v b/cargo/top/dv/LISTest/lis/BIST_LISFIFO_POUT/BIST_LISFIFO_POUT_tb.v
new file mode 100644
index 0000000..efcf439
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/BIST_LISFIFO_POUT/BIST_LISFIFO_POUT_tb.v
@@ -0,0 +1,176 @@
+`default_nettype none
+
+`timescale 1 ns / 1 ps
+
+`include "caravel.v"
+`include "spiflash.v"
+
+module BIST_LISFIFO_POUT_tb;
+	// declare file for writing data
+	integer file;
+	
+	// Golden data
+	reg [7:0] goldenData [0:4*`LIS_SIZE-1];
+
+	// clk, rst, power signals
+	reg clock;
+    reg RSTB;
+	reg power1, power2;
+
+	// testbench signals
+    wire 		gpio;
+    wire [37:0] mprj_io;
+
+	// Output stream data wires
+	reg 	    out_ready = 0;
+	wire 	    out_valid;
+	wire  [7:0] out_data;
+	reg   [7:0] out_temp;
+
+	// Input stream data wires
+	wire 	    in_ready;
+	reg 	    in_valid = 0;
+	reg  [7:0]  in_data = 8'h04;
+	reg			in_last = 0;
+
+	reg [15:0] dataCounter = 16'b0;
+
+	// Assign wires
+	assign mprj_io[11]  = out_ready;
+	assign out_valid    = mprj_io[12];
+	assign out_data     = mprj_io[20:13];
+
+	assign in_ready 	= mprj_io[0];
+	assign mprj_io[1]   = in_valid;
+	assign mprj_io[9:2] = in_data[7:0];
+	assign mprj_io[10]  = in_last;
+
+	
+	// toggle clock
+	always #500 clock <= (clock === 1'b0);
+
+	// Read golden data
+	initial $readmemh("./../../../../../../cargo/lis/test_run_dir/LISTest/BIST_LISFIFO_POUT/output.txt", goldenData);
+
+	// open file for writting
+	initial begin
+		$printtimescale(BIST_LISFIFO_POUT_tb);
+		file = $fopen("output.txt","w");
+		if (file) $display("File was opened successfully : %0d", file);
+    	else $display("File was NOT opened successfully : %0d", file);
+	end
+
+	initial begin
+		clock = 0;
+		#500 out_ready = 1'b1; // Set out_ready
+	end
+
+
+	// Check outStream.ready and outStream.valid and collect data
+	always @ (posedge clock) begin
+		if (out_ready == 1'b1 && out_valid == 1'b1) begin
+			$fwriteh(file, "%h\n" ,out_data);
+			if (out_data != goldenData[dataCounter]) begin
+				$display("%c[1;31m",27);
+				$display ("Monitor: Test BIST_LISFIFO_POUT failed!!! Read data was %h, but should be %h.", out_data, goldenData[dataCounter]);
+				$display("%c[0m",27);
+				$fclose(file); 
+				$finish;
+			end
+			dataCounter <= dataCounter + 1'b1;
+		end
+	end
+
+	initial begin
+		$dumpfile("BIST_LISFIFO_POUT.vcd");
+		$dumpvars(0, BIST_LISFIFO_POUT_tb);
+
+		// Repeat cycles of 1000 clock edges as needed to complete testbench
+		repeat (30) begin
+			repeat (1000) @(posedge clock);
+			// $display("+1000 cycles");
+		end
+		$display("%c[1;31m",27);
+		$display ("Monitor: Test BIST_LISFIFO_POUT Failed!!! Timeout.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	// Check if enough data was send, and if so terminate test
+	initial begin
+		wait(dataCounter == 16'd 4*`LIS_SIZE);
+		$display("%c[1;32m",27);
+		$display("Monitor: Test BIST_LISFIFO_POUT passed.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	initial begin
+		RSTB <= 1'b0;
+		#10000;
+		RSTB <= 1'b1;	    // Release reset
+		#20000;
+	end
+
+	initial begin		// Power-up sequence
+		power1 <= 1'b0;
+		power2 <= 1'b0;
+		#200;
+		power1 <= 1'b1;
+		#200;
+		power2 <= 1'b1;
+	end
+
+    wire flash_csb;
+	wire flash_clk;
+	wire flash_io0;
+	wire flash_io1;
+
+	wire VDD1V8;
+    wire VDD3V3;
+	wire VSS;
+    
+	assign VDD3V3 = power1;
+	assign VDD1V8 = power2;
+	assign VSS = 1'b0;
+
+	caravel uut (
+		.vddio	  (VDD3V3),
+		.vssio	  (VSS),
+		.vdda	  (VDD3V3),
+		.vssa	  (VSS),
+		.vccd	  (VDD1V8),
+		.vssd	  (VSS),
+		.vdda1    (VDD3V3),
+		.vdda2    (VDD3V3),
+		.vssa1	  (VSS),
+		.vssa2	  (VSS),
+		.vccd1	  (VDD1V8),
+		.vccd2	  (VDD1V8),
+		.vssd1	  (VSS),
+		.vssd2	  (VSS),
+		.clock	  (clock),
+		.gpio     (gpio),
+        .mprj_io  (mprj_io),
+		.flash_csb(flash_csb),
+		.flash_clk(flash_clk),
+		.flash_io0(flash_io0),
+		.flash_io1(flash_io1),
+		.resetb	  (RSTB)
+	);
+
+	spiflash #(
+		.FILENAME("BIST_LISFIFO_POUT.hex")
+	) spiflash (
+		.csb(flash_csb),
+		.clk(flash_clk),
+		.io0(flash_io0),
+		.io1(flash_io1),
+		.io2(),
+		.io3()
+	);
+
+endmodule
+`default_nettype wire
diff --git a/cargo/top/dv/LISTest/lis/BIST_LISFIFO_POUT/Makefile b/cargo/top/dv/LISTest/lis/BIST_LISFIFO_POUT/Makefile
new file mode 100644
index 0000000..68a88e7
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/BIST_LISFIFO_POUT/Makefile
@@ -0,0 +1,54 @@
+CARAVEL_PATH = ./../../../../../..
+
+FIRMWARE_PATH = ../..
+RTL_PATH = $(CARAVEL_PATH)/verilog/rtl
+IP_PATH = $(CARAVEL_PATH)/verilog/ip
+BEHAVIOURAL_MODELS = ../../ 
+
+CARGO_PATH   = $(CARAVEL_PATH)/cargo
+WB2AXI_PATH  = $(CARAVEL_PATH)/cargo/wb2axip/rtl
+PROJECT_PATH = $(CARAVEL_PATH)/cargo/lis/rtl/LISTest
+TOP_PATH     = $(CARAVEL_PATH)/cargo/top/rtl/LISTest
+
+GCC_PATH?=$(RISCV32)/bin
+GCC_PREFIX?=riscv32-unknown-elf
+PDK_PATH?=$(PDK_ROOT)/sky130A
+
+LIS_SIZE?=24 # Pass fft size to testbench and c code
+
+.SUFFIXES:
+
+PATTERN = BIST_LISFIFO_POUT
+
+all:  ${PATTERN:=.vcd}
+
+hex:  ${PATTERN:=.hex}
+
+%.vvp: %_tb.v %.hex
+	iverilog -DFUNCTIONAL -DSIM -DLIS_SIZE=$(LIS_SIZE) -I $(BEHAVIOURAL_MODELS) \
+	-I $(WB2AXI_PATH)  \
+	-I $(PROJECT_PATH) \
+	-I $(TOP_PATH) \
+	-I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) \
+	$< -o $@
+
+%.vcd: %.vvp
+	vvp $<
+
+%.elf: %.c $(FIRMWARE_PATH)/sections.lds $(FIRMWARE_PATH)/start.s
+	${GCC_PATH}/${GCC_PREFIX}-gcc -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,$(FIRMWARE_PATH)/sections.lds,--strip-debug -ffreestanding -nostdlib -DLIS_SIZE=$(LIS_SIZE) -o $@ $(FIRMWARE_PATH)/start.s $<
+
+%.hex: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@ 
+	# to fix flash base address
+	sed -i 's/@10000000/@00000000/g' $@
+
+%.bin: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O binary $< /dev/stdout | tail -c +1048577 > $@
+
+# ---- Clean ----
+
+clean:
+	rm -f *.elf *.hex *.bin *.vvp *.vcd *.log *.txt
+
+.PHONY: clean hex all
diff --git a/cargo/top/dv/LISTest/lis/BIST_LISFixed_POUT/BIST_LISFixed_POUT.c b/cargo/top/dv/LISTest/lis/BIST_LISFixed_POUT/BIST_LISFixed_POUT.c
new file mode 100644
index 0000000..d45569a
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/BIST_LISFixed_POUT/BIST_LISFixed_POUT.c
@@ -0,0 +1,62 @@
+#include "../../defs.h"
+#include "../../stub.c"
+
+#include "../../lisDefs.h"
+
+/*
+	LIS Test:
+*/
+
+
+void main()
+{
+	// Configure GPIO pins
+        reg_mprj_io_24 = GPIO_MODE_USER_STD_INPUT_PULLUP;
+        reg_mprj_io_23 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_22 = GPIO_MODE_USER_STD_OUTPUT;
+
+        reg_mprj_io_21 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_20 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_19 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_18 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_17 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_14 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_13 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_12 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_11 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+
+        reg_mprj_io_10 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_9  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_8  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_7  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_6  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_5  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_4  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_3  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_2  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_1  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_0  = GPIO_MODE_USER_STD_OUTPUT;
+
+        /* Apply configuration */
+        reg_mprj_xfer = 1;
+        while (reg_mprj_xfer == 1);
+
+        bistAddress_reg(2*BEATBYTES) = 0x1; // configure counter to be active
+        bistAddress_reg(3*BEATBYTES) = 0x1; // configure counter to be up counter
+  
+        lisFixedMuxAddress0_reg(0) = 0x0;
+        lisFixedAddress_reg(4*BEATBYTES) = LIS_SIZE/2;
+
+        lisFIFOMuxAddress0_reg(BEATBYTES) = 0x0;
+        lisInputMuxAddress0_reg(BEATBYTES) = 0x0;
+        
+        // configure fixed -> outMux
+        outMuxAddress_reg(0) = 0x2;
+        // configure bist_split -> out_mux
+        outMuxAddress_reg(2*BEATBYTES) = 0x3;
+  
+        // enable bist
+        bistAddress_reg(0) =  0x1; 
+}
\ No newline at end of file
diff --git a/cargo/top/dv/LISTest/lis/BIST_LISFixed_POUT/BIST_LISFixed_POUT_tb.v b/cargo/top/dv/LISTest/lis/BIST_LISFixed_POUT/BIST_LISFixed_POUT_tb.v
new file mode 100644
index 0000000..69774d5
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/BIST_LISFixed_POUT/BIST_LISFixed_POUT_tb.v
@@ -0,0 +1,176 @@
+`default_nettype none
+
+`timescale 1 ns / 1 ps
+
+`include "caravel.v"
+`include "spiflash.v"
+
+module BIST_LISFixed_POUT_tb;
+	// declare file for writing data
+	integer file;
+	
+	// Golden data
+	reg [7:0] goldenData [0:4*`LIS_SIZE-1];
+
+	// clk, rst, power signals
+	reg clock;
+    reg RSTB;
+	reg power1, power2;
+
+	// testbench signals
+    wire 		gpio;
+    wire [37:0] mprj_io;
+
+	// Output stream data wires
+	reg 	    out_ready = 0;
+	wire 	    out_valid;
+	wire  [7:0] out_data;
+	reg   [7:0] out_temp;
+
+	// Input stream data wires
+	wire 	    in_ready;
+	reg 	    in_valid = 0;
+	reg  [7:0]  in_data = 8'h04;
+	reg			in_last = 0;
+
+	reg [15:0] dataCounter = 16'b0;
+
+	// Assign wires
+	assign mprj_io[11]  = out_ready;
+	assign out_valid    = mprj_io[12];
+	assign out_data     = mprj_io[20:13];
+
+	assign in_ready 	= mprj_io[0];
+	assign mprj_io[1]   = in_valid;
+	assign mprj_io[9:2] = in_data[7:0];
+	assign mprj_io[10]  = in_last;
+
+	
+	// toggle clock
+	always #500 clock <= (clock === 1'b0);
+
+	// Read golden data
+	initial $readmemh("./../../../../../../cargo/lis/test_run_dir/LISTest/BIST_LISFixed_POUT/output.txt", goldenData);
+
+	// open file for writting
+	initial begin
+		$printtimescale(BIST_LISFixed_POUT_tb);
+		file = $fopen("output.txt","w");
+		if (file) $display("File was opened successfully : %0d", file);
+    	else $display("File was NOT opened successfully : %0d", file);
+	end
+
+	initial begin
+		clock = 0;
+		#500 out_ready = 1'b1; // Set out_ready
+	end
+
+
+	// Check outStream.ready and outStream.valid and collect data
+	always @ (posedge clock) begin
+		if (out_ready == 1'b1 && out_valid == 1'b1) begin
+			$fwriteh(file, "%h\n" ,out_data);
+			if (out_data != goldenData[dataCounter]) begin
+				$display("%c[1;31m",27);
+				$display ("Monitor: Test BIST_LISFixed_POUT failed!!! Read data was %h, but should be %h.", out_data, goldenData[dataCounter]);
+				$display("%c[0m",27);
+				$fclose(file); 
+				$finish;
+			end
+			dataCounter <= dataCounter + 1'b1;
+		end
+	end
+
+	initial begin
+		$dumpfile("BIST_LISFixed_POUT.vcd");
+		$dumpvars(0, BIST_LISFixed_POUT_tb);
+
+		// Repeat cycles of 1000 clock edges as needed to complete testbench
+		repeat (30) begin
+			repeat (1000) @(posedge clock);
+			// $display("+1000 cycles");
+		end
+		$display("%c[1;31m",27);
+		$display ("Monitor: Test BIST_LISFixed_POUT Failed!!! Timeout.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	// Check if enough data was send, and if so terminate test
+	initial begin
+		wait(dataCounter == 16'd 4*`LIS_SIZE);
+		$display("%c[1;32m",27);
+		$display("Monitor: Test BIST_LISFixed_POUT passed.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	initial begin
+		RSTB <= 1'b0;
+		#10000;
+		RSTB <= 1'b1;	    // Release reset
+		#20000;
+	end
+
+	initial begin		// Power-up sequence
+		power1 <= 1'b0;
+		power2 <= 1'b0;
+		#200;
+		power1 <= 1'b1;
+		#200;
+		power2 <= 1'b1;
+	end
+
+    wire flash_csb;
+	wire flash_clk;
+	wire flash_io0;
+	wire flash_io1;
+
+	wire VDD1V8;
+    wire VDD3V3;
+	wire VSS;
+    
+	assign VDD3V3 = power1;
+	assign VDD1V8 = power2;
+	assign VSS = 1'b0;
+
+	caravel uut (
+		.vddio	  (VDD3V3),
+		.vssio	  (VSS),
+		.vdda	  (VDD3V3),
+		.vssa	  (VSS),
+		.vccd	  (VDD1V8),
+		.vssd	  (VSS),
+		.vdda1    (VDD3V3),
+		.vdda2    (VDD3V3),
+		.vssa1	  (VSS),
+		.vssa2	  (VSS),
+		.vccd1	  (VDD1V8),
+		.vccd2	  (VDD1V8),
+		.vssd1	  (VSS),
+		.vssd2	  (VSS),
+		.clock	  (clock),
+		.gpio     (gpio),
+        .mprj_io  (mprj_io),
+		.flash_csb(flash_csb),
+		.flash_clk(flash_clk),
+		.flash_io0(flash_io0),
+		.flash_io1(flash_io1),
+		.resetb	  (RSTB)
+	);
+
+	spiflash #(
+		.FILENAME("BIST_LISFixed_POUT.hex")
+	) spiflash (
+		.csb(flash_csb),
+		.clk(flash_clk),
+		.io0(flash_io0),
+		.io1(flash_io1),
+		.io2(),
+		.io3()
+	);
+
+endmodule
+`default_nettype wire
diff --git a/cargo/top/dv/LISTest/lis/BIST_LISFixed_POUT/Makefile b/cargo/top/dv/LISTest/lis/BIST_LISFixed_POUT/Makefile
new file mode 100644
index 0000000..175e596
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/BIST_LISFixed_POUT/Makefile
@@ -0,0 +1,54 @@
+CARAVEL_PATH = ./../../../../../..
+
+FIRMWARE_PATH = ../..
+RTL_PATH = $(CARAVEL_PATH)/verilog/rtl
+IP_PATH = $(CARAVEL_PATH)/verilog/ip
+BEHAVIOURAL_MODELS = ../../ 
+
+CARGO_PATH   = $(CARAVEL_PATH)/cargo
+WB2AXI_PATH  = $(CARAVEL_PATH)/cargo/wb2axip/rtl
+PROJECT_PATH = $(CARAVEL_PATH)/cargo/lis/rtl/LISTest
+TOP_PATH     = $(CARAVEL_PATH)/cargo/top/rtl/LISTest
+
+GCC_PATH?=$(RISCV32)/bin
+GCC_PREFIX?=riscv32-unknown-elf
+PDK_PATH?=$(PDK_ROOT)/sky130A
+
+LIS_SIZE?=24 # Pass fft size to testbench and c code
+
+.SUFFIXES:
+
+PATTERN = BIST_LISFixed_POUT
+
+all:  ${PATTERN:=.vcd}
+
+hex:  ${PATTERN:=.hex}
+
+%.vvp: %_tb.v %.hex
+	iverilog -DFUNCTIONAL -DSIM -DLIS_SIZE=$(LIS_SIZE) -I $(BEHAVIOURAL_MODELS) \
+	-I $(WB2AXI_PATH)  \
+	-I $(PROJECT_PATH) \
+	-I $(TOP_PATH) \
+	-I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) \
+	$< -o $@
+
+%.vcd: %.vvp
+	vvp $<
+
+%.elf: %.c $(FIRMWARE_PATH)/sections.lds $(FIRMWARE_PATH)/start.s
+	${GCC_PATH}/${GCC_PREFIX}-gcc -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,$(FIRMWARE_PATH)/sections.lds,--strip-debug -ffreestanding -nostdlib -DLIS_SIZE=$(LIS_SIZE) -o $@ $(FIRMWARE_PATH)/start.s $<
+
+%.hex: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@ 
+	# to fix flash base address
+	sed -i 's/@10000000/@00000000/g' $@
+
+%.bin: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O binary $< /dev/stdout | tail -c +1048577 > $@
+
+# ---- Clean ----
+
+clean:
+	rm -f *.elf *.hex *.bin *.vvp *.vcd *.log *.txt
+
+.PHONY: clean hex all
diff --git a/cargo/top/dv/LISTest/lis/BIST_LISInput_POUT/BIST_LISInput_POUT.c b/cargo/top/dv/LISTest/lis/BIST_LISInput_POUT/BIST_LISInput_POUT.c
new file mode 100644
index 0000000..8c98398
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/BIST_LISInput_POUT/BIST_LISInput_POUT.c
@@ -0,0 +1,63 @@
+#include "../../defs.h"
+#include "../../stub.c"
+
+#include "../../lisDefs.h"
+
+/*
+	LIS Test:
+*/
+
+
+void main()
+{
+	// Configure GPIO pins
+        reg_mprj_io_24 = GPIO_MODE_USER_STD_INPUT_PULLUP;
+        reg_mprj_io_23 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_22 = GPIO_MODE_USER_STD_OUTPUT;
+
+        reg_mprj_io_21 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_20 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_19 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_18 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_17 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_14 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_13 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_12 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_11 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+
+        reg_mprj_io_10 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_9  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_8  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_7  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_6  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_5  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_4  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_3  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_2  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_1  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_0  = GPIO_MODE_USER_STD_OUTPUT;
+
+        /* Apply configuration */
+        reg_mprj_xfer = 1;
+        while (reg_mprj_xfer == 1);
+
+        bistAddress_reg(2*BEATBYTES) = 0x1; // configure counter to be active
+        bistAddress_reg(3*BEATBYTES) = 0x1; // configure counter to be up counter
+  
+        lisInputMuxAddress0_reg(0) = 0x0;
+        lisInputAddress_reg(4*BEATBYTES) = LIS_SIZE/2;
+        lisFIFOMuxAddress0_reg(BEATBYTES) = 0x0;
+        lisFixedMuxAddress0_reg(BEATBYTES) = 0x0;
+  
+        // configure fixed -> outMux
+        outMuxAddress_reg(0) = 0x1;
+        // configure bist_split -> out_mux
+        outMuxAddress_reg(2*BEATBYTES) = 0x3;
+  
+        // enable bist
+        bistAddress_reg(0) =  0x1;
+  
+}
+
diff --git a/cargo/top/dv/LISTest/lis/BIST_LISInput_POUT/BIST_LISInput_POUT_tb.v b/cargo/top/dv/LISTest/lis/BIST_LISInput_POUT/BIST_LISInput_POUT_tb.v
new file mode 100644
index 0000000..9362657
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/BIST_LISInput_POUT/BIST_LISInput_POUT_tb.v
@@ -0,0 +1,176 @@
+`default_nettype none
+
+`timescale 1 ns / 1 ps
+
+`include "caravel.v"
+`include "spiflash.v"
+
+module BIST_LISInput_POUT_tb;
+	// declare file for writing data
+	integer file;
+	
+	// Golden data
+	reg [7:0] goldenData [0:4*`LIS_SIZE-1];
+
+	// clk, rst, power signals
+	reg clock;
+    reg RSTB;
+	reg power1, power2;
+
+	// testbench signals
+    wire 		gpio;
+    wire [37:0] mprj_io;
+
+	// Output stream data wires
+	reg 	    out_ready = 0;
+	wire 	    out_valid;
+	wire  [7:0] out_data;
+	reg   [7:0] out_temp;
+
+	// Input stream data wires
+	wire 	    in_ready;
+	reg 	    in_valid = 0;
+	reg  [7:0]  in_data = 8'h04;
+	reg			in_last = 0;
+
+	reg [15:0] dataCounter = 16'b0;
+
+	// Assign wires
+	assign mprj_io[11]  = out_ready;
+	assign out_valid    = mprj_io[12];
+	assign out_data     = mprj_io[20:13];
+
+	assign in_ready 	= mprj_io[0];
+	assign mprj_io[1]   = in_valid;
+	assign mprj_io[9:2] = in_data[7:0];
+	assign mprj_io[10]  = in_last;
+
+	
+	// toggle clock
+	always #500 clock <= (clock === 1'b0);
+
+	// Read golden data
+	initial $readmemh("./../../../../../../cargo/lis/test_run_dir/LISTest/BIST_LISInput_POUT/output.txt", goldenData);
+
+	// open file for writting
+	initial begin
+		$printtimescale(BIST_LISInput_POUT_tb);
+		file = $fopen("output.txt","w");
+		if (file) $display("File was opened successfully : %0d", file);
+    	else $display("File was NOT opened successfully : %0d", file);
+	end
+
+	initial begin
+		clock = 0;
+		#500 out_ready = 1'b1; // Set out_ready
+	end
+
+
+	// Check outStream.ready and outStream.valid and collect data
+	always @ (posedge clock) begin
+		if (out_ready == 1'b1 && out_valid == 1'b1) begin
+			$fwriteh(file, "%h\n" ,out_data);
+			if (out_data != goldenData[dataCounter]) begin
+				$display("%c[1;31m",27);
+				$display ("Monitor: Test BIST_LISInput_POUT failed!!! Read data was %h, but should be %h.", out_data, goldenData[dataCounter]);
+				$display("%c[0m",27);
+				$fclose(file); 
+				$finish;
+			end
+			dataCounter <= dataCounter + 1'b1;
+		end
+	end
+
+	initial begin
+		$dumpfile("BIST_LISInput_POUT.vcd");
+		$dumpvars(0, BIST_LISInput_POUT_tb);
+
+		// Repeat cycles of 1000 clock edges as needed to complete testbench
+		repeat (30) begin
+			repeat (1000) @(posedge clock);
+			// $display("+1000 cycles");
+		end
+		$display("%c[1;31m",27);
+		$display ("Monitor: Test BIST_LISInput_POUT Failed!!! Timeout.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	// Check if enough data was send, and if so terminate test
+	initial begin
+		wait(dataCounter == 16'd 4*`LIS_SIZE);
+		$display("%c[1;32m",27);
+		$display("Monitor: Test BIST_LISInput_POUT passed.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	initial begin
+		RSTB <= 1'b0;
+		#10000;
+		RSTB <= 1'b1;	    // Release reset
+		#20000;
+	end
+
+	initial begin		// Power-up sequence
+		power1 <= 1'b0;
+		power2 <= 1'b0;
+		#200;
+		power1 <= 1'b1;
+		#200;
+		power2 <= 1'b1;
+	end
+
+    wire flash_csb;
+	wire flash_clk;
+	wire flash_io0;
+	wire flash_io1;
+
+	wire VDD1V8;
+    wire VDD3V3;
+	wire VSS;
+    
+	assign VDD3V3 = power1;
+	assign VDD1V8 = power2;
+	assign VSS = 1'b0;
+
+	caravel uut (
+		.vddio	  (VDD3V3),
+		.vssio	  (VSS),
+		.vdda	  (VDD3V3),
+		.vssa	  (VSS),
+		.vccd	  (VDD1V8),
+		.vssd	  (VSS),
+		.vdda1    (VDD3V3),
+		.vdda2    (VDD3V3),
+		.vssa1	  (VSS),
+		.vssa2	  (VSS),
+		.vccd1	  (VDD1V8),
+		.vccd2	  (VDD1V8),
+		.vssd1	  (VSS),
+		.vssd2	  (VSS),
+		.clock	  (clock),
+		.gpio     (gpio),
+        .mprj_io  (mprj_io),
+		.flash_csb(flash_csb),
+		.flash_clk(flash_clk),
+		.flash_io0(flash_io0),
+		.flash_io1(flash_io1),
+		.resetb	  (RSTB)
+	);
+
+	spiflash #(
+		.FILENAME("BIST_LISInput_POUT.hex")
+	) spiflash (
+		.csb(flash_csb),
+		.clk(flash_clk),
+		.io0(flash_io0),
+		.io1(flash_io1),
+		.io2(),
+		.io3()
+	);
+
+endmodule
+`default_nettype wire
diff --git a/cargo/top/dv/LISTest/lis/BIST_LISInput_POUT/Makefile b/cargo/top/dv/LISTest/lis/BIST_LISInput_POUT/Makefile
new file mode 100644
index 0000000..0f7775b
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/BIST_LISInput_POUT/Makefile
@@ -0,0 +1,54 @@
+CARAVEL_PATH = ./../../../../../..
+
+FIRMWARE_PATH = ../..
+RTL_PATH = $(CARAVEL_PATH)/verilog/rtl
+IP_PATH = $(CARAVEL_PATH)/verilog/ip
+BEHAVIOURAL_MODELS = ../../ 
+
+CARGO_PATH   = $(CARAVEL_PATH)/cargo
+WB2AXI_PATH  = $(CARAVEL_PATH)/cargo/wb2axip/rtl
+PROJECT_PATH = $(CARAVEL_PATH)/cargo/lis/rtl/LISTest
+TOP_PATH     = $(CARAVEL_PATH)/cargo/top/rtl/LISTest
+
+GCC_PATH?=$(RISCV32)/bin
+GCC_PREFIX?=riscv32-unknown-elf
+PDK_PATH?=$(PDK_ROOT)/sky130A
+
+LIS_SIZE?=24 # Pass fft size to testbench and c code
+
+.SUFFIXES:
+
+PATTERN = BIST_LISInput_POUT
+
+all:  ${PATTERN:=.vcd}
+
+hex:  ${PATTERN:=.hex}
+
+%.vvp: %_tb.v %.hex
+	iverilog -DFUNCTIONAL -DSIM -DLIS_SIZE=$(LIS_SIZE) -I $(BEHAVIOURAL_MODELS) \
+	-I $(WB2AXI_PATH)  \
+	-I $(PROJECT_PATH) \
+	-I $(TOP_PATH) \
+	-I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) \
+	$< -o $@
+
+%.vcd: %.vvp
+	vvp $<
+
+%.elf: %.c $(FIRMWARE_PATH)/sections.lds $(FIRMWARE_PATH)/start.s
+	${GCC_PATH}/${GCC_PREFIX}-gcc -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,$(FIRMWARE_PATH)/sections.lds,--strip-debug -ffreestanding -nostdlib -DLIS_SIZE=$(LIS_SIZE) -o $@ $(FIRMWARE_PATH)/start.s $<
+
+%.hex: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@ 
+	# to fix flash base address
+	sed -i 's/@10000000/@00000000/g' $@
+
+%.bin: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O binary $< /dev/stdout | tail -c +1048577 > $@
+
+# ---- Clean ----
+
+clean:
+	rm -f *.elf *.hex *.bin *.vvp *.vcd *.log *.txt
+
+.PHONY: clean hex all
diff --git a/cargo/top/dv/LISTest/lis/Makefile b/cargo/top/dv/LISTest/lis/Makefile
new file mode 100644
index 0000000..61be999
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/Makefile
@@ -0,0 +1,19 @@
+# ---- Test patterns ----
+
+.SUFFIXES:
+.SILENT: clean all
+
+PATTERNS = BIST_LISInput_POUT BIST_LISFixed_POUT BIST_LISFIFO_POUT PIN_LISInput_POUT PIN_LISFixed_POUT PIN_LISFIFO_POUT
+
+all:  ${PATTERNS}
+	for i in ${PATTERNS}; do \
+		( cd $$i && make -f Makefile $${i}.vcd &> verify.log && grep Monitor verify.log) ; \
+	done
+
+clean:  ${PATTERNS}
+	for i in ${PATTERNS}; do \
+		rm -f verify.log; \
+		( cd $$i && make clean ) ; \
+	done
+
+.PHONY: clean all
diff --git a/cargo/top/dv/LISTest/lis/PIN_LISFIFO_POUT/Makefile b/cargo/top/dv/LISTest/lis/PIN_LISFIFO_POUT/Makefile
new file mode 100644
index 0000000..c424429
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/PIN_LISFIFO_POUT/Makefile
@@ -0,0 +1,54 @@
+CARAVEL_PATH = ./../../../../../..
+
+FIRMWARE_PATH = ../..
+RTL_PATH = $(CARAVEL_PATH)/verilog/rtl
+IP_PATH = $(CARAVEL_PATH)/verilog/ip
+BEHAVIOURAL_MODELS = ../../ 
+
+CARGO_PATH   = $(CARAVEL_PATH)/cargo
+WB2AXI_PATH  = $(CARAVEL_PATH)/cargo/wb2axip/rtl
+PROJECT_PATH = $(CARAVEL_PATH)/cargo/lis/rtl/LISTest
+TOP_PATH     = $(CARAVEL_PATH)/cargo/top/rtl/LISTest
+
+GCC_PATH?=$(RISCV32)/bin
+GCC_PREFIX?=riscv32-unknown-elf
+PDK_PATH?=$(PDK_ROOT)/sky130A
+
+LIS_SIZE?=24 # Pass fft size to testbench and c code
+
+.SUFFIXES:
+
+PATTERN = PIN_LISFIFO_POUT
+
+all:  ${PATTERN:=.vcd}
+
+hex:  ${PATTERN:=.hex}
+
+%.vvp: %_tb.v %.hex
+	iverilog -DFUNCTIONAL -DSIM -DLIS_SIZE=$(LIS_SIZE) -I $(BEHAVIOURAL_MODELS) \
+	-I $(WB2AXI_PATH)  \
+	-I $(PROJECT_PATH) \
+	-I $(TOP_PATH) \
+	-I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) \
+	$< -o $@
+
+%.vcd: %.vvp
+	vvp $<
+
+%.elf: %.c $(FIRMWARE_PATH)/sections.lds $(FIRMWARE_PATH)/start.s
+	${GCC_PATH}/${GCC_PREFIX}-gcc -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,$(FIRMWARE_PATH)/sections.lds,--strip-debug -ffreestanding -nostdlib -DLIS_SIZE=$(LIS_SIZE) -o $@ $(FIRMWARE_PATH)/start.s $<
+
+%.hex: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@ 
+	# to fix flash base address
+	sed -i 's/@10000000/@00000000/g' $@
+
+%.bin: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O binary $< /dev/stdout | tail -c +1048577 > $@
+
+# ---- Clean ----
+
+clean:
+	rm -f *.elf *.hex *.bin *.vvp *.vcd *.log *.txt
+
+.PHONY: clean hex all
diff --git a/cargo/top/dv/LISTest/lis/PIN_LISFIFO_POUT/PIN_LISFIFO_POUT.c b/cargo/top/dv/LISTest/lis/PIN_LISFIFO_POUT/PIN_LISFIFO_POUT.c
new file mode 100644
index 0000000..d6a1627
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/PIN_LISFIFO_POUT/PIN_LISFIFO_POUT.c
@@ -0,0 +1,55 @@
+#include "../../defs.h"
+#include "../../stub.c"
+
+#include "../../lisDefs.h"
+
+/*
+	LIS Test:
+*/
+
+
+void main()
+{
+	// Configure GPIO pins
+        reg_mprj_io_24 = GPIO_MODE_USER_STD_INPUT_PULLUP;
+        reg_mprj_io_23 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_22 = GPIO_MODE_USER_STD_OUTPUT;
+
+        reg_mprj_io_21 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_20 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_19 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_18 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_17 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_14 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_13 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_12 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_11 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+
+        reg_mprj_io_10 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_9  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_8  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_7  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_6  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_5  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_4  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_3  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_2  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_1  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_0  = GPIO_MODE_USER_STD_OUTPUT;
+
+        /* Apply configuration */
+        reg_mprj_xfer = 1;
+        while (reg_mprj_xfer == 1);
+  
+        lisFIFOMuxAddress0_reg(0) = 0x1;
+        lisFIFOAddress_reg(4*BEATBYTES) = LIS_SIZE/2;
+        lisInputMuxAddress0_reg(BEATBYTES) = 0x1;
+        lisFixedMuxAddress0_reg(BEATBYTES) = 0x1;
+  
+        // configure fixed -> outMux
+        outMuxAddress_reg(0) = 0x0;
+        // configure bist_split -> out_mux
+        outMuxAddress_reg(2*BEATBYTES) = 0x4;
+}
diff --git a/cargo/top/dv/LISTest/lis/PIN_LISFIFO_POUT/PIN_LISFIFO_POUT_tb.v b/cargo/top/dv/LISTest/lis/PIN_LISFIFO_POUT/PIN_LISFIFO_POUT_tb.v
new file mode 100644
index 0000000..5f9f39f
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/PIN_LISFIFO_POUT/PIN_LISFIFO_POUT_tb.v
@@ -0,0 +1,190 @@
+`default_nettype none
+
+`timescale 1 ns / 1 ps
+
+`include "caravel.v"
+`include "spiflash.v"
+
+module PIN_LISFIFO_POUT_tb;
+	// declare file for writing data
+	integer file;
+	
+	// input data to send
+	reg [7:0] inputData [0:4*`LIS_SIZE-1];
+
+	// Golden data
+	reg [7:0] goldenData [0:4*`LIS_SIZE-1];
+
+	// clk, rst, power signals
+	reg clock;
+    reg RSTB;
+	reg power1, power2;
+
+	// testbench signals
+    wire 		gpio;
+    wire [37:0] mprj_io;
+
+	// Output stream data wires
+	reg 	    out_ready = 0;
+	wire 	    out_valid;
+	wire  [7:0] out_data;
+
+	// Input stream data wires
+	wire 	    in_ready;
+	reg 	    in_valid = 0;
+	reg  [7:0]  in_data = 8'h04;
+	reg			in_last = 0;
+
+	reg [15:0] dataCounter = 16'b0;
+	reg [15:0] dataSentCounter = 16'b0;
+
+	// Assign wires
+	assign mprj_io[11]  = out_ready;
+	assign out_valid    = mprj_io[12];
+	assign out_data     = mprj_io[20:13];
+
+	assign in_ready 	= mprj_io[0];
+	assign mprj_io[1]   = in_valid;
+	assign mprj_io[9:2] = in_data[7:0];
+	assign mprj_io[10]  = in_last;
+
+	
+	// toggle clock
+	always #500 clock <= (clock === 1'b0);
+
+	// Read input data
+	initial $readmemh("./../../../../../../cargo/lis/test_run_dir/LISTest/PIN_LISFIFO_POUT/input.txt", inputData);
+
+	// Read golden data
+	initial $readmemh("./../../../../../../cargo/lis/test_run_dir/LISTest/PIN_LISFIFO_POUT/output.txt", goldenData);
+
+	// open file for writting
+	initial begin
+		$printtimescale(PIN_LISFIFO_POUT_tb);
+		file = $fopen("output.txt","w");
+		if (file) $display("File was opened successfully : %0d", file);
+    	else $display("File was NOT opened successfully : %0d", file);
+	end
+
+	initial begin
+		clock = 0;
+		#500 out_ready = 1'b1; // Set out_ready
+	end
+
+	// Check inStream.ready and inStream.valid and send data
+	always @ (posedge clock) begin
+		if (in_ready == 1'b1) begin
+			in_valid = 1'b1;
+			in_data <= inputData[dataSentCounter % (4*`LIS_SIZE)];
+			dataSentCounter <= dataSentCounter + 1'b1;
+		end
+	end
+
+	// Check outStream.ready and outStream.valid and collect data
+	always @ (posedge clock) begin
+		if (out_ready == 1'b1 && out_valid == 1'b1) begin
+			$fwriteh(file, "%h\n" ,out_data);
+			if (out_data != goldenData[dataCounter]) begin
+				$display("%c[1;31m",27);
+				$display ("Monitor: Test PIN_LISFIFO_POUT failed!!! Read data was %h, but should be %h.", out_data, goldenData[dataCounter]);
+				$display("%c[0m",27);
+				$fclose(file); 
+				$finish;
+			end
+			dataCounter <= dataCounter + 1'b1;
+		end
+	end
+
+	initial begin
+		$dumpfile("PIN_LISFIFO_POUT.vcd");
+		$dumpvars(0, PIN_LISFIFO_POUT_tb);
+
+		// Repeat cycles of 1000 clock edges as needed to complete testbench
+		repeat (30) begin
+			repeat (1000) @(posedge clock);
+			// $display("+1000 cycles");
+		end
+		$display("%c[1;31m",27);
+		$display ("Monitor: Test PIN_LISFIFO_POUT Failed!!! Timeout.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	// Check if enough data was send, and if so terminate test
+	initial begin
+		wait(dataCounter == 16'd 4*`LIS_SIZE);
+		$display("%c[1;32m",27);
+		$display("Monitor: Test PIN_LISFIFO_POUT passed.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	initial begin
+		RSTB <= 1'b0;
+		#10000;
+		RSTB <= 1'b1;	    // Release reset
+		#20000;
+	end
+
+	initial begin		// Power-up sequence
+		power1 <= 1'b0;
+		power2 <= 1'b0;
+		#200;
+		power1 <= 1'b1;
+		#200;
+		power2 <= 1'b1;
+	end
+
+    wire flash_csb;
+	wire flash_clk;
+	wire flash_io0;
+	wire flash_io1;
+
+	wire VDD1V8;
+    wire VDD3V3;
+	wire VSS;
+    
+	assign VDD3V3 = power1;
+	assign VDD1V8 = power2;
+	assign VSS = 1'b0;
+
+	caravel uut (
+		.vddio	  (VDD3V3),
+		.vssio	  (VSS),
+		.vdda	  (VDD3V3),
+		.vssa	  (VSS),
+		.vccd	  (VDD1V8),
+		.vssd	  (VSS),
+		.vdda1    (VDD3V3),
+		.vdda2    (VDD3V3),
+		.vssa1	  (VSS),
+		.vssa2	  (VSS),
+		.vccd1	  (VDD1V8),
+		.vccd2	  (VDD1V8),
+		.vssd1	  (VSS),
+		.vssd2	  (VSS),
+		.clock	  (clock),
+		.gpio     (gpio),
+        .mprj_io  (mprj_io),
+		.flash_csb(flash_csb),
+		.flash_clk(flash_clk),
+		.flash_io0(flash_io0),
+		.flash_io1(flash_io1),
+		.resetb	  (RSTB)
+	);
+
+	spiflash #(
+		.FILENAME("PIN_LISFIFO_POUT.hex")
+	) spiflash (
+		.csb(flash_csb),
+		.clk(flash_clk),
+		.io0(flash_io0),
+		.io1(flash_io1),
+		.io2(),
+		.io3()
+	);
+
+endmodule
+`default_nettype wire
diff --git a/cargo/top/dv/LISTest/lis/PIN_LISFixed_POUT/Makefile b/cargo/top/dv/LISTest/lis/PIN_LISFixed_POUT/Makefile
new file mode 100644
index 0000000..89fe263
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/PIN_LISFixed_POUT/Makefile
@@ -0,0 +1,54 @@
+CARAVEL_PATH = ./../../../../../..
+
+FIRMWARE_PATH = ../..
+RTL_PATH = $(CARAVEL_PATH)/verilog/rtl
+IP_PATH = $(CARAVEL_PATH)/verilog/ip
+BEHAVIOURAL_MODELS = ../../ 
+
+CARGO_PATH   = $(CARAVEL_PATH)/cargo
+WB2AXI_PATH  = $(CARAVEL_PATH)/cargo/wb2axip/rtl
+PROJECT_PATH = $(CARAVEL_PATH)/cargo/lis/rtl/LISTest
+TOP_PATH     = $(CARAVEL_PATH)/cargo/top/rtl/LISTest
+
+GCC_PATH?=$(RISCV32)/bin
+GCC_PREFIX?=riscv32-unknown-elf
+PDK_PATH?=$(PDK_ROOT)/sky130A
+
+LIS_SIZE?=24 # Pass fft size to testbench and c code
+
+.SUFFIXES:
+
+PATTERN = PIN_LISFixed_POUT
+
+all:  ${PATTERN:=.vcd}
+
+hex:  ${PATTERN:=.hex}
+
+%.vvp: %_tb.v %.hex
+	iverilog -DFUNCTIONAL -DSIM -DLIS_SIZE=$(LIS_SIZE) -I $(BEHAVIOURAL_MODELS) \
+	-I $(WB2AXI_PATH)  \
+	-I $(PROJECT_PATH) \
+	-I $(TOP_PATH) \
+	-I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) \
+	$< -o $@
+
+%.vcd: %.vvp
+	vvp $<
+
+%.elf: %.c $(FIRMWARE_PATH)/sections.lds $(FIRMWARE_PATH)/start.s
+	${GCC_PATH}/${GCC_PREFIX}-gcc -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,$(FIRMWARE_PATH)/sections.lds,--strip-debug -ffreestanding -nostdlib -DLIS_SIZE=$(LIS_SIZE) -o $@ $(FIRMWARE_PATH)/start.s $<
+
+%.hex: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@ 
+	# to fix flash base address
+	sed -i 's/@10000000/@00000000/g' $@
+
+%.bin: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O binary $< /dev/stdout | tail -c +1048577 > $@
+
+# ---- Clean ----
+
+clean:
+	rm -f *.elf *.hex *.bin *.vvp *.vcd *.log *.txt
+
+.PHONY: clean hex all
diff --git a/cargo/top/dv/LISTest/lis/PIN_LISFixed_POUT/PIN_LISFixed_POUT.c b/cargo/top/dv/LISTest/lis/PIN_LISFixed_POUT/PIN_LISFixed_POUT.c
new file mode 100644
index 0000000..5aac4b6
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/PIN_LISFixed_POUT/PIN_LISFixed_POUT.c
@@ -0,0 +1,56 @@
+#include "../../defs.h"
+#include "../../stub.c"
+
+#include "../../lisDefs.h"
+
+/*
+	LIS Test:
+*/
+
+
+void main()
+{
+	// Configure GPIO pins
+        reg_mprj_io_24 = GPIO_MODE_USER_STD_INPUT_PULLUP;
+        reg_mprj_io_23 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_22 = GPIO_MODE_USER_STD_OUTPUT;
+
+        reg_mprj_io_21 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_20 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_19 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_18 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_17 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_14 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_13 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_12 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_11 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+
+        reg_mprj_io_10 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_9  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_8  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_7  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_6  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_5  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_4  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_3  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_2  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_1  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_0  = GPIO_MODE_USER_STD_OUTPUT;
+
+        /* Apply configuration */
+        reg_mprj_xfer = 1;
+        while (reg_mprj_xfer == 1);
+  
+        lisFixedMuxAddress0_reg(0) = 0x1;
+        lisFixedAddress_reg(4*BEATBYTES) = LIS_SIZE/2;
+        lisFIFOMuxAddress0_reg(BEATBYTES) = 0x1;
+        lisInputMuxAddress0_reg(BEATBYTES) = 0x1;
+  
+        // configure fixed -> outMux
+        outMuxAddress_reg(0) = 0x2;
+        // configure bist_split -> out_mux
+        outMuxAddress_reg(2*BEATBYTES) = 0x4;
+  
+}
\ No newline at end of file
diff --git a/cargo/top/dv/LISTest/lis/PIN_LISFixed_POUT/PIN_LISFixed_POUT_tb.v b/cargo/top/dv/LISTest/lis/PIN_LISFixed_POUT/PIN_LISFixed_POUT_tb.v
new file mode 100644
index 0000000..9c76dde
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/PIN_LISFixed_POUT/PIN_LISFixed_POUT_tb.v
@@ -0,0 +1,190 @@
+`default_nettype none
+
+`timescale 1 ns / 1 ps
+
+`include "caravel.v"
+`include "spiflash.v"
+
+module PIN_LISFixed_POUT_tb;
+	// declare file for writing data
+	integer file;
+	
+	// input data to send
+	reg [7:0] inputData [0:4*`LIS_SIZE-1];
+
+	// Golden data
+	reg [7:0] goldenData [0:4*`LIS_SIZE-1];
+
+	// clk, rst, power signals
+	reg clock;
+    reg RSTB;
+	reg power1, power2;
+
+	// testbench signals
+    wire 		gpio;
+    wire [37:0] mprj_io;
+
+	// Output stream data wires
+	reg 	    out_ready = 0;
+	wire 	    out_valid;
+	wire  [7:0] out_data;
+
+	// Input stream data wires
+	wire 	    in_ready;
+	reg 	    in_valid = 0;
+	reg  [7:0]  in_data = 8'h04;
+	reg			in_last = 0;
+
+	reg [15:0] dataCounter = 16'b0;
+	reg [15:0] dataSentCounter = 16'b0;
+
+	// Assign wires
+	assign mprj_io[11]  = out_ready;
+	assign out_valid    = mprj_io[12];
+	assign out_data     = mprj_io[20:13];
+
+	assign in_ready 	= mprj_io[0];
+	assign mprj_io[1]   = in_valid;
+	assign mprj_io[9:2] = in_data[7:0];
+	assign mprj_io[10]  = in_last;
+
+	
+	// toggle clock
+	always #500 clock <= (clock === 1'b0);
+
+	// Read input data
+	initial $readmemh("./../../../../../../cargo/lis/test_run_dir/LISTest/PIN_LISFixed_POUT/input.txt", inputData);
+
+	// Read golden data
+	initial $readmemh("./../../../../../../cargo/lis/test_run_dir/LISTest/PIN_LISFixed_POUT/output.txt", goldenData);
+
+	// open file for writting
+	initial begin
+		$printtimescale(PIN_LISFixed_POUT_tb);
+		file = $fopen("output.txt","w");
+		if (file) $display("File was opened successfully : %0d", file);
+    	else $display("File was NOT opened successfully : %0d", file);
+	end
+
+	initial begin
+		clock = 0;
+		#500 out_ready = 1'b1; // Set out_ready
+	end
+
+	// Check inStream.ready and inStream.valid and send data
+	always @ (posedge clock) begin
+		if (in_ready == 1'b1) begin
+			in_valid = 1'b1;
+			in_data <= inputData[dataSentCounter % (4*`LIS_SIZE)];
+			dataSentCounter <= dataSentCounter + 1'b1;
+		end
+	end
+
+	// Check outStream.ready and outStream.valid and collect data
+	always @ (posedge clock) begin
+		if (out_ready == 1'b1 && out_valid == 1'b1) begin
+			$fwriteh(file, "%h\n" ,out_data);
+			if (out_data != goldenData[dataCounter]) begin
+				$display("%c[1;31m",27);
+				$display ("Monitor: Test PIN_LISFixed_POUT failed!!! Read data was %h, but should be %h.", out_data, goldenData[dataCounter]);
+				$display("%c[0m",27);
+				$fclose(file); 
+				$finish;
+			end
+			dataCounter <= dataCounter + 1'b1;
+		end
+	end
+
+	initial begin
+		$dumpfile("PIN_LISFixed_POUT.vcd");
+		$dumpvars(0, PIN_LISFixed_POUT_tb);
+
+		// Repeat cycles of 1000 clock edges as needed to complete testbench
+		repeat (30) begin
+			repeat (1000) @(posedge clock);
+			// $display("+1000 cycles");
+		end
+		$display("%c[1;31m",27);
+		$display ("Monitor: Test PIN_LISFixed_POUT Failed!!! Timeout.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	// Check if enough data was send, and if so terminate test
+	initial begin
+		wait(dataCounter == 16'd 4*`LIS_SIZE);
+		$display("%c[1;32m",27);
+		$display("Monitor: Test PIN_LISFixed_POUT passed.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	initial begin
+		RSTB <= 1'b0;
+		#10000;
+		RSTB <= 1'b1;	    // Release reset
+		#20000;
+	end
+
+	initial begin		// Power-up sequence
+		power1 <= 1'b0;
+		power2 <= 1'b0;
+		#200;
+		power1 <= 1'b1;
+		#200;
+		power2 <= 1'b1;
+	end
+
+    wire flash_csb;
+	wire flash_clk;
+	wire flash_io0;
+	wire flash_io1;
+
+	wire VDD1V8;
+    wire VDD3V3;
+	wire VSS;
+    
+	assign VDD3V3 = power1;
+	assign VDD1V8 = power2;
+	assign VSS = 1'b0;
+
+	caravel uut (
+		.vddio	  (VDD3V3),
+		.vssio	  (VSS),
+		.vdda	  (VDD3V3),
+		.vssa	  (VSS),
+		.vccd	  (VDD1V8),
+		.vssd	  (VSS),
+		.vdda1    (VDD3V3),
+		.vdda2    (VDD3V3),
+		.vssa1	  (VSS),
+		.vssa2	  (VSS),
+		.vccd1	  (VDD1V8),
+		.vccd2	  (VDD1V8),
+		.vssd1	  (VSS),
+		.vssd2	  (VSS),
+		.clock	  (clock),
+		.gpio     (gpio),
+        .mprj_io  (mprj_io),
+		.flash_csb(flash_csb),
+		.flash_clk(flash_clk),
+		.flash_io0(flash_io0),
+		.flash_io1(flash_io1),
+		.resetb	  (RSTB)
+	);
+
+	spiflash #(
+		.FILENAME("PIN_LISFixed_POUT.hex")
+	) spiflash (
+		.csb(flash_csb),
+		.clk(flash_clk),
+		.io0(flash_io0),
+		.io1(flash_io1),
+		.io2(),
+		.io3()
+	);
+
+endmodule
+`default_nettype wire
diff --git a/cargo/top/dv/LISTest/lis/PIN_LISInput_POUT/Makefile b/cargo/top/dv/LISTest/lis/PIN_LISInput_POUT/Makefile
new file mode 100644
index 0000000..0c962e5
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/PIN_LISInput_POUT/Makefile
@@ -0,0 +1,54 @@
+CARAVEL_PATH = ./../../../../../..
+
+FIRMWARE_PATH = ../..
+RTL_PATH = $(CARAVEL_PATH)/verilog/rtl
+IP_PATH = $(CARAVEL_PATH)/verilog/ip
+BEHAVIOURAL_MODELS = ../../ 
+
+CARGO_PATH   = $(CARAVEL_PATH)/cargo
+WB2AXI_PATH  = $(CARAVEL_PATH)/cargo/wb2axip/rtl
+PROJECT_PATH = $(CARAVEL_PATH)/cargo/lis/rtl/LISTest
+TOP_PATH     = $(CARAVEL_PATH)/cargo/top/rtl/LISTest
+
+GCC_PATH?=$(RISCV32)/bin
+GCC_PREFIX?=riscv32-unknown-elf
+PDK_PATH?=$(PDK_ROOT)/sky130A
+
+LIS_SIZE?=24 # Pass fft size to testbench and c code
+
+.SUFFIXES:
+
+PATTERN = PIN_LISInput_POUT
+
+all:  ${PATTERN:=.vcd}
+
+hex:  ${PATTERN:=.hex}
+
+%.vvp: %_tb.v %.hex
+	iverilog -DFUNCTIONAL -DSIM -DLIS_SIZE=$(LIS_SIZE) -I $(BEHAVIOURAL_MODELS) \
+	-I $(WB2AXI_PATH)  \
+	-I $(PROJECT_PATH) \
+	-I $(TOP_PATH) \
+	-I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) \
+	$< -o $@
+
+%.vcd: %.vvp
+	vvp $<
+
+%.elf: %.c $(FIRMWARE_PATH)/sections.lds $(FIRMWARE_PATH)/start.s
+	${GCC_PATH}/${GCC_PREFIX}-gcc -march=rv32imc -mabi=ilp32 -Wl,-Bstatic,-T,$(FIRMWARE_PATH)/sections.lds,--strip-debug -ffreestanding -nostdlib -DLIS_SIZE=$(LIS_SIZE) -o $@ $(FIRMWARE_PATH)/start.s $<
+
+%.hex: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@ 
+	# to fix flash base address
+	sed -i 's/@10000000/@00000000/g' $@
+
+%.bin: %.elf
+	${GCC_PATH}/${GCC_PREFIX}-objcopy -O binary $< /dev/stdout | tail -c +1048577 > $@
+
+# ---- Clean ----
+
+clean:
+	rm -f *.elf *.hex *.bin *.vvp *.vcd *.log *.txt
+
+.PHONY: clean hex all
diff --git a/cargo/top/dv/LISTest/lis/PIN_LISInput_POUT/PIN_LISInput_POUT.c b/cargo/top/dv/LISTest/lis/PIN_LISInput_POUT/PIN_LISInput_POUT.c
new file mode 100644
index 0000000..390f2b6
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/PIN_LISInput_POUT/PIN_LISInput_POUT.c
@@ -0,0 +1,55 @@
+#include "../../defs.h"
+#include "../../stub.c"
+
+#include "../../lisDefs.h"
+
+/*
+	LIS Test:
+*/
+
+
+void main()
+{
+	// Configure GPIO pins
+        reg_mprj_io_24 = GPIO_MODE_USER_STD_INPUT_PULLUP;
+        reg_mprj_io_23 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_22 = GPIO_MODE_USER_STD_OUTPUT;
+
+        reg_mprj_io_21 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_20 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_19 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_18 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_17 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_14 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_13 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_12 = GPIO_MODE_USER_STD_OUTPUT;
+        reg_mprj_io_11 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+
+        reg_mprj_io_10 = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_9  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_8  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_7  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_6  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_5  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_4  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_3  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_2  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_1  = GPIO_MODE_USER_STD_INPUT_PULLDOWN;
+        reg_mprj_io_0  = GPIO_MODE_USER_STD_OUTPUT;
+
+        /* Apply configuration */
+        reg_mprj_xfer = 1;
+        while (reg_mprj_xfer == 1);
+  
+        lisInputMuxAddress0_reg(0) = 0x1;
+        lisInputAddress_reg(4*BEATBYTES) = LIS_SIZE/2;
+        lisFIFOMuxAddress0_reg(BEATBYTES) = 0x1;
+        lisFixedMuxAddress0_reg(BEATBYTES) = 0x1;
+  
+        // configure fixed -> outMux
+        outMuxAddress_reg(0) = 0x1;
+        // configure bist_split -> out_mux
+        outMuxAddress_reg(2*BEATBYTES) = 0x4;
+}
\ No newline at end of file
diff --git a/cargo/top/dv/LISTest/lis/PIN_LISInput_POUT/PIN_LISInput_POUT_tb.v b/cargo/top/dv/LISTest/lis/PIN_LISInput_POUT/PIN_LISInput_POUT_tb.v
new file mode 100644
index 0000000..e2f5275
--- /dev/null
+++ b/cargo/top/dv/LISTest/lis/PIN_LISInput_POUT/PIN_LISInput_POUT_tb.v
@@ -0,0 +1,190 @@
+`default_nettype none
+
+`timescale 1 ns / 1 ps
+
+`include "caravel.v"
+`include "spiflash.v"
+
+module PIN_LISInput_POUT_tb;
+	// declare file for writing data
+	integer file;
+	
+	// input data to send
+	reg [7:0] inputData [0:4*`LIS_SIZE-1];
+
+	// Golden data
+	reg [7:0] goldenData [0:4*`LIS_SIZE-1];
+
+	// clk, rst, power signals
+	reg clock;
+    reg RSTB;
+	reg power1, power2;
+
+	// testbench signals
+    wire 		gpio;
+    wire [37:0] mprj_io;
+
+	// Output stream data wires
+	reg 	    out_ready = 0;
+	wire 	    out_valid;
+	wire  [7:0] out_data;
+
+	// Input stream data wires
+	wire 	    in_ready;
+	reg 	    in_valid = 0;
+	reg  [7:0]  in_data = 8'h04;
+	reg			in_last = 0;
+
+	reg [15:0] dataCounter = 16'b0;
+	reg [15:0] dataSentCounter = 16'b0;
+
+	// Assign wires
+	assign mprj_io[11]  = out_ready;
+	assign out_valid    = mprj_io[12];
+	assign out_data     = mprj_io[20:13];
+
+	assign in_ready 	= mprj_io[0];
+	assign mprj_io[1]   = in_valid;
+	assign mprj_io[9:2] = in_data[7:0];
+	assign mprj_io[10]  = in_last;
+
+	
+	// toggle clock
+	always #500 clock <= (clock === 1'b0);
+
+	// Read input data
+	initial $readmemh("./../../../../../../cargo/lis/test_run_dir/LISTest/PIN_LISInput_POUT/input.txt", inputData);
+
+	// Read golden data
+	initial $readmemh("./../../../../../../cargo/lis/test_run_dir/LISTest/PIN_LISInput_POUT/output.txt", goldenData);
+
+	// open file for writting
+	initial begin
+		$printtimescale(PIN_LISInput_POUT_tb);
+		file = $fopen("output.txt","w");
+		if (file) $display("File was opened successfully : %0d", file);
+    	else $display("File was NOT opened successfully : %0d", file);
+	end
+
+	initial begin
+		clock = 0;
+		#500 out_ready = 1'b1; // Set out_ready
+	end
+
+	// Check inStream.ready and inStream.valid and send data
+	always @ (posedge clock) begin
+		if (in_ready == 1'b1) begin
+			in_valid = 1'b1;
+			in_data <= inputData[dataSentCounter % (4*`LIS_SIZE)];
+			dataSentCounter <= dataSentCounter + 1'b1;
+		end
+	end
+
+	// Check outStream.ready and outStream.valid and collect data
+	always @ (posedge clock) begin
+		if (out_ready == 1'b1 && out_valid == 1'b1) begin
+			$fwriteh(file, "%h\n" ,out_data);
+			if (out_data != goldenData[dataCounter]) begin
+				$display("%c[1;31m",27);
+				$display ("Monitor: Test PIN_LISInput_POUT failed!!! Read data was %h, but should be %h.", out_data, goldenData[dataCounter]);
+				$display("%c[0m",27);
+				$fclose(file); 
+				$finish;
+			end
+			dataCounter <= dataCounter + 1'b1;
+		end
+	end
+
+	initial begin
+		$dumpfile("PIN_LISInput_POUT.vcd");
+		$dumpvars(0, PIN_LISInput_POUT_tb);
+
+		// Repeat cycles of 1000 clock edges as needed to complete testbench
+		repeat (30) begin
+			repeat (1000) @(posedge clock);
+			// $display("+1000 cycles");
+		end
+		$display("%c[1;31m",27);
+		$display ("Monitor: Test PIN_LISInput_POUT Failed!!! Timeout.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	// Check if enough data was send, and if so terminate test
+	initial begin
+		wait(dataCounter == 16'd 4*`LIS_SIZE);
+		$display("%c[1;32m",27);
+		$display("Monitor: Test PIN_LISInput_POUT passed.");
+		$display("%c[0m",27);
+		$fclose(file); 
+		$finish;
+	end
+
+	initial begin
+		RSTB <= 1'b0;
+		#10000;
+		RSTB <= 1'b1;	    // Release reset
+		#20000;
+	end
+
+	initial begin		// Power-up sequence
+		power1 <= 1'b0;
+		power2 <= 1'b0;
+		#200;
+		power1 <= 1'b1;
+		#200;
+		power2 <= 1'b1;
+	end
+
+    wire flash_csb;
+	wire flash_clk;
+	wire flash_io0;
+	wire flash_io1;
+
+	wire VDD1V8;
+    wire VDD3V3;
+	wire VSS;
+    
+	assign VDD3V3 = power1;
+	assign VDD1V8 = power2;
+	assign VSS = 1'b0;
+
+	caravel uut (
+		.vddio	  (VDD3V3),
+		.vssio	  (VSS),
+		.vdda	  (VDD3V3),
+		.vssa	  (VSS),
+		.vccd	  (VDD1V8),
+		.vssd	  (VSS),
+		.vdda1    (VDD3V3),
+		.vdda2    (VDD3V3),
+		.vssa1	  (VSS),
+		.vssa2	  (VSS),
+		.vccd1	  (VDD1V8),
+		.vccd2	  (VDD1V8),
+		.vssd1	  (VSS),
+		.vssd2	  (VSS),
+		.clock	  (clock),
+		.gpio     (gpio),
+        .mprj_io  (mprj_io),
+		.flash_csb(flash_csb),
+		.flash_clk(flash_clk),
+		.flash_io0(flash_io0),
+		.flash_io1(flash_io1),
+		.resetb	  (RSTB)
+	);
+
+	spiflash #(
+		.FILENAME("PIN_LISInput_POUT.hex")
+	) spiflash (
+		.csb(flash_csb),
+		.clk(flash_clk),
+		.io0(flash_io0),
+		.io1(flash_io1),
+		.io2(),
+		.io3()
+	);
+
+endmodule
+`default_nettype wire
diff --git a/cargo/top/dv/LISTest/lisDefs.h b/cargo/top/dv/LISTest/lisDefs.h
new file mode 100644
index 0000000..1110616
--- /dev/null
+++ b/cargo/top/dv/LISTest/lisDefs.h
@@ -0,0 +1,66 @@
+#ifndef _LISDEF_H_
+#define _LISDEF_H_
+
+#include <stdint.h>
+#include <stdbool.h>
+
+// Helper functions
+#define _AC(X,Y)        (X##Y)
+
+#define _REG32(p, i) (*(volatile uint32_t *) ((p) + (i)))
+
+#define BEATBYTES 4
+
+#define inSplitAddress       _AC(0x30000000,UL)
+#define lisFIFOAddress       _AC(0x30001000,UL)
+#define lisFIFOMuxAddress0   _AC(0x30001100,UL)
+#define lisFixedAddress      _AC(0x30002000,UL)
+#define lisFixedMuxAddress0  _AC(0x30002100,UL)
+#define lisInputAddress      _AC(0x30003000,UL)
+#define lisInputMuxAddress0  _AC(0x30003100,UL)
+#define bistAddress          _AC(0x30004000,UL)
+#define bistSplitAddress     _AC(0x30004100,UL)
+#define outMuxAddress        _AC(0x30005000,UL)
+#define outSplitAddress      _AC(0x30005010,UL)
+#define uartParams           _AC(0x30006000,UL)
+#define uRxSplitAddress      _AC(0x30006100,UL)
+
+
+#define inSplitAddress_reg(offset)         _REG32(inSplitAddress, offset)
+#define lisFIFOAddress_reg(offset)         _REG32(lisFIFOAddress, offset)
+#define lisFIFOMuxAddress0_reg(offset)     _REG32(lisFIFOMuxAddress0, offset)
+#define lisFixedAddress_reg(offset)        _REG32(lisFixedAddress, offset)
+#define lisFixedMuxAddress0_reg(offset)    _REG32(lisFixedMuxAddress0, offset)
+#define lisInputAddress_reg(offset)        _REG32(lisInputAddress, offset)
+#define lisInputMuxAddress0_reg(offset)    _REG32(lisInputMuxAddress0, offset)
+#define bistAddress_reg(offset)            _REG32(bistAddress, offset)
+#define bistSplitAddress_reg(offset)       _REG32(bistSplitAddress, offset)
+#define outMuxAddress_reg(offset)          _REG32(outMuxAddress, offset)
+#define outSplitAddress_reg(offset)        _REG32(outSplitAddress, offset)
+#define uartParams_reg(offset)             _REG32(uartParams, offset)
+#define uRxSplitAddress_reg(offset)        _REG32(uRxSplitAddress, offset)
+
+/* Register offsets */
+#define uart_txfifo     0x00
+#define uart_rxfifo 	0x04
+#define uart_txctrl 	0x08
+#define uart_txmark 	0x0a
+#define uart_rxctrl 	0x0c
+#define uart_rxmark		0x0e
+
+#define uart_ie     	0x10
+#define uart_ip    		0x14
+#define uart_div    	0x18
+#define uart_parity		0x1c
+#define uart_wire4		0x20
+#define uart_either8or9 0x24
+
+#define mux_output_0    0x0*BEATBYTES
+#define mux_output_1    0x1*BEATBYTES
+#define mux_output_2    0x2*BEATBYTES
+
+#define spl_ctrl        0x0*BEATBYTES
+#define spl_mask        0x1*BEATBYTES
+
+// --------------------------------------------------------
+#endif
diff --git a/cargo/top/dv/LISTest/plot.py b/cargo/top/dv/LISTest/plot.py
new file mode 100644
index 0000000..1b65e1b
--- /dev/null
+++ b/cargo/top/dv/LISTest/plot.py
@@ -0,0 +1,14 @@
+import sys
+import matplotlib.pyplot as plt
+
+file1 = open(sys.argv[1],"r")  
+data = file1.read()
+file1.close()
+
+dataInt = []
+for i in range(len(data)//5):
+    dataInt.append(int(data[i*5:i*5+4],16))
+
+plt.plot(dataInt)
+plt.ylabel('N')
+plt.show()
\ No newline at end of file
diff --git a/cargo/top/dv/LISTest/sections.lds b/cargo/top/dv/LISTest/sections.lds
new file mode 100644
index 0000000..8da9aae
--- /dev/null
+++ b/cargo/top/dv/LISTest/sections.lds
@@ -0,0 +1,58 @@
+MEMORY {
+	FLASH (rx)	: ORIGIN = 0x10000000, LENGTH = 0x400000 	/* 4MB */
+	RAM(xrw)	: ORIGIN = 0x00000000, LENGTH = 0x0400		/* 256 words (1 KB) */ 
+}
+
+SECTIONS {
+	/* The program code and other data goes into FLASH */
+	.text :
+	{
+		. = ALIGN(4);
+		*(.text)	/* .text sections (code) */
+		*(.text*)	/* .text* sections (code) */
+		*(.rodata)	/* .rodata sections (constants, strings, etc.) */
+		*(.rodata*)	/* .rodata* sections (constants, strings, etc.) */
+		*(.srodata)	/* .srodata sections (constants, strings, etc.) */
+		*(.srodata*)	/* .srodata*sections (constants, strings, etc.) */
+		. = ALIGN(4);
+		_etext = .;		/* define a global symbol at end of code */
+		_sidata = _etext;	/* This is used by the startup to initialize data */
+	} >FLASH
+
+	/* Initialized data section */
+	.data : AT ( _sidata )
+	{
+		. = ALIGN(4);
+		_sdata = .;
+		_ram_start = .;
+		. = ALIGN(4);
+		*(.data)
+		*(.data*)
+		*(.sdata)
+		*(.sdata*)
+		. = ALIGN(4);
+		_edata = .;
+	} >RAM
+
+	/* Uninitialized data section */
+	.bss :
+	{
+		. = ALIGN(4);
+		_sbss = .;
+		*(.bss)
+		*(.bss*)
+		*(.sbss)
+		*(.sbss*)
+		*(COMMON)
+
+		. = ALIGN(4);
+		_ebss = .;
+	} >RAM
+
+	/* Define the start of the heap */
+	.heap :
+	{
+		. = ALIGN(4);
+		_heap_start = .;
+	} >RAM
+}
diff --git a/cargo/top/dv/LISTest/spiflash.v b/cargo/top/dv/LISTest/spiflash.v
new file mode 100644
index 0000000..d4a82d9
--- /dev/null
+++ b/cargo/top/dv/LISTest/spiflash.v
@@ -0,0 +1,414 @@
+`default_nettype none
+/*
+ *  PicoSoC - A simple example SoC using PicoRV32
+ *
+ *  Copyright (C) 2017  Clifford Wolf <clifford@clifford.at>
+ *
+ *  Permission to use, copy, modify, and/or distribute this software for any
+ *  purpose with or without fee is hereby granted, provided that the above
+ *  copyright notice and this permission notice appear in all copies.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ *  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ *  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+`timescale 1 ns / 1 ps
+
+//
+// Simple SPI flash simulation model
+//
+// This model samples io input signals 1ns before the SPI clock edge and
+// updates output signals 1ns after the SPI clock edge.
+//
+// Supported commands:
+//    AB, B9, FF, 03, BB, EB, ED
+//
+// Well written SPI flash data sheets:
+//    Cypress S25FL064L http://www.cypress.com/file/316661/download
+//    Cypress S25FL128L http://www.cypress.com/file/316171/download
+//
+
+module spiflash #(
+	parameter FILENAME = "firmware.hex"
+)(
+	input csb,
+	input clk,
+	inout io0, // MOSI
+	inout io1, // MISO
+	inout io2,
+	inout io3
+);
+	localparam verbose = 0;
+	localparam integer latency = 8;
+	
+	reg [7:0] buffer;
+	integer bitcount = 0;
+	integer bytecount = 0;
+	integer dummycount = 0;
+
+	reg [7:0] spi_cmd;
+	reg [7:0] xip_cmd = 0;
+	reg [23:0] spi_addr;
+
+	reg [7:0] spi_in;
+	reg [7:0] spi_out;
+	reg spi_io_vld;
+
+	reg powered_up = 0;
+
+	localparam [3:0] mode_spi         = 1;
+	localparam [3:0] mode_dspi_rd     = 2;
+	localparam [3:0] mode_dspi_wr     = 3;
+	localparam [3:0] mode_qspi_rd     = 4;
+	localparam [3:0] mode_qspi_wr     = 5;
+	localparam [3:0] mode_qspi_ddr_rd = 6;
+	localparam [3:0] mode_qspi_ddr_wr = 7;
+
+	reg [3:0] mode = 0;
+	reg [3:0] next_mode = 0;
+
+	reg io0_oe = 0;
+	reg io1_oe = 0;
+	reg io2_oe = 0;
+	reg io3_oe = 0;
+
+	reg io0_dout = 0;
+	reg io1_dout = 0;
+	reg io2_dout = 0;
+	reg io3_dout = 0;
+
+	assign #1 io0 = io0_oe ? io0_dout : 1'bz;
+	assign #1 io1 = io1_oe ? io1_dout : 1'bz;
+	assign #1 io2 = io2_oe ? io2_dout : 1'bz;
+	assign #1 io3 = io3_oe ? io3_dout : 1'bz;
+
+	wire io0_delayed;
+	wire io1_delayed;
+	wire io2_delayed;
+	wire io3_delayed;
+
+	assign #1 io0_delayed = io0;
+	assign #1 io1_delayed = io1;
+	assign #1 io2_delayed = io2;
+	assign #1 io3_delayed = io3;
+
+	// 16 MB (128Mb) Flash
+	reg [7:0] memory [0:16*1024*1024-1];
+
+	initial begin
+		$display("Memory 5 bytes = 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x",
+			memory[1048576], memory[1048577], memory[1048578],
+			memory[1048579], memory[1048580]);
+		$display("Reading %s",  FILENAME);
+		$readmemh(FILENAME, memory);
+		$display("%s loaded into memory", FILENAME);
+		$display("Memory 5 bytes = 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x",
+			memory[1048576], memory[1048577], memory[1048578],
+			memory[1048579], memory[1048580]);
+	end
+
+	task spi_action;
+		begin
+			spi_in = buffer;
+
+			if (bytecount == 1) begin
+				spi_cmd = buffer;
+
+				if (spi_cmd == 8'h ab)
+					powered_up = 1;
+
+				if (spi_cmd == 8'h b9)
+					powered_up = 0;
+
+				if (spi_cmd == 8'h ff)
+					xip_cmd = 0;
+			end
+
+			if (powered_up && spi_cmd == 'h 03) begin
+				if (bytecount == 2)
+					spi_addr[23:16] = buffer;
+
+				if (bytecount == 3)
+					spi_addr[15:8] = buffer;
+
+				if (bytecount == 4)
+					spi_addr[7:0] = buffer;
+
+				if (bytecount >= 4) begin
+					buffer = memory[spi_addr];
+					spi_addr = spi_addr + 1;
+				end
+			end
+
+			if (powered_up && spi_cmd == 'h bb) begin
+				if (bytecount == 1)
+					mode = mode_dspi_rd;
+
+				if (bytecount == 2)
+					spi_addr[23:16] = buffer;
+
+				if (bytecount == 3)
+					spi_addr[15:8] = buffer;
+
+				if (bytecount == 4)
+					spi_addr[7:0] = buffer;
+
+				if (bytecount == 5) begin
+					xip_cmd = (buffer == 8'h a5) ? spi_cmd : 8'h 00;
+					mode = mode_dspi_wr;
+					dummycount = latency;
+				end
+
+				if (bytecount >= 5) begin
+					buffer = memory[spi_addr];
+					spi_addr = spi_addr + 1;
+				end
+			end
+
+			if (powered_up && spi_cmd == 'h eb) begin
+				if (bytecount == 1)
+					mode = mode_qspi_rd;
+
+				if (bytecount == 2)
+					spi_addr[23:16] = buffer;
+
+				if (bytecount == 3)
+					spi_addr[15:8] = buffer;
+
+				if (bytecount == 4)
+					spi_addr[7:0] = buffer;
+
+				if (bytecount == 5) begin
+					xip_cmd = (buffer == 8'h a5) ? spi_cmd : 8'h 00;
+					mode = mode_qspi_wr;
+					dummycount = latency;
+				end
+
+				if (bytecount >= 5) begin
+					buffer = memory[spi_addr];
+					spi_addr = spi_addr + 1;
+				end
+			end
+
+			if (powered_up && spi_cmd == 'h ed) begin
+				if (bytecount == 1)
+					next_mode = mode_qspi_ddr_rd;
+
+				if (bytecount == 2)
+					spi_addr[23:16] = buffer;
+
+				if (bytecount == 3)
+					spi_addr[15:8] = buffer;
+
+				if (bytecount == 4)
+					spi_addr[7:0] = buffer;
+
+				if (bytecount == 5) begin
+					xip_cmd = (buffer == 8'h a5) ? spi_cmd : 8'h 00;
+					mode = mode_qspi_ddr_wr;
+					dummycount = latency;
+				end
+
+				if (bytecount >= 5) begin
+					buffer = memory[spi_addr];
+					spi_addr = spi_addr + 1;
+				end
+			end
+
+			spi_out = buffer;
+			spi_io_vld = 1;
+
+			if (verbose) begin
+				if (bytecount == 1)
+					$write("<SPI-START>");
+				$write("<SPI:%02x:%02x>", spi_in, spi_out);
+			end
+
+		end
+	endtask
+
+	task ddr_rd_edge;
+		begin
+			buffer = {buffer, io3_delayed, io2_delayed, io1_delayed, io0_delayed};
+			bitcount = bitcount + 4;
+			if (bitcount == 8) begin
+				bitcount = 0;
+				bytecount = bytecount + 1;
+				spi_action;
+			end
+		end
+	endtask
+
+	task ddr_wr_edge;
+		begin
+			io0_oe = 1;
+			io1_oe = 1;
+			io2_oe = 1;
+			io3_oe = 1;
+
+			io0_dout = buffer[4];
+			io1_dout = buffer[5];
+			io2_dout = buffer[6];
+			io3_dout = buffer[7];
+
+			buffer = {buffer, 4'h 0};
+			bitcount = bitcount + 4;
+			if (bitcount == 8) begin
+				bitcount = 0;
+				bytecount = bytecount + 1;
+				spi_action;
+			end
+		end
+	endtask
+
+	always @(csb) begin
+		if (csb) begin
+			if (verbose) begin
+				$display("");
+				$fflush;
+			end
+			buffer = 0;
+			bitcount = 0;
+			bytecount = 0;
+			mode = mode_spi;
+			io0_oe = 0;
+			io1_oe = 0;
+			io2_oe = 0;
+			io3_oe = 0;
+		end else
+		if (xip_cmd) begin
+			buffer = xip_cmd;
+			bitcount = 0;
+			bytecount = 1;
+			spi_action;
+		end
+	end
+
+	always @(csb, clk) begin
+		spi_io_vld = 0;
+		if (!csb && !clk) begin
+			if (dummycount > 0) begin
+				io0_oe = 0;
+				io1_oe = 0;
+				io2_oe = 0;
+				io3_oe = 0;
+			end else
+			case (mode)
+				mode_spi: begin
+					io0_oe = 0;
+					io1_oe = 1;
+					io2_oe = 0;
+					io3_oe = 0;
+					io1_dout = buffer[7];
+				end
+				mode_dspi_rd: begin
+					io0_oe = 0;
+					io1_oe = 0;
+					io2_oe = 0;
+					io3_oe = 0;
+				end
+				mode_dspi_wr: begin
+					io0_oe = 1;
+					io1_oe = 1;
+					io2_oe = 0;
+					io3_oe = 0;
+					io0_dout = buffer[6];
+					io1_dout = buffer[7];
+				end
+				mode_qspi_rd: begin
+					io0_oe = 0;
+					io1_oe = 0;
+					io2_oe = 0;
+					io3_oe = 0;
+				end
+				mode_qspi_wr: begin
+					io0_oe = 1;
+					io1_oe = 1;
+					io2_oe = 1;
+					io3_oe = 1;
+					io0_dout = buffer[4];
+					io1_dout = buffer[5];
+					io2_dout = buffer[6];
+					io3_dout = buffer[7];
+				end
+				mode_qspi_ddr_rd: begin
+					ddr_rd_edge;
+				end
+				mode_qspi_ddr_wr: begin
+					ddr_wr_edge;
+				end
+			endcase
+			if (next_mode) begin
+				case (next_mode)
+					mode_qspi_ddr_rd: begin
+						io0_oe = 0;
+						io1_oe = 0;
+						io2_oe = 0;
+						io3_oe = 0;
+					end
+					mode_qspi_ddr_wr: begin
+						io0_oe = 1;
+						io1_oe = 1;
+						io2_oe = 1;
+						io3_oe = 1;
+						io0_dout = buffer[4];
+						io1_dout = buffer[5];
+						io2_dout = buffer[6];
+						io3_dout = buffer[7];
+					end
+				endcase
+				mode = next_mode;
+				next_mode = 0;
+			end
+		end
+	end
+
+	always @(posedge clk) begin
+		if (!csb) begin
+			if (dummycount > 0) begin
+				dummycount = dummycount - 1;
+			end else
+			case (mode)
+				mode_spi: begin
+					buffer = {buffer, io0};
+					bitcount = bitcount + 1;
+					if (bitcount == 8) begin
+						bitcount = 0;
+						bytecount = bytecount + 1;
+						spi_action;
+					end
+				end
+				mode_dspi_rd, mode_dspi_wr: begin
+					buffer = {buffer, io1, io0};
+					bitcount = bitcount + 2;
+					if (bitcount == 8) begin
+						bitcount = 0;
+						bytecount = bytecount + 1;
+						spi_action;
+					end
+				end
+				mode_qspi_rd, mode_qspi_wr: begin
+					buffer = {buffer, io3, io2, io1, io0};
+					bitcount = bitcount + 4;
+					if (bitcount == 8) begin
+						bitcount = 0;
+						bytecount = bytecount + 1;
+						spi_action;
+					end
+				end
+				mode_qspi_ddr_rd: begin
+					ddr_rd_edge;
+				end
+				mode_qspi_ddr_wr: begin
+					ddr_wr_edge;
+				end
+			endcase
+		end
+	end
+endmodule
diff --git a/cargo/top/dv/LISTest/start.s b/cargo/top/dv/LISTest/start.s
new file mode 100644
index 0000000..62a6f42
--- /dev/null
+++ b/cargo/top/dv/LISTest/start.s
@@ -0,0 +1,159 @@
+.section .text
+
+start:
+
+# zero-initialize register file
+addi x1, zero, 0
+# x2 (sp) is initialized by reset
+addi x3, zero, 0
+addi x4, zero, 0
+addi x5, zero, 0
+addi x6, zero, 0
+addi x7, zero, 0
+addi x8, zero, 0
+addi x9, zero, 0
+addi x10, zero, 0
+addi x11, zero, 0
+addi x12, zero, 0
+addi x13, zero, 0
+addi x14, zero, 0
+addi x15, zero, 0
+addi x16, zero, 0
+addi x17, zero, 0
+addi x18, zero, 0
+addi x19, zero, 0
+addi x20, zero, 0
+addi x21, zero, 0
+addi x22, zero, 0
+addi x23, zero, 0
+addi x24, zero, 0
+addi x25, zero, 0
+addi x26, zero, 0
+addi x27, zero, 0
+addi x28, zero, 0
+addi x29, zero, 0
+addi x30, zero, 0
+addi x31, zero, 0
+
+# zero initialize scratchpad memory
+# setmemloop:
+# sw zero, 0(x1)
+# addi x1, x1, 4
+# blt x1, sp, setmemloop
+
+# copy data section
+la a0, _sidata
+la a1, _sdata
+la a2, _edata
+bge a1, a2, end_init_data
+loop_init_data:
+lw a3, 0(a0)
+sw a3, 0(a1)
+addi a0, a0, 4
+addi a1, a1, 4
+blt a1, a2, loop_init_data
+end_init_data:
+
+# zero-init bss section
+la a0, _sbss
+la a1, _ebss
+bge a0, a1, end_init_bss
+loop_init_bss:
+sw zero, 0(a0)
+addi a0, a0, 4
+blt a0, a1, loop_init_bss
+end_init_bss:
+
+# call main
+call main
+loop:
+j loop
+
+.global flashio_worker_begin
+.global flashio_worker_end
+
+.balign 4
+
+flashio_worker_begin:
+# a0 ... data pointer
+# a1 ... data length
+# a2 ... optional WREN cmd (0 = disable)
+
+# address of SPI ctrl reg
+li   t0, 0x28000000
+
+# Set CS high, IO0 is output
+li   t1, 0x120
+sh   t1, 0(t0)
+
+# Enable Manual SPI Ctrl
+sb   zero, 3(t0)
+
+# Send optional WREN cmd
+beqz a2, flashio_worker_L1
+li   t5, 8
+andi t2, a2, 0xff
+flashio_worker_L4:
+srli t4, t2, 7
+sb   t4, 0(t0)
+ori  t4, t4, 0x10
+sb   t4, 0(t0)
+slli t2, t2, 1
+andi t2, t2, 0xff
+addi t5, t5, -1
+bnez t5, flashio_worker_L4
+sb   t1, 0(t0)
+
+# SPI transfer
+flashio_worker_L1:
+
+# If byte count is zero, we're done
+beqz a1, flashio_worker_L3
+
+# Set t5 to count down 32 bits
+li   t5, 32
+# Load t2 from address a0 (4 bytes)
+lw   t2, 0(a0)
+
+flashio_worker_LY:
+# Set t6 to count down 8 bits
+li   t6, 8
+
+flashio_worker_L2:
+# Clock out the bit (msb first) on IO0 and read bit in from IO1
+srli t4, t2, 31
+sb   t4, 0(t0)
+ori  t4, t4, 0x10
+sb   t4, 0(t0)
+lbu  t4, 0(t0)
+andi t4, t4, 2
+srli t4, t4, 1
+slli t2, t2, 1
+or   t2, t2, t4
+
+# Decrement 32 bit count
+addi t5, t5, -1
+bnez t5, flashio_worker_LX
+
+sw   t2, 0(a0)
+addi a0, a0, 4
+lw   t2, 0(a0)
+
+flashio_worker_LX:
+addi t6, t6, -1
+bnez t6, flashio_worker_L2
+addi a1, a1, -1
+bnez a1, flashio_worker_LY
+
+beqz t5, flashio_worker_L3
+sw   t2, 0(a0)
+
+flashio_worker_L3:
+# Back to MEMIO mode
+li   t1, 0x80
+sb   t1, 3(t0)
+
+ret
+.balign 4
+flashio_worker_end:
+
diff --git a/cargo/top/dv/LISTest/stub.c b/cargo/top/dv/LISTest/stub.c
new file mode 100644
index 0000000..4d9c970
--- /dev/null
+++ b/cargo/top/dv/LISTest/stub.c
@@ -0,0 +1,12 @@
+void putchar(char c)
+{
+	if (c == '\n')
+		putchar('\r');
+	reg_uart_data = c;
+}
+
+void print(const char *p)
+{
+	while (*p)
+		putchar(*(p++));
+}
\ No newline at end of file
diff --git a/cargo/top/dv/LISTest/tbuart.v b/cargo/top/dv/LISTest/tbuart.v
new file mode 100644
index 0000000..f623a60
--- /dev/null
+++ b/cargo/top/dv/LISTest/tbuart.v
@@ -0,0 +1,90 @@
+`default_nettype none
+/*
+ *  PicoSoC - A simple example SoC using PicoRV32
+ *
+ *  Copyright (C) 2017  Clifford Wolf <clifford@clifford.at>
+ *
+ *  Permission to use, copy, modify, and/or distribute this software for any
+ *  purpose with or without fee is hereby granted, provided that the above
+ *  copyright notice and this permission notice appear in all copies.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ *  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ *  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+`timescale 1 ns / 1 ps
+
+/* tbuart --- mimic an external UART display, operating at 9600 baud	*/
+/* and accepting ASCII characters for display.				*/
+
+/* To do:  Match a known UART 3.3V 16x2 LCD display.  However, it	*/
+/* should be possible on a testing system to interface to the UART	*/
+/* pins on a Raspberry Pi, also running at 3.3V.			*/
+
+module tbuart (
+	input  ser_rx
+);
+	reg [3:0] recv_state;
+	reg [2:0] recv_divcnt;
+	reg [7:0] recv_pattern;
+	reg [8*50-1:0] recv_buf_data;	// 50 characters.  Increase as needed for tests.
+
+	reg clk;
+
+	initial begin
+		clk <= 1'b0;
+		recv_state <= 0;
+		recv_divcnt <= 0;
+		recv_pattern <= 0;
+		recv_buf_data <= 0;
+	end
+
+	// NOTE:  Running at 3.0us clock period @ 5 clocks per bit = 15.0us per
+	// bit ~= 64 kbaud. Not tuned to any particular UART.  Most run at
+	// 9600 baud default and will bounce up to higher baud rates when
+	// passed specific command words.
+
+	always #1500 clk <= (clk === 1'b0);
+
+	always @(posedge clk) begin
+		recv_divcnt <= recv_divcnt + 1;
+		case (recv_state)
+			0: begin
+				if (!ser_rx)
+					recv_state <= 1;
+				recv_divcnt <= 0;
+			end
+			1: begin
+				if (2*recv_divcnt > 3'd3) begin
+					recv_state <= 2;
+					recv_divcnt <= 0;
+				end
+			end
+			10: begin
+				if (recv_divcnt > 3'd3) begin
+					// 0x0a = '\n'
+					if (recv_pattern == 8'h0a) begin
+						$display("output: %s", recv_buf_data);
+					end else begin
+						recv_buf_data <= {recv_buf_data, recv_pattern};
+					end
+					recv_state <= 0;
+				end
+			end
+			default: begin
+				if (recv_divcnt > 3'd3) begin
+					recv_pattern <= {ser_rx, recv_pattern[7:1]};
+					recv_state <= recv_state + 1;
+					recv_divcnt <= 0;
+				end
+			end
+		endcase
+	end
+
+endmodule
diff --git a/cargo/top/dv/LISTest/uart_rx.v b/cargo/top/dv/LISTest/uart_rx.v
new file mode 100644
index 0000000..6c50c57
--- /dev/null
+++ b/cargo/top/dv/LISTest/uart_rx.v
@@ -0,0 +1,136 @@
+module uart_rx #(
+    parameter CLKS_PER_BIT = 174
+)(
+   input        i_Clock,
+   input        i_Rx_Serial,
+   output       o_Rx_DV,
+   output [7:0] o_Rx_Byte
+   );
+    
+  parameter s_IDLE         = 3'b000;
+  parameter s_RX_START_BIT = 3'b001;
+  parameter s_RX_DATA_BITS = 3'b010;
+  parameter s_RX_STOP_BIT  = 3'b011;
+  parameter s_CLEANUP      = 3'b100;
+   
+  reg           r_Rx_Data_R = 1'b1;
+  reg           r_Rx_Data   = 1'b1;
+   
+  reg [7:0]     r_Clock_Count = 0;
+  reg [2:0]     r_Bit_Index   = 0; //8 bits total
+  reg [7:0]     r_Rx_Byte     = 0;
+  reg           r_Rx_DV       = 0;
+  reg [2:0]     r_SM_Main     = 0;
+   
+  // Purpose: Double-register the incoming data.
+  // This allows it to be used in the UART RX Clock Domain.
+  // (It removes problems caused by metastability)
+  always @(posedge i_Clock)
+    begin
+      r_Rx_Data_R <= i_Rx_Serial;
+      r_Rx_Data   <= r_Rx_Data_R;
+    end
+   
+   
+  // Purpose: Control RX state machine
+  always @(posedge i_Clock)
+    begin
+       
+      case (r_SM_Main)
+        s_IDLE :
+          begin
+            r_Rx_DV       <= 1'b0;
+            r_Clock_Count <= 0;
+            r_Bit_Index   <= 0;
+             
+            if (r_Rx_Data == 1'b0)          // Start bit detected
+              r_SM_Main <= s_RX_START_BIT;
+            else
+              r_SM_Main <= s_IDLE;
+          end
+         
+        // Check middle of start bit to make sure it's still low
+        s_RX_START_BIT :
+          begin
+            if (r_Clock_Count == (CLKS_PER_BIT-1)/2)
+              begin
+                if (r_Rx_Data == 1'b0)
+                  begin
+                    r_Clock_Count <= 0;  // reset counter, found the middle
+                    r_SM_Main     <= s_RX_DATA_BITS;
+                  end
+                else
+                  r_SM_Main <= s_IDLE;
+              end
+            else
+              begin
+                r_Clock_Count <= r_Clock_Count + 1;
+                r_SM_Main     <= s_RX_START_BIT;
+              end
+          end // case: s_RX_START_BIT
+         
+         
+        // Wait CLKS_PER_BIT-1 clock cycles to sample serial data
+        s_RX_DATA_BITS :
+          begin
+            if (r_Clock_Count < CLKS_PER_BIT-1)
+              begin
+                r_Clock_Count <= r_Clock_Count + 1;
+                r_SM_Main     <= s_RX_DATA_BITS;
+              end
+            else
+              begin
+                r_Clock_Count          <= 0;
+                r_Rx_Byte[r_Bit_Index] <= r_Rx_Data;
+                 
+                // Check if we have received all bits
+                if (r_Bit_Index < 7)
+                  begin
+                    r_Bit_Index <= r_Bit_Index + 1;
+                    r_SM_Main   <= s_RX_DATA_BITS;
+                  end
+                else
+                  begin
+                    r_Bit_Index <= 0;
+                    r_SM_Main   <= s_RX_STOP_BIT;
+                  end
+              end
+          end // case: s_RX_DATA_BITS
+     
+     
+        // Receive Stop bit.  Stop bit = 1
+        s_RX_STOP_BIT :
+          begin
+            // Wait CLKS_PER_BIT-1 clock cycles for Stop bit to finish
+            if (r_Clock_Count < CLKS_PER_BIT-1)
+              begin
+                r_Clock_Count <= r_Clock_Count + 1;
+                r_SM_Main     <= s_RX_STOP_BIT;
+              end
+            else
+              begin
+                r_Rx_DV       <= 1'b1;
+                r_Clock_Count <= 0;
+                r_SM_Main     <= s_CLEANUP;
+              end
+          end // case: s_RX_STOP_BIT
+     
+         
+        // Stay here 1 clock
+        s_CLEANUP :
+          begin
+            r_SM_Main <= s_IDLE;
+            r_Rx_DV   <= 1'b0;
+          end
+         
+         
+        default :
+          r_SM_Main <= s_IDLE;
+         
+      endcase
+    end   
+   
+  assign o_Rx_DV   = r_Rx_DV;
+  assign o_Rx_Byte = r_Rx_Byte;
+   
+endmodule // uart_rx
\ No newline at end of file
diff --git a/cargo/top/dv/LISTest/uart_tx.v b/cargo/top/dv/LISTest/uart_tx.v
new file mode 100644
index 0000000..2aec756
--- /dev/null
+++ b/cargo/top/dv/LISTest/uart_tx.v
@@ -0,0 +1,133 @@
+module uart_tx 
+  #(parameter CLKS_PER_BIT)
+  (
+   input       i_Clock,
+   input       i_Tx_DV,
+   input [7:0] i_Tx_Byte, 
+   output      o_Tx_Active,
+   output reg  o_Tx_Serial,
+   output      o_Tx_Done
+   );
+  
+  parameter s_IDLE         = 3'b000;
+  parameter s_TX_START_BIT = 3'b001;
+  parameter s_TX_DATA_BITS = 3'b010;
+  parameter s_TX_STOP_BIT  = 3'b011;
+  parameter s_CLEANUP      = 3'b100;
+   
+  reg [2:0]    r_SM_Main     = 0;
+  reg [7:0]    r_Clock_Count = 0;
+  reg [2:0]    r_Bit_Index   = 0;
+  reg [7:0]    r_Tx_Data     = 0;
+  reg          r_Tx_Done     = 0;
+  reg          r_Tx_Active   = 0;
+     
+  always @(posedge i_Clock)
+    begin
+       
+      case (r_SM_Main)
+        s_IDLE :
+          begin
+            o_Tx_Serial   <= 1'b1;         // Drive Line High for Idle
+            r_Tx_Done     <= 1'b0;
+            r_Clock_Count <= 0;
+            r_Bit_Index   <= 0;
+             
+            if (i_Tx_DV == 1'b1)
+              begin
+                r_Tx_Active <= 1'b1;
+                r_Tx_Data   <= i_Tx_Byte;
+                r_SM_Main   <= s_TX_START_BIT;
+              end
+            else
+              r_SM_Main <= s_IDLE;
+          end // case: s_IDLE
+         
+         
+        // Send out Start Bit. Start bit = 0
+        s_TX_START_BIT :
+          begin
+            o_Tx_Serial <= 1'b0;
+             
+            // Wait CLKS_PER_BIT-1 clock cycles for start bit to finish
+            if (r_Clock_Count < CLKS_PER_BIT-1)
+              begin
+                r_Clock_Count <= r_Clock_Count + 1;
+                r_SM_Main     <= s_TX_START_BIT;
+              end
+            else
+              begin
+                r_Clock_Count <= 0;
+                r_SM_Main     <= s_TX_DATA_BITS;
+              end
+          end // case: s_TX_START_BIT
+         
+         
+        // Wait CLKS_PER_BIT-1 clock cycles for data bits to finish         
+        s_TX_DATA_BITS :
+          begin
+            o_Tx_Serial <= r_Tx_Data[r_Bit_Index];
+             
+            if (r_Clock_Count < CLKS_PER_BIT-1)
+              begin
+                r_Clock_Count <= r_Clock_Count + 1;
+                r_SM_Main     <= s_TX_DATA_BITS;
+              end
+            else
+              begin
+                r_Clock_Count <= 0;
+                 
+                // Check if we have sent out all bits
+                if (r_Bit_Index < 7)
+                  begin
+                    r_Bit_Index <= r_Bit_Index + 1;
+                    r_SM_Main   <= s_TX_DATA_BITS;
+                  end
+                else
+                  begin
+                    r_Bit_Index <= 0;
+                    r_SM_Main   <= s_TX_STOP_BIT;
+                  end
+              end
+          end // case: s_TX_DATA_BITS
+         
+         
+        // Send out Stop bit.  Stop bit = 1
+        s_TX_STOP_BIT :
+          begin
+            o_Tx_Serial <= 1'b1;
+             
+            // Wait CLKS_PER_BIT-1 clock cycles for Stop bit to finish
+            if (r_Clock_Count < CLKS_PER_BIT-1)
+              begin
+                r_Clock_Count <= r_Clock_Count + 1;
+                r_SM_Main     <= s_TX_STOP_BIT;
+              end
+            else
+              begin
+                r_Tx_Done     <= 1'b1;
+                r_Clock_Count <= 0;
+                r_SM_Main     <= s_CLEANUP;
+                r_Tx_Active   <= 1'b0;
+              end
+          end // case: s_Tx_STOP_BIT
+         
+         
+        // Stay here 1 clock
+        s_CLEANUP :
+          begin
+            r_Tx_Done <= 1'b1;
+            r_SM_Main <= s_IDLE;
+          end
+         
+         
+        default :
+          r_SM_Main <= s_IDLE;
+         
+      endcase
+    end
+ 
+  assign o_Tx_Active = r_Tx_Active;
+  assign o_Tx_Done   = r_Tx_Done;
+   
+endmodule
\ No newline at end of file
diff --git a/cargo/top/rtl/LISTest/user_proj_example.v b/cargo/top/rtl/LISTest/user_proj_example.v
new file mode 100644
index 0000000..fac11b2
--- /dev/null
+++ b/cargo/top/rtl/LISTest/user_proj_example.v
@@ -0,0 +1,288 @@
+`default_nettype none
+/*
+ *-------------------------------------------------------------
+ *
+ * LISTest
+ *
+ *-------------------------------------------------------------
+ */
+
+`ifdef SIM
+`include "wbm2axisp.v"
+`include "skidbuffer.v"
+`include "LISTest.v"
+`include "plusarg_reader.v"
+`endif
+
+module user_proj_example (
+`ifdef USE_POWER_PINS
+    inout vdda1,	// User area 1 3.3V supply
+    inout vdda2,	// User area 2 3.3V supply
+    inout vssa1,	// User area 1 analog ground
+    inout vssa2,	// User area 2 analog ground
+    inout vccd1,	// User area 1 1.8V supply
+    inout vccd2,	// User area 2 1.8v supply
+    inout vssd1,	// User area 1 digital ground
+    inout vssd2,	// User area 2 digital ground
+`endif
+
+    // Wishbone Slave ports (WB MI A)
+    input wb_clk_i,
+    input wb_rst_i,
+    input wbs_stb_i,
+    input wbs_cyc_i,
+    input wbs_we_i,
+    input [3:0] wbs_sel_i,
+    input [31:0] wbs_dat_i,
+    input [31:0] wbs_adr_i,
+    output wbs_ack_o,
+    output [31:0] wbs_dat_o,
+
+    // Logic Analyzer Signals
+    input  [127:0] la_data_in,
+    output [127:0] la_data_out,
+    input  [127:0] la_oen,
+
+    // IOs
+    input  [`MPRJ_IO_PADS-1:0] io_in,
+    output [`MPRJ_IO_PADS-1:0] io_out,
+    output [`MPRJ_IO_PADS-1:0] io_oeb
+);
+
+// Logic Analyzer Signals
+    wire [127:0] la_data_in;
+    wire [127:0] la_data_out;
+    wire [127:0] la_oen;
+
+// IOs
+    wire [`MPRJ_IO_PADS-1:0] io_in;
+    wire [`MPRJ_IO_PADS-1:0] io_out;
+    wire [`MPRJ_IO_PADS-1:0] io_oeb;
+
+// AXI write address channel signals
+	wire 		w_o_axi_awvalid;	// Write address valid
+	wire 		w_i_axi_awready; 	// Slave is ready to accept
+	wire 		w_o_axi_awid;		// Write ID
+	wire [33:0] w_o_axi_awaddr;		// Write address
+	wire [7:0]  w_o_axi_awlen;		// Write Burst Length
+	wire [2:0]  w_o_axi_awsize;		// Write Burst size
+	wire [1:0]  w_o_axi_awburst;	// Write Burst type
+	wire [0:0]  w_o_axi_awlock;		// Write lock type
+	wire [3:0]  w_o_axi_awcache;	// Write Cache type
+	wire [2:0]  w_o_axi_awprot;		// Write Protection type
+	wire [3:0]  w_o_axi_awqos;		// Write Quality of Svc
+// AXI write data channel signals
+	wire 		w_o_axi_wvalid;		// Write valid
+	wire 		w_i_axi_wready;  	// Write data ready
+	wire [31:0]	w_o_axi_wdata;		// Write data
+	wire [3:0]  w_o_axi_wstrb;		// Write strobes
+	wire 		w_o_axi_wlast;		// Last write transaction
+// AXI write response channel signals
+ 	wire 		w_i_axi_bvalid;		// Write reponse valid
+	wire 		w_o_axi_bready;  	// Response ready
+	wire 		w_i_axi_bid;		// Response ID
+	wire [1:0]  w_i_axi_bresp;		// Write response
+// AXI read address channel signals
+	wire        w_o_axi_arvalid;	// Read address valid
+	wire        w_i_axi_arready;	// Read address ready
+	wire [0:0]  w_o_axi_arid;		// Read ID
+	wire [33:0]	w_o_axi_araddr;		// Read address
+	wire [7:0]  w_o_axi_arlen;		// Read Burst Length
+	wire [2:0]  w_o_axi_arsize;		// Read Burst size
+	wire [1:0]  w_o_axi_arburst;	// Read Burst type
+	wire [0:0]  w_o_axi_arlock;		// Read lock type
+	wire [3:0]  w_o_axi_arcache;	// Read Cache type
+	wire [2:0]  w_o_axi_arprot;		// Read Protection type
+	wire [3:0]  w_o_axi_arqos;		// Read Protection type
+// AXI read data channel signals
+	wire 		w_i_axi_rvalid;  	// Read reponse valid
+	wire 		w_o_axi_rready;  	// Read Response ready
+	wire [0:0] 	w_i_axi_rid;     	// Response ID
+	wire [31:0] w_i_axi_rdata;    	// Read data
+	wire [1:0]  w_i_axi_rresp;   	// Read response
+	wire 		w_i_axi_rlast;    	// Read last
+
+// Wires for inStream and outStream
+	wire 	   w_inStream_ready;
+	wire 	   w_inStream_valid;
+	wire [7:0] w_inStream_data;
+	wire 	   w_inStream_last;
+
+	wire 	   w_outStream_ready;
+	wire 	   w_outStream_valid;
+	wire [7:0] w_outStream_data;
+	wire 	   w_outStream_last;
+
+// Wires for uart
+	wire w_uart_int;
+	wire w_uart_tx;
+	wire w_uart_rx;
+
+// Assign inStream signals
+	genvar i;
+
+	assign io_oeb[0]    = 1'b0;    //fix pin to output
+	assign io_oeb[10:1] = 10'h3ff; //fix pins to inputs
+
+	assign io_out[10:1] = 10'h333; // drive unused outputs
+
+	assign io_out[0] 			= w_inStream_ready;
+	assign w_inStream_valid  	= io_in[1];
+	assign w_inStream_data[7:0] = io_in[9:2];
+	assign w_inStream_last 		= io_in[10];
+
+// Assign outStream signals
+	assign io_oeb[11]    = 1'b1;    // fix pin to input
+	assign io_oeb[21:12] = 10'h000; // fix pins to outputs
+
+	assign io_out[11]    = 1'b1;	// drive unused outputs  
+
+	assign w_outStream_ready = io_in[11];
+	assign io_out[12]        = w_outStream_valid;
+	assign io_out[20:13] 	 = w_outStream_data[7:0];
+	assign io_out[21]    	 = w_outStream_last;
+
+// set uart pins
+	assign io_oeb[22] = 1'b0;		// uart_int is output
+	assign io_out[22] = w_uart_int;
+	assign io_oeb[23] = 1'b0;		// uart_tx is output
+	assign io_out[23] = w_uart_tx;
+	assign io_out[24] = 1'b0;		
+	assign io_oeb[24] = 1'b1;		// uart_rx is input
+	assign w_uart_rx  = io_in[24];
+
+// Drive remaining io pins
+	assign io_out[`MPRJ_IO_PADS-1:25] = 13'h1666;
+	assign io_oeb[`MPRJ_IO_PADS-1:25] = 13'h0000;
+
+// Drive LA with zeroes
+	assign la_data_out = {128{1'b0}};
+
+// Wishbone to AXI4
+	wbm2axisp #(
+		.C_AXI_DATA_WIDTH(32),	// Width of the AXI R&W data
+		.C_AXI_ADDR_WIDTH(34),	// AXI Address width (log wordsize)
+		.C_AXI_ID_WIDTH(1),
+		.DW(32),				// Wishbone data width
+		.AW(32),   				// Wishbone address width (log wordsize)
+		.AXI_WRITE_ID(1'b0),
+		.AXI_READ_ID(1'b0)
+	) wb2axi (
+		.i_clk(wb_clk_i),						// System clock
+		.i_reset(wb_rst_i),					// Reset signal,drives AXI rst
+	// AXI write address channel signals
+		.o_axi_awvalid(w_o_axi_awvalid),	// Write address valid
+		.i_axi_awready(w_i_axi_awready), 	// Slave is ready to accept
+		.o_axi_awid(w_o_axi_awid),			// Write ID [C_AXI_ID_WIDTH-1:0]	
+		.o_axi_awaddr(w_o_axi_awaddr),		// Write address [C_AXI_ADDR_WIDTH-1:0]	
+		.o_axi_awlen(w_o_axi_awlen),		// Write Burst Length [7:0]		
+		.o_axi_awsize(w_o_axi_awsize),		// Write Burst size [2:0]		
+		.o_axi_awburst(w_o_axi_awburst),	// Write Burst type [1:0]		
+		.o_axi_awlock(w_o_axi_awlock),		// Write lock type [0:0]		
+		.o_axi_awcache(w_o_axi_awcache),	// Write Cache type [3:0]		
+		.o_axi_awprot(w_o_axi_awprot),		// Write Protection type [2:0]		
+		.o_axi_awqos(w_o_axi_awqos),		// Write Quality of Svc [3:0]		
+	// AXI write data channel signals
+		.o_axi_wvalid(w_o_axi_wvalid),		// Write valid
+		.i_axi_wready(w_i_axi_wready),  	// Write data ready
+		.o_axi_wdata(w_o_axi_wdata),		// Write data [C_AXI_DATA_WIDTH-1:0]	
+		.o_axi_wstrb(w_o_axi_wstrb),		// Write strobes [C_AXI_DATA_WIDTH/8-1:0] 
+		.o_axi_wlast(w_o_axi_wlast),		// Last write transaction
+	// AXI write response channel signals
+		.i_axi_bvalid(w_i_axi_bvalid),  	// Write reponse valid
+		.o_axi_bready(w_o_axi_bready),  	// Response ready
+		.i_axi_bid(w_i_axi_bid),			// Response ID [C_AXI_ID_WIDTH-1:0]	
+		.i_axi_bresp(w_i_axi_bresp),		// Write response [1:0]		
+	// AXI read address channel signals
+		.o_axi_arvalid(w_o_axi_arvalid),	// Read address valid
+		.i_axi_arready(w_i_axi_arready),	// Read address ready
+		.o_axi_arid(w_o_axi_arid),			// Read ID [C_AXI_ID_WIDTH-1:0]	
+		.o_axi_araddr(w_o_axi_araddr),		// Read address [C_AXI_ADDR_WIDTH-1:0]	
+		.o_axi_arlen(w_o_axi_arlen),		// Read Burst Length [7:0]		
+		.o_axi_arsize(w_o_axi_arsize),		// Read Burst size [2:0]		
+		.o_axi_arburst(w_o_axi_arburst),	// Read Burst type [1:0]		
+		.o_axi_arlock(w_o_axi_arlock),		// Read lock type [0:0]		
+		.o_axi_arcache(w_o_axi_arcache),	// Read Cache type [3:0]		
+		.o_axi_arprot(w_o_axi_arprot),		// Read Protection type [2:0]		
+		.o_axi_arqos(w_o_axi_arqos),		// Read Protection type [3:0]		
+	// AXI read data channel signals
+		.i_axi_rvalid(w_i_axi_rvalid),  	// Read reponse valid
+		.o_axi_rready(w_o_axi_rready),  	// Read Response ready
+		.i_axi_rid(w_i_axi_rid),     		// Response ID [C_AXI_ID_WIDTH-1:0]	
+		.i_axi_rdata(w_i_axi_rdata),   		// Read data [C_AXI_DATA_WIDTH-1:0] 
+		.i_axi_rresp(w_i_axi_rresp),   		// Read response [1:0]		
+		.i_axi_rlast(w_i_axi_rlast),   		// Read last
+	// We'll share the clock and the reset
+		.i_wb_cyc(wbs_cyc_i),
+		.i_wb_stb(wbs_stb_i),
+		.i_wb_we(wbs_we_i),
+		.i_wb_addr(wbs_adr_i),     // [(AW-1):0]
+		.i_wb_data(wbs_dat_i),     // [(DW-1):0]
+		.i_wb_sel(wbs_sel_i),      // [(DW/8-1):0]
+		.o_wb_stall(),
+		.o_wb_ack(wbs_ack_o),
+		.o_wb_data(wbs_dat_o), // [(DW-1):0]
+		.o_wb_err()
+	);
+
+// LIS
+	LISTest lis (
+		.clock(wb_clk_i),
+		.reset(wb_rst_i),
+	// AXI write address channel signals
+		.ioMem_0_aw_ready(w_i_axi_awready),
+		.ioMem_0_aw_valid(w_o_axi_awvalid),
+		.ioMem_0_aw_bits_id(w_o_axi_awid),
+		.ioMem_0_aw_bits_addr(w_o_axi_awaddr[33:2]),//[31:0]
+		.ioMem_0_aw_bits_len(w_o_axi_awlen), 		// [7:0]  
+		.ioMem_0_aw_bits_size(w_o_axi_awsize), 		// [2:0]  
+		.ioMem_0_aw_bits_burst(w_o_axi_awburst), 	// [1:0]  
+		.ioMem_0_aw_bits_lock(w_o_axi_awlock),
+		.ioMem_0_aw_bits_cache(w_o_axi_awcache), 	// [3:0]  
+		.ioMem_0_aw_bits_prot(w_o_axi_awprot), 		// [2:0]  
+		.ioMem_0_aw_bits_qos(w_o_axi_awqos), 		// [3:0]  
+	// AXI write data channel signals
+		.ioMem_0_w_ready(w_i_axi_wready),
+		.ioMem_0_w_valid(w_o_axi_wvalid),
+		.ioMem_0_w_bits_data(w_o_axi_wdata), 		// [31:0] 
+		.ioMem_0_w_bits_strb(w_o_axi_wstrb), 		// [3:0]  
+		.ioMem_0_w_bits_last(w_o_axi_wlast),
+	// AXI write response channel signals
+		.ioMem_0_b_ready(w_o_axi_bready),
+		.ioMem_0_b_valid(w_i_axi_bvalid),
+		.ioMem_0_b_bits_id(w_i_axi_bid),
+		.ioMem_0_b_bits_resp(w_i_axi_bresp), 		// [1:0] 
+	// AXI read address channel signals
+		.ioMem_0_ar_ready(w_i_axi_arready),
+		.ioMem_0_ar_valid(w_o_axi_arvalid),
+		.ioMem_0_ar_bits_id(w_o_axi_arid),
+		.ioMem_0_ar_bits_addr(w_o_axi_araddr[33:2]),// [31:0] 
+		.ioMem_0_ar_bits_len(w_o_axi_arlen), 		// [7:0]  
+		.ioMem_0_ar_bits_size(w_o_axi_arsize), 		// [2:0]  
+		.ioMem_0_ar_bits_burst(w_o_axi_arburst), 	// [1:0]  
+		.ioMem_0_ar_bits_lock(w_o_axi_arlock),
+		.ioMem_0_ar_bits_cache(w_o_axi_arcache), 	// [3:0]  
+		.ioMem_0_ar_bits_prot(w_o_axi_arprot), 		// [2:0]  
+		.ioMem_0_ar_bits_qos(w_o_axi_arqos), 		// [3:0]  
+	// AXI read data channel signals
+		.ioMem_0_r_ready(w_o_axi_rready),
+		.ioMem_0_r_valid(w_i_axi_rvalid),
+		.ioMem_0_r_bits_id(w_i_axi_rid),
+		.ioMem_0_r_bits_data(w_i_axi_rdata), 		// [31:0] 
+		.ioMem_0_r_bits_resp(w_i_axi_rresp), 		// [1:0]  
+		.ioMem_0_r_bits_last(w_i_axi_rlast),
+	// AXI-stream
+        .inStream_0_ready(w_inStream_ready),
+  		.inStream_0_valid(w_inStream_valid),
+  		.inStream_0_bits_data(w_inStream_data),
+  		.inStream_0_bits_last(w_inStream_last),
+		.outStream_0_ready(w_outStream_ready),
+  		.outStream_0_valid(w_outStream_valid),
+  		.outStream_0_bits_data(w_outStream_data),
+  		.outStream_0_bits_last(w_outStream_last),
+        .int_0(w_uart_int),
+        .uTx(w_uart_tx),
+        .uRx(w_uart_rx)
+	);
+endmodule
+`default_nettype wire
\ No newline at end of file
diff --git a/cargo/wb2axip b/cargo/wb2axip
new file mode 160000
index 0000000..e80d7a6
--- /dev/null
+++ b/cargo/wb2axip
@@ -0,0 +1 @@
+Subproject commit e80d7a6b5cab0a4073fd8c9037737231748bdaee
diff --git a/info.yaml b/info.yaml
index 685ee5e..feae5f1 100644
--- a/info.yaml
+++ b/info.yaml
@@ -1,18 +1,16 @@
 --- 
 project: 
-  description: "A template SoC for Google sponsored Open MPW shuttles for SKY130."
+  description: "A digital linear insertion sorter accelerator."
   foundry: "SkyWater"
-  git_url: "https://github.com/efabless/caravel.git"
-  organization: "Efabless"
-  organization_url: "http://efabless.com"
-  owner: "Tim Edwards"
+  git_url: "https://github.com/elektrotehnika/caravel_linsorter.git"
+  organization: "elektrotehnika"
+  organization_url: "elektrotehnika.github.io"
+  owner: "Vladimir Milovanović"
   process: "SKY130"
-  project_name: "Caravel"
-  tags: 
-    - "Open MPW"
-    - "Test Harness"
-  category: "Test Harness"
+  project_name: "linsorter"
+  tags: "Open MPW"
+  category: "Accelerator"
   top_level_netlist: "verilog/gl/caravel.v"
   user_level_netlist: "verilog/gl/user_project_wrapper.v"
   version: "1.00"
-  cover_image: "doc/ciic_harness.png"
+  cover_image: "cargo/doc/images/LinearSorters.png"