From e346dcd6248703f55b8780763f2e37492cce99dc Mon Sep 17 00:00:00 2001 From: yaozhicheng Date: Tue, 8 Oct 2024 18:20:01 +0800 Subject: [PATCH] fix data --- docs/data/ut_data_progress.json | 3791 +++++++++++++++++-------------- docs/js/chart_meta.js | 165 +- docs/js/chart_progress.js | 4 +- tools/dut_tree.py | 55 +- tools/kmu_dut_tree.py | 4 +- 5 files changed, 2149 insertions(+), 1870 deletions(-) diff --git a/docs/data/ut_data_progress.json b/docs/data/ut_data_progress.json index 74d9b06..a352ea2 100644 --- a/docs/data/ut_data_progress.json +++ b/docs/data/ut_data_progress.json @@ -1,1955 +1,2256 @@ { - "name": "kmh_dut", - "children": [ - { - "name": "frontend", - "children": [ - { - "name": "bpu", - "children": [ - { - "name": "ftb", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + "list": { + "names": [ + "bpu-*", + "ftq", + "ibuffer", + "icache", + "ifu", + "instr_uncache", + "itlb", + "pmp", + "decode", + "rename-*", + "dispatch", + "dispatch_queue-*", + "mem_ctrl", + "redirect_gen", + "rob", + "pc_gpa_mem", + "data_path", + "scheduler-*", + "exu_block-*", + "og2_for_vector", + "pc_target_mem", + "wb_data_path", + "wb_fu_busy_table", + "bypass_network", + "lsq-*", + "dtlb", + "load_store_unit", + "dcache", + "pmp", + "prefetcher", + "v_mem-*", + "ptw", + "uncache", + "sbuffer", + "l2_cache", + "mmio" + ], + "series": [ + { + "name": "passed cases", + "type": "bar", + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 0, + 0, + 0, + 12 + ], + "stack": "cases" + }, + { + "name": "failed cases", + "type": "bar", + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ], + "stack": "cases" + }, + { + "name": "skiped cases", + "type": "bar", + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ], + "stack": "cases" + }, + { + "name": "function covered", + "type": "bar", + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "stack": "function" + }, + { + "name": "function un-covered", + "type": "bar", + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "stack": "function" + }, + { + "name": "line-coverage-rate(%)", + "type": "bar", + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ] + }, + "tree": { + "name": "kmh_dut", + "children": [ + { + "name": "frontend", + "children": [ + { + "name": "bpu", + "children": [ + { + "name": "ftb", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/bpu/ftb", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/bpu/ftb", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "uftb", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "uftb", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/bpu/uftb", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/bpu/uftb", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "ittage", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "ittage", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/bpu/ittage", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/bpu/ittage", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "tagesc", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "tagesc", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/bpu/tagesc", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/bpu/tagesc", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "ras", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "ras", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/bpu/ras", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/bpu/ras", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/bpu", + "value": 6, + "light": false }, - "paths": "/kmh_dut/frontend/bpu", - "value": 6, - "light": false + "value": 6 }, - "value": 6 - }, - { - "priority": 0, - "name": "ftq", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 0, + "name": "ftq", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/ftq", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/ftq", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 1, - "name": "ibuffer", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "ibuffer", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/ibuffer", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/ibuffer", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 1, - "name": "icache", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "icache", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/icache", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/icache", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "ifu", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "ifu", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/ifu", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/ifu", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 1, - "name": "instr_uncache", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "instr_uncache", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/instr_uncache", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/instr_uncache", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "itlb", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "itlb", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/itlb", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/itlb", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "pmp", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "pmp", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend/pmp", + "value": 1, + "light": false }, - "paths": "/kmh_dut/frontend/pmp", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/frontend", + "value": 14, + "light": false }, - "paths": "/kmh_dut/frontend", - "value": 14, - "light": false + "value": 14 }, - "value": 14 - }, - { - "name": "backend", - "children": [ - { - "name": "ctrl_block", - "children": [ - { - "name": "decode", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "backend", + "children": [ + { + "name": "ctrl_block", + "children": [ + { + "name": "decode", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/decode", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/decode", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "rename", - "children": [ - { - "name": "rename_table", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "rename", + "children": [ + { + "name": "rename_table", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/rename/rename_table", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/rename/rename_table", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "freelist", - "children": [ - { - "name": "int", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 + { + "name": "freelist", + "children": [ + { + "name": "int", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/rename/freelist/int", + "value": 1, + "light": false }, - "lines": { - "total": 0, - "cover": 0 - }, - "paths": "/kmh_dut/backend/ctrl_block/rename/freelist/int", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "float", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "float", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/rename/freelist/float", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/rename/freelist/float", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "vtype", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 + { + "name": "vtype", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/rename/freelist/vtype", + "value": 1, + "light": false }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 - }, - "paths": "/kmh_dut/backend/ctrl_block/rename/freelist/vtype", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/rename/freelist", + "value": 4, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/rename/freelist", - "value": 4, - "light": false + "value": 4 + } + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 }, - "value": 4 - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/rename", + "value": 6, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/rename", - "value": 6, - "light": false + "value": 6 }, - "value": 6 - }, - { - "name": "dispatch", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "dispatch", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/dispatch", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/dispatch", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "dispatch_queue", - "children": [ - { - "name": "int", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "dispatch_queue", + "children": [ + { + "name": "int", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue/int", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue/int", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "float", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "float", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue/float", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue/float", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "mem", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "mem", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue/mem", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue/mem", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "vector_float", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "vector_float", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue/vector_float", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue/vector_float", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue", + "value": 5, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/dispatch_queue", - "value": 5, - "light": false + "value": 5 }, - "value": 5 - }, - { - "name": "mem_ctrl", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "mem_ctrl", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/mem_ctrl", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/mem_ctrl", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 1, - "name": "redirect_gen", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "redirect_gen", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/redirect_gen", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/redirect_gen", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 0, - "name": "rob", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 0, + "name": "rob", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/rob", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/rob", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "pc_gpa_mem", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "pc_gpa_mem", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block/pc_gpa_mem", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block/pc_gpa_mem", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/ctrl_block", + "value": 18, + "light": false }, - "paths": "/kmh_dut/backend/ctrl_block", - "value": 18, - "light": false + "value": 18 }, - "value": 18 - }, - { - "priority": 1, - "name": "data_path", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "data_path", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/data_path", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/data_path", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 1, - "name": "scheduler", - "children": [ - { - "name": "int", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "scheduler", + "children": [ + { + "name": "int", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/scheduler/int", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/scheduler/int", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "float", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "float", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/scheduler/float", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/scheduler/float", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "mem", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "mem", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/scheduler/mem", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/scheduler/mem", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "vector_float", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "vector_float", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/scheduler/vector_float", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/scheduler/vector_float", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/scheduler", + "value": 5, + "light": false }, - "paths": "/kmh_dut/backend/scheduler", - "value": 5, - "light": false + "value": 5 }, - "value": 5 - }, - { - "name": "exu_block", - "children": [ - { - "name": "float", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "exu_block", + "children": [ + { + "name": "float", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/exu_block/float", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/exu_block/float", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "int", - "children": [ - { - "priority": 0, - "name": "csr", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "int", + "children": [ + { + "priority": 0, + "name": "csr", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/exu_block/int/csr", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/exu_block/int/csr", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "other", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "other", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/exu_block/int/other", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/exu_block/int/other", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/exu_block/int", + "value": 3, + "light": false }, - "paths": "/kmh_dut/backend/exu_block/int", - "value": 3, - "light": false + "value": 3 }, - "value": 3 - }, - { - "priority": 0, - "name": "vector_float", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 0, + "name": "vector_float", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/exu_block/vector_float", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/exu_block/vector_float", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/exu_block", + "value": 6, + "light": false }, - "paths": "/kmh_dut/backend/exu_block", - "value": 6, - "light": false + "value": 6 }, - "value": 6 - }, - { - "priority": 0, - "name": "og2_for_vector", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 0, + "name": "og2_for_vector", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/og2_for_vector", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/og2_for_vector", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "pc_target_mem", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "pc_target_mem", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/pc_target_mem", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/pc_target_mem", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 1, - "name": "wb_data_path", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "wb_data_path", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/wb_data_path", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/wb_data_path", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 1, - "name": "wb_fu_busy_table", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "wb_fu_busy_table", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/wb_fu_busy_table", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/wb_fu_busy_table", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 1, - "name": "bypass_network", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "bypass_network", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend/bypass_network", + "value": 1, + "light": false }, - "paths": "/kmh_dut/backend/bypass_network", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/backend", + "value": 36, + "light": false }, - "paths": "/kmh_dut/backend", - "value": 36, - "light": false + "value": 36 }, - "value": 36 - }, - { - "name": "mem_block", - "children": [ - { - "name": "lsq", - "children": [ - { - "priority": 0, - "name": "load_queue", - "children": [ - { - "name": "virtual_load_queue", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "mem_block", + "children": [ + { + "name": "lsq", + "children": [ + { + "priority": 0, + "name": "load_queue", + "children": [ + { + "name": "virtual_load_queue", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/lsq/load_queue/virtual_load_queue", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/lsq/load_queue/virtual_load_queue", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "raw_rar_queue", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "raw_rar_queue", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/lsq/load_queue/raw_rar_queue", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/lsq/load_queue/raw_rar_queue", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "uncache_queue", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "uncache_queue", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/lsq/load_queue/uncache_queue", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/lsq/load_queue/uncache_queue", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "exception_queue", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "exception_queue", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/lsq/load_queue/exception_queue", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/lsq/load_queue/exception_queue", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/lsq/load_queue", + "value": 5, + "light": false }, - "paths": "/kmh_dut/mem_block/lsq/load_queue", - "value": 5, - "light": false + "value": 5 }, - "value": 5 - }, - { - "name": "store_queue", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "store_queue", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/lsq/store_queue", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/lsq/store_queue", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/lsq", + "value": 7, + "light": false }, - "paths": "/kmh_dut/mem_block/lsq", - "value": 7, - "light": false + "value": 7 }, - "value": 7 - }, - { - "priority": 0, - "name": "dtlb", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 0, + "name": "dtlb", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/dtlb", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/dtlb", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 0, - "name": "load_store_unit", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 0, + "name": "load_store_unit", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/load_store_unit", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/load_store_unit", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 0, - "name": "dcache", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 0, + "name": "dcache", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/dcache", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/dcache", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "pmp", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "pmp", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/pmp", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/pmp", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "prefetcher", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "prefetcher", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/prefetcher", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/prefetcher", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "v_mem", - "priority": 0, - "children": [ - { - "name": "vl_split", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "v_mem", + "priority": 0, + "children": [ + { + "name": "vl_split", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/v_mem/vl_split", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/v_mem/vl_split", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "v_segment_unit", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "v_segment_unit", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/v_mem/v_segment_unit", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/v_mem/v_segment_unit", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "vl_merger_buffer", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "vl_merger_buffer", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/v_mem/vl_merger_buffer", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/v_mem/vl_merger_buffer", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "vs_merge_buffer", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "vs_merge_buffer", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/v_mem/vs_merge_buffer", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/v_mem/vs_merge_buffer", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/v_mem", + "value": 5, + "light": false }, - "paths": "/kmh_dut/mem_block/v_mem", - "value": 5, - "light": false + "value": 5 }, - "value": 5 - }, - { - "name": "ptw", - "meta": { - "cases": { - "total": 10, - "pass": 6, - "fail": 2, - "skip": 2 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "ptw", + "meta": { + "cases": { + "total": 10, + "pass": 6, + "fail": 2, + "skip": 2 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/ptw", + "value": 1, + "light": true }, - "paths": "/kmh_dut/mem_block/ptw", "value": 1, - "light": true + "itemStyle": { + "colorAlpha": 1.0 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 1.0 - } - }, - { - "name": "uncache", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "uncache", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/uncache", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/uncache", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "name": "sbuffer", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "sbuffer", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block/sbuffer", + "value": 1, + "light": false }, - "paths": "/kmh_dut/mem_block/sbuffer", "value": 1, - "light": false - }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 + "itemStyle": { + "colorAlpha": 0.1 + } } - } - ], - "meta": { - "cases": { - "total": 10, - "pass": 6, - "fail": 2, - "skip": 2 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 10, + "pass": 6, + "fail": 2, + "skip": 2 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/mem_block", + "value": 21, + "light": false }, - "paths": "/kmh_dut/mem_block", - "value": 21, - "light": false + "value": 21 }, - "value": 21 - }, - { - "name": "misc", - "children": [ - { - "priority": 0, - "name": "l2_cache", - "meta": { - "cases": { - "total": 0, - "pass": 0, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "name": "misc", + "children": [ + { + "priority": 0, + "name": "l2_cache", + "meta": { + "cases": { + "total": 0, + "pass": 0, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/misc/l2_cache", + "value": 1, + "light": false }, - "paths": "/kmh_dut/misc/l2_cache", "value": 1, - "light": false + "itemStyle": { + "colorAlpha": 0.1 + } }, - "value": 1, - "itemStyle": { - "colorAlpha": 0.1 - } - }, - { - "priority": 1, - "name": "mmio", - "meta": { - "cases": { - "total": 10, - "pass": 12, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + { + "priority": 1, + "name": "mmio", + "meta": { + "cases": { + "total": 10, + "pass": 12, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/misc/mmio", + "value": 1, + "light": true }, - "paths": "/kmh_dut/misc/mmio", "value": 1, - "light": true - }, - "value": 1, - "itemStyle": { - "colorAlpha": 1.0 + "itemStyle": { + "colorAlpha": 1.0 + } } - } - ], - "meta": { - "cases": { - "total": 10, - "pass": 12, - "fail": 0, - "skip": 0 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + ], + "meta": { + "cases": { + "total": 10, + "pass": 12, + "fail": 0, + "skip": 0 + }, + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut/misc", + "value": 3, + "light": false }, - "paths": "/kmh_dut/misc", - "value": 3, - "light": false + "value": 3 + } + ], + "meta": { + "cases": { + "total": 20, + "pass": 18, + "fail": 2, + "skip": 2 }, - "value": 3 - } - ], - "meta": { - "cases": { - "total": 20, - "pass": 18, - "fail": 2, - "skip": 2 - }, - "functions": { - "total": 0, - "cover": 0 - }, - "lines": { - "total": 0, - "cover": 0 + "functions": { + "total": 0, + "cover": 0 + }, + "lines": { + "total": 0, + "cover": 0 + }, + "paths": "/kmh_dut", + "value": 75, + "light": false }, - "paths": "/kmh_dut", - "value": 75, - "light": false - }, - "value": 75 + "value": 75 + } } diff --git a/docs/js/chart_meta.js b/docs/js/chart_meta.js index 83e579a..4c6338a 100644 --- a/docs/js/chart_meta.js +++ b/docs/js/chart_meta.js @@ -1,125 +1,50 @@ // UTs Meta Chart -function show_meta_chart(chart_id, data_url){ - var chartDom = document.getElementById(chart_id); - var utChart = echarts.init(chartDom); +function show_meta_chart(chart_id, data_url) { + var utChart = echarts.init(document.getElementById(chart_id), null, { renderer: 'canvas' }); var option; + utChart.showLoading(); + $.getJSON(data_url, function (graph_data) { + utChart.hideLoading(); + option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + legend: {}, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + xAxis: [ + { + type: 'category', + data: graph_data["list"]["names"], + axisLabel: { + rotate: 90, + verticalAlign: 'middle', + align: 'right', + fontSize: 18, + color: '#0000ff', + formatter: function (value, index) { + return value + '. ' + (index + 1); + } + } + } + ], + yAxis: [ + { + type: 'value' + } + ], + series: graph_data["list"]["series"] + }; - option = { - tooltip: { - trigger: 'axis', - axisPointer: { - type: 'shadow' - } - }, - legend: {}, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true - }, - xAxis: [ - { - type: 'category', - data: ['BPU', 'ICache', 'Decoder', 'ITLB', 'ROB', 'CSR', 'IFU'] - } - ], - yAxis: [ - { - type: 'value' - } - ], - series: [ - { - name: 'Funtions', - type: 'bar', - emphasis: { - focus: 'series' - }, - data: [320, 332, 301, 334, 390, 330, 320] - }, - { - name: 'Cover Points', - type: 'bar', - stack: 'Ad', - emphasis: { - focus: 'series' - }, - data: [120, 132, 101, 134, 90, 230, 210] - }, - { - name: 'Line Coverage', - type: 'bar', - stack: 'Ad', - emphasis: { - focus: 'series' - }, - data: [220, 182, 191, 234, 290, 330, 310] - }, - { - name: 'Test Cases', - type: 'bar', - stack: 'Ad', - emphasis: { - focus: 'series' - }, - data: [150, 232, 201, 154, 190, 330, 410] - }, - { - name: 'Total Bugs', - type: 'bar', - data: [862, 1018, 964, 1026, 1679, 1600, 1570], - emphasis: { - focus: 'series' - }, - //markLine: { - // lineStyle: { - // type: 'dashed' - // }, - // data: [[{ type: 'min' }, { type: 'max' }]] - //} - }, - { - name: 'Bugs of Functions', - type: 'bar', - barWidth: 5, - stack: 'Total Bugs', - emphasis: { - focus: 'series' - }, - data: [620, 732, 701, 734, 1090, 1130, 1120] - }, - { - name: 'Bugs of Performance', - type: 'bar', - stack: 'Total Bugs', - emphasis: { - focus: 'series' - }, - data: [120, 132, 101, 134, 290, 230, 220] - }, - { - name: 'Bugs of Typos', - type: 'bar', - stack: 'Total Bugs', - emphasis: { - focus: 'series' - }, - data: [60, 72, 71, 74, 190, 130, 110] - }, - { - name: 'Others Bugs', - type: 'bar', - stack: 'Total Bugs', - emphasis: { - focus: 'series' - }, - data: [62, 82, 91, 84, 109, 110, 120] - } - ] - }; - - option && utChart.setOption(option); - window.addEventListener('resize', function () {utChart.resize();}); + option && utChart.setOption(option); + window.addEventListener('resize', function () { utChart.resize(); }); + }); } diff --git a/docs/js/chart_progress.js b/docs/js/chart_progress.js index 55d85e3..aba2757 100644 --- a/docs/js/chart_progress.js +++ b/docs/js/chart_progress.js @@ -70,7 +70,7 @@ function show_progress_chart(chart_id, data_url) { }, series: [ { - name: graph_data["name"], + name: graph_data["tree"]["name"], type: 'treemap', // sunburst treemap visibleMin: 300, label: { @@ -133,7 +133,7 @@ function show_progress_chart(chart_id, data_url) { borderColor: '#fff' }, levels: getLevelOption(), - data: graph_data["children"], + data: graph_data["tree"]["children"], } ] }; diff --git a/tools/dut_tree.py b/tools/dut_tree.py index e1327d0..26fa532 100644 --- a/tools/dut_tree.py +++ b/tools/dut_tree.py @@ -99,9 +99,10 @@ def as_dict(self): def from_json(self, json_str): self.tree = json.loads(json_str) - def update_leaf_meta(self, meta_path_values: dict): + def update_leaf_meta(self, meta_path_values: dict, update=True): # get all nodes mapping to meta_path_values - update_dut_tree_node_meta(self.tree) + if update: + update_dut_tree_node_meta(self.tree) leaf_map = {} def seek_leaf_node(node): if "children" not in node: @@ -120,3 +121,53 @@ def seek_leaf_node(node): if total > 0: leaf_map[path]["itemStyle"]["colorAlpha"] = min(1.0, float(total)/10.0) leaf_map[path]["meta"]["light"] = total >= 10 + + def export_nodes_as_list(self, node_names=[], update=True): + if update: + update_dut_tree_node_meta(self.tree) + info_list = [] + def seek_leaf_node(node): + if node["name"] in node_names or "children" not in node: + # get info: name, cases(total, pass, fail, skip), functions (covered/total), lines (covered/total) + info_list.append({ + "name": node["name"] + ("-*" if "children" in node else ""), + "cases": node["meta"]["cases"], + "functions": node["meta"]["functions"], + "lines": node["meta"]["lines"], + }) + else: + for child in node["children"]: + seek_leaf_node(child) + seek_leaf_node(self.tree) + return info_list + + def export_echart_jsondata(self, node_names=[]): + update_dut_tree_node_meta(self.tree) + node_list = self.export_nodes_as_list(node_names, False) + list_data = { + "names": [], + "series": [], + } + for se in [("passed cases", "cases", lambda x:x["cases"]["pass"]), + ("failed cases", "cases", lambda x:x["cases"]["fail"]), + ("skiped cases", "cases", lambda x:x["cases"]["skip"]), + ("function covered", "function", lambda x:x["functions"]["cover"]), + ("function un-covered", "function", lambda x:x["functions"]["total"]-x["functions"]["cover"]), + ("line-coverage-rate(%)","", lambda x: 100*x["lines"]["cover"]/x["lines"]["total"] if x["lines"]["total"] > 0 else 0)]: + data = { + "name": se[0], + "type": "bar", + "data": [] + } + if se[1]: + data["stack"] = se[1] + name_empty = list_data["names"] == [] + for node in node_list: + data["data"].append(se[2](node)) + if name_empty: + list_data["names"].append(node["name"]) + list_data["series"].append(data) + return json.dumps({ + "list": list_data, + "tree": self.tree + }, indent=4) diff --git a/tools/kmu_dut_tree.py b/tools/kmu_dut_tree.py index b3aafac..0a84462 100644 --- a/tools/kmu_dut_tree.py +++ b/tools/kmu_dut_tree.py @@ -298,4 +298,6 @@ dut_tree.update_leaf_meta({"/kmh_dut/misc/mmio": {"cases": {"total": 10, "pass": 12, "fail": 0, "skip": 0}}, "/kmh_dut/mem_block/ptw": {"cases": {"total": 10, "pass": 6, "fail": 2, "skip": 2}}, }) - print(dut_tree.as_json()) + print(dut_tree.export_echart_jsondata( + ["bpu", "rename", "dispatch_queue", "scheduler", "exu_block", "lsq", "v_mem"] + ))