{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "209bf30f",
      "metadata": {},
      "source": [
        "### License\n",
        "Copyright (C) 2021-2022, Xilinx, Inc.\n",
        "<br>\n",
        "Copyright (C) 2022-2024, Advanced Micro Devices, Inc.\n",
        "<p>\n",
        "Licensed under the Apache License, Version 2.0 (the \"License\");\n",
        "you may not use this file except in compliance with the License.\n",
        "<p>\n",
        "You may obtain a copy of the License at <a href=\"http://www.apache.org/licenses/LICENSE-2.0\"?>http://www.apache.org/licenses/LICENSE-2.0</a><br><br>\n",
        "Unless required by applicable law or agreed to in writing, software\n",
        "distributed under the License is distributed on an \"AS IS\" BASIS, \n",
        "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "See the License for the specific language governing permissions and\n",
        "limitations under the License."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "e2d5cb5f",
      "metadata": {},
      "source": [
        "# ChipScoPy NoC Perfmon Example\n",
        "\n",
        "\n",
        "<img src=\"../img/api_overview.png\" width=\"500\" align=\"left\">"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "1d93fbbc",
      "metadata": {},
      "source": [
        "## Description\n",
        "This example demonstrates how to configure a Versal for taking NoC performance measurements.\n",
        "\n",
        "## Requirements\n",
        "- Local or remote Xilinx Versal board, such as a VCK190\n",
        "- Xilinx hw_server 2024.1 installed and running\n",
        "- Xilinx cs_server 2024.1 installed and running\n",
        "- Python 3.8 or greater installed\n",
        "- ChipScoPy 2024.1 installed\n",
        "- Jupyter notebook support installed - Please do so, using the command `pip install chipscopy[jupyter]`\n",
        "- Matplotlib support installed - Please do so, using the command `pip install chipscopy[core-addons]`"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "f22774ac",
      "metadata": {},
      "source": [
        "## 1 - Initialization: Imports and File Paths\n",
        "\n",
        "After this step,\n",
        "- Required functions and classes are imported\n",
        "- Paths to server(s) and files are set correctly"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "b5101b21",
      "metadata": {},
      "outputs": [],
      "source": [
        "import os\n",
        "from time import sleep\n",
        "import matplotlib  # for nbconvert'd script\n",
        "from chipscopy.api.noc import (\n",
        "    TC_BEW,\n",
        "    TC_BER,\n",
        "    NoCPerfMonNodeListener,\n",
        ")\n",
        "from chipscopy.api.noc.plotting_utils import MeasurementPlot\n",
        "from chipscopy import create_session, report_versions\n",
        "from chipscopy import get_design_files"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "2bdd2a7f",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "HW_URL: TCP:localhost:3121\n",
            "CS_URL: TCP:localhost:3042\n",
            "PROGRAMMING_FILE: /scratch/chipscopy/venv/lib/python3.11/site-packages/chipscopy/examples/designs/vck190/production/chipscopy_ced/chipscopy_wrapper.pdi\n",
            "PROBES_FILE:/scratch/chipscopy/venv/lib/python3.11/site-packages/chipscopy/examples/designs/vck190/production/chipscopy_ced/chipscopy_wrapper.ltx\n"
          ]
        }
      ],
      "source": [
        "# Specify locations of the running hw_server and cs_server below.\n",
        "CS_URL = os.getenv(\"CS_SERVER_URL\", \"TCP:localhost:3042\")\n",
        "HW_URL = os.getenv(\"HW_SERVER_URL\", \"TCP:localhost:3121\")\n",
        "\n",
        "# specify hw and if programming is desired\n",
        "HW_PLATFORM = os.getenv(\"HW_PLATFORM\", \"vck190\")\n",
        "PROG_DEVICE = os.getenv(\"PROG_DEVICE\", 'True').lower() in ('true', '1', 't')\n",
        "\n",
        "# The get_design_files() function tries to find the PDI and LTX files. In non-standard\n",
        "# configurations, you can put the path for PROGRAMMING_FILE and PROBES_FILE below.\n",
        "design_files = get_design_files(f\"{HW_PLATFORM}/production/chipscopy_ced\")\n",
        "\n",
        "PROGRAMMING_FILE = design_files.programming_file\n",
        "PROBES_FILE = design_files.probes_file\n",
        "\n",
        "print(f\"HW_URL: {HW_URL}\")\n",
        "print(f\"CS_URL: {CS_URL}\")\n",
        "print(f\"PROGRAMMING_FILE: {PROGRAMMING_FILE}\")\n",
        "print(f\"PROBES_FILE:{PROBES_FILE}\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "b16b68f7",
      "metadata": {},
      "source": [
        "## 2 - Create a session and connect to the hw_server and cs_server\n",
        "\n",
        "The session is a container that keeps track of devices and debug cores.\n",
        "After this step,\n",
        "- Session is initialized and connected to server(s)\n",
        "- Versions are detected and reported to stdout"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "id": "fc774821",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
              "\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\n",
              "\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-style: italic\">                      ChipScoPy Version Information                      </span>\n",
              "┌────────────────────────────┬──────────────────────────────────────────┐\n",
              "│<span style=\"font-weight: bold\">                     Entity </span>│<span style=\"font-weight: bold\"> Version                                  </span>│\n",
              "├────────────────────────────┼──────────────────────────────────────────┤\n",
              "│                  ChipScoPy │ ┌───────────┬──────────────────────┐     │\n",
              "│                            │ │<span style=\"font-weight: bold\"> Attribute </span>│<span style=\"font-weight: bold\"> Value                </span>│     │\n",
              "│                            │ ├───────────┼──────────────────────┤     │\n",
              "│                            │ │     Build │ 2024.1.1717606426    │     │\n",
              "│                            │ │ Timestamp │ Jun 05 2024-09:53:46 │     │\n",
              "│                            │ └───────────┴──────────────────────┘     │\n",
              "│                            │                                          │\n",
              "│ hw_server @ localhost:3121 │ ┌───────────┬──────────────────────────┐ │\n",
              "│                            │ │<span style=\"font-weight: bold\"> Attribute </span>│<span style=\"font-weight: bold\"> Value                    </span>│ │\n",
              "│                            │ ├───────────┼──────────────────────────┤ │\n",
              "│                            │ │    Status │ Connected                │ │\n",
              "│                            │ │     Build │ 1716424495               │ │\n",
              "│                            │ │   Version │ 2024.1                   │ │\n",
              "│                            │ │ Timestamp │ Wed May 22 18:34:55 2024 │ │\n",
              "│                            │ └───────────┴──────────────────────────┘ │\n",
              "│                            │                                          │\n",
              "│ cs_server @ localhost:3042 │ ┌───────────────┬──────────────────────┐ │\n",
              "│                            │ │<span style=\"font-weight: bold\">     Attribute </span>│<span style=\"font-weight: bold\"> Value                </span>│ │\n",
              "│                            │ ├───────────────┼──────────────────────┤ │\n",
              "│                            │ │        Status │ Connected            │ │\n",
              "│                            │ │         Build │ 1714182049           │ │\n",
              "│                            │ │       Version │ 2024.1.0             │ │\n",
              "│                            │ │     Timestamp │ Apr 26 2024-18:40:49 │ │\n",
              "│                            │ │       Package │ 2024.1.1714182049    │ │\n",
              "│                            │ │ Artifact type │ pyinstaller          │ │\n",
              "│                            │ └───────────────┴──────────────────────┘ │\n",
              "└────────────────────────────┴──────────────────────────────────────────┘\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\u001b[3m                      ChipScoPy Version Information                      \u001b[0m\n",
              "┌────────────────────────────┬──────────────────────────────────────────┐\n",
              "│\u001b[1m \u001b[0m\u001b[1m                    Entity\u001b[0m\u001b[1m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mVersion                                 \u001b[0m\u001b[1m \u001b[0m│\n",
              "├────────────────────────────┼──────────────────────────────────────────┤\n",
              "│                  ChipScoPy │ ┌───────────┬──────────────────────┐     │\n",
              "│                            │ │\u001b[1m \u001b[0m\u001b[1mAttribute\u001b[0m\u001b[1m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mValue               \u001b[0m\u001b[1m \u001b[0m│     │\n",
              "│                            │ ├───────────┼──────────────────────┤     │\n",
              "│                            │ │     Build │ 2024.1.1717606426    │     │\n",
              "│                            │ │ Timestamp │ Jun 05 2024-09:53:46 │     │\n",
              "│                            │ └───────────┴──────────────────────┘     │\n",
              "│                            │                                          │\n",
              "│ hw_server @ localhost:3121 │ ┌───────────┬──────────────────────────┐ │\n",
              "│                            │ │\u001b[1m \u001b[0m\u001b[1mAttribute\u001b[0m\u001b[1m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mValue                   \u001b[0m\u001b[1m \u001b[0m│ │\n",
              "│                            │ ├───────────┼──────────────────────────┤ │\n",
              "│                            │ │    Status │ Connected                │ │\n",
              "│                            │ │     Build │ 1716424495               │ │\n",
              "│                            │ │   Version │ 2024.1                   │ │\n",
              "│                            │ │ Timestamp │ Wed May 22 18:34:55 2024 │ │\n",
              "│                            │ └───────────┴──────────────────────────┘ │\n",
              "│                            │                                          │\n",
              "│ cs_server @ localhost:3042 │ ┌───────────────┬──────────────────────┐ │\n",
              "│                            │ │\u001b[1m \u001b[0m\u001b[1m    Attribute\u001b[0m\u001b[1m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mValue               \u001b[0m\u001b[1m \u001b[0m│ │\n",
              "│                            │ ├───────────────┼──────────────────────┤ │\n",
              "│                            │ │        Status │ Connected            │ │\n",
              "│                            │ │         Build │ 1714182049           │ │\n",
              "│                            │ │       Version │ 2024.1.0             │ │\n",
              "│                            │ │     Timestamp │ Apr 26 2024-18:40:49 │ │\n",
              "│                            │ │       Package │ 2024.1.1714182049    │ │\n",
              "│                            │ │ Artifact type │ pyinstaller          │ │\n",
              "│                            │ └───────────────┴──────────────────────┘ │\n",
              "└────────────────────────────┴──────────────────────────────────────────┘\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
              "\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\n",
              "\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "session = create_session(cs_server_url=CS_URL, hw_server_url=HW_URL)\n",
        "report_versions(session)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "f3f53f4b",
      "metadata": {},
      "source": [
        "## 3 - Program the device with the example design\n",
        "\n",
        "After this step,\n",
        "- Device is programmed with the example programming file"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "id": "1dc321cc",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
              "<span style=\"font-weight: bold\">--&gt; INFO: </span>Programming device with: \n",
              "/scratch/chipscopy/venv/lib/python3.11/site-packages/chipscopy/examples/designs/vck190/production/chipscopy_ced/chi\n",
              "pscopy_wrapper.pdi\n",
              "    \n",
              "</pre>\n"
            ],
            "text/plain": [
              "\n",
              "\u001b[1m--> INFO: \u001b[0mProgramming device with: \n",
              "/scratch/chipscopy/venv/lib/python3.11/site-packages/chipscopy/examples/designs/vck190/production/chipscopy_ced/chi\n",
              "pscopy_wrapper.pdi\n",
              "    \n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "1555ac56df554819af646fe0c56656aa",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Output()"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
            ],
            "text/plain": []
          },
          "metadata": {},
          "output_type": "display_data"
        },
        {
          "data": {
            "text/html": [
              "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
              "</pre>\n"
            ],
            "text/plain": [
              "\n"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "versal_device = session.devices.filter_by(family=\"versal\").get()\n",
        "if PROG_DEVICE:\n",
        "    versal_device.program(PROGRAMMING_FILE)\n",
        "else:\n",
        "    print(\"skipping programming\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "7a8b577a",
      "metadata": {},
      "source": [
        "## 4 - Discover Debug Cores\n",
        "\n",
        "Debug core discovery initializes the chipscope server debug cores. This brings debug cores in the chipscope server online.\n",
        "\n",
        "After this step,\n",
        "\n",
        "- The cs_server is initialized and ready for use"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "id": "1276c830",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Debug cores setup and ready for use.\n"
          ]
        }
      ],
      "source": [
        "versal_device.discover_and_setup_cores(noc_scan=True)\n",
        "print(f\"Debug cores setup and ready for use.\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "85e9d808",
      "metadata": {},
      "source": [
        "## 5 - Setup NoC core\n",
        "\n",
        "Ensure scan nodes are enabled in the design."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "id": "25b18d59",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Enumerating nodes: DDRMC_X0Y0, NOC_NMU512_X0Y0, ...complete!\n"
          ]
        }
      ],
      "source": [
        "# We begin by enumerating the debug cores (hard and soft) present in the design.\n",
        "# Then we ask the design for the supported timebases. And, finally:\n",
        "# The NoC is scanned to determine the activated elements.\n",
        "\n",
        "noc = versal_device.noc_core[0]\n",
        "\n",
        "scan_nodes = [\"DDRMC_X0Y0\", \"NOC_NMU512_X0Y0\"]\n",
        "print(\"\\nEnumerating nodes: \", end=\"\")\n",
        "for node in scan_nodes:\n",
        "    print(f\"{node}, \", end=\"\")\n",
        "print(\"...\", end=\"\")\n",
        "\n",
        "# this will setup the nodes on the server side and return the nodes successfully enumerated\n",
        "enable_list = noc.enumerate_noc_elements(scan_nodes)\n",
        "print(\"complete!\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "id": "82d1502d",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Supported sampling periods:\n",
            "  NoC:\n",
            "    67ms    134ms    268ms    537ms    1074ms    2147ms\n",
            "  NPI:\n",
            "    56ms    112ms    224ms    447ms    895ms    1790ms    3579ms    7158ms\n",
            "  DDRMC_X0Y0:\n",
            "    84ms    168ms    336ms    671ms    1342ms    2684ms\n"
          ]
        }
      ],
      "source": [
        "supported_periods = noc.get_supported_sampling_periods(\n",
        "    100/3, {'DDRMC_X0Y0': 800.0}\n",
        ")\n",
        "print(\"Supported sampling periods:\")\n",
        "for domain, periods in supported_periods.items():\n",
        "    print(f\"  {domain}:\")\n",
        "    for p in periods:\n",
        "        print(f\"    {p:.0f}ms\", end=\"\")\n",
        "    print()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "id": "ea92e060",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Sampling period selection:\n",
            "  NoC: 537ms\n",
            "  NPI: 895ms\n",
            "  DDRMC_X0Y0: 671ms\n"
          ]
        }
      ],
      "source": [
        "# Select Timebase and Nodes to Monitor\n",
        "#\n",
        "# For the two clock domains we must select a sampling period from the hardware supported values. The debug cable used will dictate how much bandwidth is available, so high frequency sampling may not actually produce data at the specified rate. Recommendation is ~500ms for jtag.\n",
        "#\n",
        "# Then the user must decide what to monitor--again the bandwidth is a definite consideration here. Plot performance may become the bottleneck (Optimizations will come later in the renderer or agg backend). The guidance here is to pick up to 4 nodes to monitor.\n",
        "\n",
        "desired_period = 500  # ms\n",
        "sampling_intervals = {}\n",
        "\n",
        "for domain in supported_periods.keys():\n",
        "    sampling_intervals[domain] = 0\n",
        "    for sp in supported_periods[domain]:\n",
        "        if sp > desired_period:\n",
        "            sampling_intervals[domain] = sp\n",
        "            break\n",
        "\n",
        "    if sampling_intervals[domain] == 0:\n",
        "        print(\n",
        "            f\"Warning, desired period {desired_period}ms is slower than \"\n",
        "            f\"longest supported period {supported_periods[domain][-1]}ms [{domain} domain] \"\n",
        "            f\"defaulting to this value.\"\n",
        "        )\n",
        "        sampling_intervals[domain] = supported_periods[-1]\n",
        "\n",
        "print(f\"Sampling period selection:\")\n",
        "for domain, freq in sampling_intervals.items():\n",
        "    print(f\"  {domain}: {freq:.0f}ms\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "id": "77b03c7f",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Setting up monitors for: \n",
            "NOC_NMU512_X0Y0\n",
            "DDRMC_X0Y0\n"
          ]
        }
      ],
      "source": [
        "# Configure Monitors\n",
        "#\n",
        "# As a precaution, it's a good idea to validate the desired nodes are enabled for the design.\n",
        "# Using the set of nodes and the desired sampling periods it's time to ask the service to start pushing metric data. Two additional arguments are required to this API.\n",
        "#\n",
        "# Traffic class\n",
        "#\n",
        "# This is a bit-or field of the requested traffic classes. Note, One monitor is dedicated to read traffic classes and the other to write--so all read TCs will apply to one channel and all write TCs to the other. `Best effort` is a good place to start.\n",
        "#\n",
        "# Number of Samples\n",
        "#\n",
        "# The number of samples allows for a burst of measurements to be taken and then the underlying service will tear down the monitors and stop pumping data back to the client. `-1` denotes that sampling shall continue indefinitely.\n",
        "\n",
        "# total number of samples to capture (-1 for continuous mode)\n",
        "num_samples = -1\n",
        "\n",
        "print(\"Setting up monitors for: \")\n",
        "for node in enable_list:\n",
        "    print(node)\n",
        "\n",
        "# When overflow occurs the precision of the monitors must be traded for range\n",
        "# See the server API for more information\n",
        "extended_monitor_config = {\"NOC_NMU512_X0Y0\": {\"tslide\": 0x3}}  # or None\n",
        "noc.configure_monitors(\n",
        "    enable_list, sampling_intervals, (TC_BEW | TC_BER), num_samples, None, extended_monitor_config\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "19fc4afe",
      "metadata": {},
      "source": [
        "## 7 - Create plotter and listener\n",
        "\n",
        "Attach both to running view"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "id": "6c968f12",
      "metadata": {},
      "outputs": [],
      "source": [
        "record_to_file = False  # True | False\n",
        "node_listener = NoCPerfMonNodeListener(\n",
        "    sampling_intervals,\n",
        "    num_samples,\n",
        "    enable_list,\n",
        "    record_to_file,\n",
        "    extended_monitor_config=extended_monitor_config,\n",
        ")\n",
        "node_listener.change_log_level('INFO')\n",
        "session.chipscope_view.add_node_listener(node_listener)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "020caa1b",
      "metadata": {},
      "source": [
        "## 8 - Main Event Loop\n",
        "\n",
        "This loop runs until you close the plotter.\n",
        "If you are using a finite amount of measurement samples, you can uncomment the if --> break statement to automatically return from execution of this cell upon completion of the burst."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "id": "5cc28478",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\u001b[32m2024-06-07 15:05:17.787\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:17.796\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 0, 'dc0_idle': 0, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:17.798\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:17.801\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:17.802\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 0, 'dc0_idle': 0, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:17.805\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:17.807\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:18.210\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:18.313\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 0, 'dc0_idle': 0, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:18.516\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:18.720\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:19.024\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 0, 'dc0_idle': 0, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:19.328\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:19.432\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:19.635\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 0, 'dc0_idle': 0, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:19.840\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:20.345\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:20.348\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 344148, 'dc0_idle': 2147483647, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:20.350\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:20.855\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:21.059\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:21.262\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:21.466\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:21.671\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:21.976\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:22.079\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:22.385\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:22.492\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:22.997\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:23.000\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:23.006\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:23.611\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:23.714\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:23.918\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:24.121\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:24.327\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:24.632\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:24.836\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:25.040\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:25.244\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:25.749\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:25.756\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:25.760\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:26.267\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:26.371\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:26.576\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:26.781\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:27.086\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:27.391\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:27.494\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:27.698\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:27.903\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:28.408\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:28.411\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:28.413\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:29.017\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:29.122\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:29.327\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:29.531\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:29.735\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:30.040\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:30.143\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:30.449\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:30.554\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:31.060\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:31.063\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:31.167\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:31.673\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:31.778\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:31.982\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:32.189\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:32.494\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:32.800\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:32.904\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:33.109\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:33.313\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:33.718\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:33.822\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:33.824\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:34.327\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:34.430\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:34.633\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:34.936\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:35.140\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:35.444\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:35.550\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:35.855\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:35.961\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:36.464\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:36.467\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:36.570\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:37.075\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:37.178\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:37.380\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:37.583\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:37.787\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:38.092\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:38.197\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:38.501\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:38.706\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:39.111\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:39.216\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:39.221\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:39.726\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:39.829\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:40.034\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:40.339\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:40.544\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:40.850\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:40.954\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:41.159\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:41.363\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:41.876\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:41.879\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:41.882\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:42.489\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:42.493\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:42.696\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:43.002\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:43.208\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:43.512\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:43.616\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:43.919\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:44.024\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:44.528\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:44.531\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:44.635\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:45.140\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:45.245\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:45.449\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:45.653\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:45.857\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:46.264\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:46.267\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:46.570\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m352 \u001b[0m | \u001b[1m{'dc0_activates': 0, 'dc0_read_cas': 0, 'dc0_write_cas': 0, 'dc0_precharge': 0, 'dc0_precharge_all': 0, 'dc0_refresh': 86037, 'dc0_idle': 536870912, 'dc0_overhead': 0, 'dc0_bus_turnarounds': 0, 'dc1_activates': 0, 'dc1_read_cas': 59, 'dc1_write_cas': 0, 'dc1_precharge': 0, 'dc1_precharge_all': 0, 'dc1_refresh': 0, 'dc1_idle': 0, 'dc1_overhead': 0, 'dc1_bus_turnarounds': 0}\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:46.774\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mddrmc_x0y0: rb: 0.0, wb: 0.0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n",
            "\u001b[32m2024-06-07 15:05:47.178\u001b[0m | \u001b[1mINFO    \u001b[0m | \u001b[35m         noc_perfmon\u001b[0m | \u001b[36m               chipscopy.api.noc.noc_perfmon_utils\u001b[0m | \u001b[36m144 \u001b[0m | \u001b[1mnoc_nmu512_x0y0: rb: 0, wb: 0, rbw: 0.0, wbw: 0.0, arl: 0.0, awl: 0.0\u001b[0m\n"
          ]
        },
        {
          "ename": "KeyboardInterrupt",
          "evalue": "",
          "output_type": "error",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
            "Cell \u001b[0;32mIn[11], line 5\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m      4\u001b[0m     session\u001b[38;5;241m.\u001b[39mchipscope_view\u001b[38;5;241m.\u001b[39mrun_events()\n\u001b[0;32m----> 5\u001b[0m     sleep(\u001b[38;5;241m0.1\u001b[39m)\n\u001b[1;32m      6\u001b[0m     \u001b[38;5;66;03m# Below will return on burst completion - uncomment if you want to try.\u001b[39;00m\n\u001b[1;32m      7\u001b[0m     \u001b[38;5;66;03m# if all([x <= 0 for x in node_listener.num_samples.values()]):\u001b[39;00m\n\u001b[1;32m      8\u001b[0m     \u001b[38;5;66;03m#     break\u001b[39;00m\n",
            "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
          ]
        }
      ],
      "source": [
        "# Run Main Event Loop\n",
        "loop_count = 0\n",
        "while True:\n",
        "    session.chipscope_view.run_events()\n",
        "    sleep(0.1)\n",
        "    # Below will return on burst completion - uncomment if you want to try.\n",
        "    # if all([x <= 0 for x in node_listener.num_samples.values()]):\n",
        "    #     break"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "venv",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.11.2"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}
