Open-source high-performance RISC-V processor
This report presents the forensic synthetic code analysis of OpenXiangShan/XiangShan, a Scala project with 7,143 GitHub stars. SynthScan v2.0 examined 162,080 lines of code across 656 source files, recording 890 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 27.3 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 890 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | src/test/scala/xiangshan/frontend/FrontendTrigger.scala | 36 | m.io.frontendTrigger.tUpdate.valid.poke(true.B) | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/frontend/FrontendTrigger.scala | 37 | m.io.frontendTrigger.tUpdate.bits.addr.poke(1.U) | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/frontend/FrontendTrigger.scala | 38 | m.io.frontendTrigger.tUpdate.bits.tdata.matchType.poke(3.U) | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/frontend/FrontendTrigger.scala | 39 | m.io.frontendTrigger.tUpdate.bits.tdata.tdata2.poke("h1234_567f".U) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 74 | m.io.in.vtype.illegal.poke(ill) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 75 | m.io.in.vtype.vta.poke(vta) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 76 | m.io.in.vtype.vma.poke(vma) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 77 | m.io.in.vtype.vsew.poke(vsew) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 78 | m.io.in.vtype.vlmul.poke(vlmul) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 81 | m.io.in.oldVt.illegal.poke(ill) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 82 | m.io.in.oldVt.vta.poke(vta) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 83 | m.io.in.oldVt.vma.poke(vma) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 84 | m.io.in.oldVt.vsew.poke(vsew) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 85 | m.io.in.oldVt.vlmul.poke(vlmul) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 95 | m.io.out.vconfig.vtype.illegal.expect(testVill.B, message) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 96 | m.io.out.vconfig.vtype.vta.expect(testVta.B, message) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 97 | m.io.out.vconfig.vtype.vma.expect(testVma.B, message) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 98 | m.io.out.vconfig.vtype.vsew.expect(testVsew, message) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 99 | m.io.out.vconfig.vtype.vlmul.expect(testVlmul, message) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 100 | m.io.out.vconfig.vl.expect(testVl.U, message) | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 102 | println(s"illegal: ${m.io.out.vconfig.vtype.illegal.peek().litValue}") | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 103 | println(s"vta: ${m.io.out.vconfig.vtype.vta.peek().litToBoolean} ") | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 104 | println(s"vma: ${m.io.out.vconfig.vtype.vma.peek().litToBoolean} ") | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 105 | println(s"vsew: ${m.io.out.vconfig.vtype.vsew.peek().litValue} ") | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 106 | println(s"vlmul: ${m.io.out.vconfig.vtype.vlmul.peek().litValue} ") | CODE |
| CRITICAL⚡ | …c/test/scala/xiangshan/backend/fu/VsetModuleMain.scala | 107 | println(s"vl: ${m.io.out.vconfig.vl.peek().litValue} ") | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 51 | vsetRiWi.io.in.bits.data.src(0) := io.in.avl | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 52 | vsetRiWi.io.in.bits.data.src(1) := vtypeStruct.asUInt | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 59 | vsetRiWvf.io.in.bits.data.src(0) := io.in.avl | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 60 | vsetRiWvf.io.in.bits.data.src(1) := vtypeStruct.asUInt | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 69 | vsetRvfWvf.io.in.bits.data.src(0) := vconfig.asUInt | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 70 | vsetRvfWvf.io.in.bits.data.src(1) := Mux(VSETOpType.isVsetvl(io.in.func), vtypeStruct.asUInt, vtypeStruct.asUInt(7, 0) | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 99 | io.debug.src0(0) := vsetRiWi.io.in.bits.data.src(0) | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 100 | io.debug.src0(1) := vsetRiWi.io.in.bits.data.src(1) | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 103 | io.debug.src1(0) := vsetRiWvf.io.in.bits.data.src(0) | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 104 | io.debug.src1(1) := vsetRiWvf.io.in.bits.data.src(1) | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 107 | io.debug.src2(0) := vsetRvfWvf.io.in.bits.data.src(0) | CODE |
| CRITICAL⚡ | src/test/scala/xiangshan/backend/fu/VsetTop.scala | 108 | io.debug.src2(1) := vsetRvfWvf.io.in.bits.data.src(1) | CODE |
| CRITICAL | src/main/scala/top/Top.scala | 325 | chi_llcBridge_opt.get.module.io.chi.connect(memLogger.io.down) | CODE |
| CRITICAL | src/main/scala/top/Top.scala | 384 | val dmResetReqVec = misc.module.debug_module_io.resetCtrl.hartResetReq.getOrElse(0.U.asTypeOf(Vec(core_with_l2.map | CODE |
| CRITICAL⚡ | src/main/scala/top/XSNoCTop.scala | 136 | core_with_l2.clintIntNode.get.out.head._1(0) | CODE |
| CRITICAL⚡ | src/main/scala/top/XSNoCTop.scala | 138 | core_with_l2.timer.get.intnode.out.head._1(0) | CODE |
| CRITICAL⚡ | src/main/scala/top/XSNoCTop.scala | 142 | core_with_l2.clintIntNode.get.out.head._1(1) | CODE |
| CRITICAL⚡ | src/main/scala/top/XSNoCTop.scala | 144 | core_with_l2.timer.get.intnode.out.head._1(1) | CODE |
| CRITICAL | src/main/scala/xiangshan/XSDts.scala | 75 | val outer = memBlock.inner.dcache.clientNode.edges.out.flatMap(_.manager.managers) | CODE |
| CRITICAL⚡ | src/main/scala/xiangshan/XSDts.scala | 104 | memBlock.inner.clint_int_sink.edges.in.flatMap(_.source.sources) ++ | CODE |
| CRITICAL⚡ | src/main/scala/xiangshan/XSDts.scala | 105 | memBlock.inner.plic_int_sink.edges.in.flatMap(_.source.sources) ++ | CODE |
| CRITICAL⚡ | src/main/scala/xiangshan/XSDts.scala | 106 | memBlock.inner.debug_int_sink.edges.in.flatMap(_.source.sources) ++ | CODE |
| CRITICAL⚡ | src/main/scala/xiangshan/XSDts.scala | 107 | memBlock.inner.nmi_int_sink.edges.in.flatMap(_.source.sources) | CODE |
| CRITICAL | …/main/scala/xiangshan/cache/dcache/meta/TagArray.scala | 84 | tag_array.io.w.req.bits.apply( | CODE |
| CRITICAL | …/main/scala/xiangshan/cache/dcache/meta/TagArray.scala | 94 | tag_array.io.r.req.bits.apply(setIdx = io.read.bits.idx) | CODE |
| CRITICAL⚡ | …cala/xiangshan/cache/dcache/meta/LegacyMetaArray.scala | 81 | tag_array.io.w.req.bits.apply( | CODE |
| CRITICAL⚡ | …cala/xiangshan/cache/dcache/meta/LegacyMetaArray.scala | 89 | tag_array.io.r.req.bits.apply(setIdx = io.read.bits.idx) | CODE |
| CRITICAL⚡ | …cala/xiangshan/cache/dcache/meta/LegacyMetaArray.scala | 91 | val ecc_errors = tag_array.io.r.resp.data.zipWithIndex.map({ case (d, w) => | CODE |
| CRITICAL | …/xiangshan/cache/dcache/data/DuplicatedDataArray.scala | 127 | ecc_array.io.w.req.bits.apply( | CODE |
| CRITICAL | …/xiangshan/cache/dcache/data/DuplicatedDataArray.scala | 135 | ecc_array.io.r.req.bits.apply(setIdx = raddr) | CODE |
| CRITICAL | …cala/xiangshan/cache/dcache/data/BankedDataArray.scala | 127 | data_sram.io.w.req.bits.apply( | CODE |
| CRITICAL | …cala/xiangshan/cache/dcache/data/BankedDataArray.scala | 133 | data_sram.io.r.req.bits.apply(setIdx = io.r.addr) | CODE |
| CRITICAL | …cala/xiangshan/cache/dcache/data/BankedDataArray.scala | 200 | data_bank.io.w.req.bits.apply( | CODE |
| CRITICAL | …cala/xiangshan/cache/dcache/data/BankedDataArray.scala | 207 | data_bank.io.r.req.bits.apply(setIdx = io.r.addr) | CODE |
| 231 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/pdb-run.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xiangshan.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xiangshan.py | 461 | # "rv64uzvfh-p-vfcvtrxuf.bin", | COMMENT |
| LOW | scripts/xiangshan.py | 481 | # "rv64uzvfh-p-vfncvtxf.bin", | COMMENT |
| LOW | scripts/xiangshan.py | 501 | # "rv64uzvfh-p-vfwadd.bin", | COMMENT |
| LOW | scripts/statistics.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/constantHelper.py | 21 | # "init": 11 | COMMENT |
| LOW | scripts/constantHelper.py | 41 | # {"successfully_forward_mshr": {"policy" :"max", "baseline" :0} }, | COMMENT |
| LOW | scripts/xspdb/xspdb.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/__init__.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/cli_parser.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_flash.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_dasm.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/util.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_break.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_wave.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_asm.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_com.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/__init__.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_elf.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_mrw.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_info.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_files.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_regs.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_fork_backup.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_trap.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_batch.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_tools.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_dut.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/server.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/backend.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/config.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/summary_view.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/completion.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/asm_view.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/layout.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/constants.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/__init__.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/widgets.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/log_view.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/stream_render.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/textual_app.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | scripts/xspdb/ui/io_capture.py | 1 | #*************************************************************************************** | COMMENT |
| LOW | .github/workflows/emu.yml | 241 | - name: Simple Test - CoreMark 1 iteration | COMMENT |
| LOW | debug/cputest.sh | 1 | #!/bin/bash | COMMENT |
| LOW | debug/sc_stat.sh | 1 | #!/bin/bash | COMMENT |
| LOW | debug/env.sh | 1 | #*************************************************************************************** | COMMENT |
| LOW | debug/perf_sbuffer.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …xiangshan/frontend/bpu/SignedSaturateCounterTest.scala | 1 | // Copyright (c) 2024-2026 Beijing Institute of Open Source Chip (BOSC) | COMMENT |
| LOW | …scala/xiangshan/frontend/bpu/SaturateCounterTest.scala | 1 | // Copyright (c) 2024-2026 Beijing Institute of Open Source Chip (BOSC) | COMMENT |
| LOW | src/main/scala/xiangshan/package.scala | 101 | object VstuType { | COMMENT |
| LOW | src/main/scala/xiangshan/package.scala | 641 | def uvsetrd_vlmax_i = "b1000_0001".U | COMMENT |
| LOW | …/main/scala/xiangshan/cache/dcache/DCacheWrapper.scala | 61 | ) extends L1CacheParameters { | COMMENT |
| LOW | …/main/scala/xiangshan/cache/dcache/DCacheWrapper.scala | 201 | COMMENT | |
| LOW | …/main/scala/xiangshan/cache/dcache/DCacheWrapper.scala | 1581 | //---------------------------------------- | COMMENT |
| LOW | …/main/scala/xiangshan/cache/dcache/DCacheWrapper.scala | 1701 | // ld_access.zip(ldu).foreach { | COMMENT |
| LOW | …iangshan/cache/dcache/mainpipe/AtomicsReplayUnit.scala | 141 | // io.pipe_req.bits.dump() | COMMENT |
| LOW | …cala/xiangshan/cache/dcache/data/BankedDataArray.scala | 501 | val error_bank1 = io.pseudo_error.bits(bank_addr(1)) | COMMENT |
| 214 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/parser.py | 274 | print("Error: cannot find submodules of {} or the module itself".format(submodule)) | CODE |
| LOW | scripts/xspdb/xspdb.py | 336 | except Exception: | CODE |
| LOW | scripts/xspdb/xspdb.py | 490 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xspdb.py | 558 | except Exception: | CODE |
| LOW | scripts/xspdb/xspdb.py | 564 | except Exception: | CODE |
| LOW | scripts/xspdb/xspdb.py | 593 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xspdb.py | 619 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xspdb.py | 651 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_dasm.py | 143 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_dasm.py | 166 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_dasm.py | 187 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_dasm.py | 212 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_dasm.py | 231 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 111 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 233 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 313 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 337 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 341 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 379 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 409 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/util.py | 67 | except Exception: | CODE |
| LOW | scripts/xspdb/xscmd/util.py | 77 | except Exception: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_break.py | 177 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_break.py | 225 | except Exception: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_break.py | 253 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_break.py | 376 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_break.py | 385 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_asm.py | 166 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 315 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 384 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 421 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 453 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 481 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_mrw.py | 110 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_mrw.py | 183 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_mrw.py | 213 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_mrw.py | 242 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_mrw.py | 271 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_mrw.py | 301 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_mrw.py | 353 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_info.py | 356 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_files.py | 150 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_files.py | 174 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_files.py | 210 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_files.py | 233 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_files.py | 252 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_regs.py | 82 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_regs.py | 100 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_regs.py | 114 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_regs.py | 132 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_fork_backup.py | 199 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_fork_backup.py | 219 | except Exception: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_fork_backup.py | 224 | except Exception: | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_fork_backup.py | 236 | except Exception as e: | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_fork_backup.py | 248 | except Exception: | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_fork_backup.py | 269 | except Exception: | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_fork_backup.py | 288 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_batch.py | 108 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_tools.py | 60 | except Exception as e: | CODE |
| LOW | scripts/xspdb/xscmd/cmd_tools.py | 75 | except Exception as e: | CODE |
| 99 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/rolling.py | 541 | def add_common_perf_selection_args(parser: argparse.ArgumentParser) -> None: | STRING |
| LOW | scripts/parser.py | 303 | def dump_negedge_modules_to_file(self, name, output_dir, with_submodule=True, try_prefix=None): | CODE |
| LOW | scripts/parser.py | 342 | def check_data_module_template(collection): | CODE |
| LOW | scripts/parser.py | 675 | def replace_mbist_scan_controller(out_dir): | CODE |
| LOW | scripts/xiangshan.py | 545 | def __get_ci_crosspage_fetch_test(self, name=None): | CODE |
| LOW | scripts/xiangshan.py | 621 | def __get_ci_workloads_instr_trace(self, name): | CODE |
| LOW | scripts/sram_size_collect.py | 7 | def extract_info_from_verilog(file_path): | CODE |
| LOW | scripts/perfcct.py | 110 | def check_should_commit_last_line(pos = None): | CODE |
| LOW | scripts/xspdb/xspdb.py | 379 | def api_update_pmem_base_and_first_inst_addr(self, a, b): | CODE |
| LOW | scripts/xspdb/xspdb.py | 412 | def api_batch_append_tail_one_cmd(self, cmd): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_flash.py | 77 | def api_check_if_xspdb_init_bin_loaded(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_flash.py | 88 | def api_set_flash_data_values(self, base_offset, reg_index, reg_map, kdata, kname): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_dasm.py | 33 | def api_merge_asm_list_overlap_append(self, a, b): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 359 | def complete_xparse_instr_file(self, text, line, begidx, endidx): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 382 | def complete_xload_instr_file(self, text, line, begidx, endidx): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_elf.py | 110 | def api_update_local_elf_symbol_dict(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_elf.py | 127 | def api_echo_pc_symbol_block_change(self, current_pc, last_block_addr, last_pc): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_elf.py | 161 | def api_turn_on_pc_symbol_block_change(self, value = True): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_elf.py | 170 | def do_xtrace_pc_symbol_block_change(self, arg): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_elf.py | 185 | def complete_xtrace_pc_symbol_block_change(self, text, line, begidx, endidx): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 104 | def api_is_difftest_diff_exit(self, show_log=False): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 136 | def complete_xload_difftest_ref_so(self, text, line, begidx, endidx): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 185 | def api_istep_update_commit_pc(self): | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_difftest.py | 205 | def api_break_is_instruction_commit(self): | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_difftest.py | 210 | def api_break_is_watch_commit_pc(self): | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_difftest.py | 215 | def api_get_istep_last_commit_pc(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 320 | def api_difftest_get_instance(self, instance=0): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 341 | def complete_xdifftest_turn_on(self, text, line, begidx, endidx): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 344 | def do_xdifftest_turn_on_with_ref(self, arg): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 360 | def complete_xdifftest_turn_on_with_ref(self, text, line, begidx, endidx): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 465 | def do_xdifftest_pmem_base_first_instr_address(self, arg): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_mrw.py | 306 | def api_get_current_call_stack(self, max_depth=10): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_info.py | 39 | def api_increase_info_force_address(self, deta): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_info.py | 50 | def api_get_last_info_mid_address(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_info.py | 60 | def api_set_info_force_mid_address(self, val): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_info.py | 71 | def api_get_info_force_mid_address(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_info.py | 95 | def api_info_get_last_commit_pc(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_info.py | 107 | def do_xset_dasm_info_force_mid_address(self, arg): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_fork_backup.py | 94 | def _fork_backup_cleanup_child(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_fork_backup.py | 175 | def _fork_backup_on_break_any(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_fork_backup.py | 182 | def _fork_backup_make_wave_path(self): | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_fork_backup.py | 241 | def _fork_backup_run_until_target(self): | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_fork_backup.py | 279 | def _fork_backup_child_post_fork_init(self): | CODE |
| LOW⚡ | scripts/xspdb/xscmd/cmd_fork_backup.py | 294 | def _fork_backup_redirect_stdio(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_trap.py | 177 | def complete_xgood_trap_disable(self, text, line, begidx, endidx): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_batch.py | 79 | def api_batch_get_default_break_cb(self): | CODE |
| LOW | scripts/xspdb/xscmd/cmd_batch.py | 85 | def api_batch_get_default_break_cb(self): | CODE |
| LOW | scripts/xspdb/ui/textual_app.py | 715 | def _handle_panel_scroll_keys(self, event) -> bool: | STRING |
| LOW | src/main/scala/xiangshan/package.scala | 194 | def getAndPerform[R](idx: Int)(f: T => R, default: R={}): R = { | CODE |
| LOW | src/main/scala/xiangshan/cache/CacheInstruction.scala | 167 | def cacheop_csr_is_being_write(csr_name: String): Bool = { | CODE |
| LOW | src/main/scala/xiangshan/cache/CacheInstruction.scala | 172 | def update_cache_req_when_write(csr_name: String, req_field: Data) = { | CODE |
| LOW | …/scala/xiangshan/cache/dcache/mainpipe/MissQueue.scala | 831 | def before_req_sent_can_merge(new_req: MissReqWoStoreData): Bool = { | CODE |
| LOW | …/scala/xiangshan/cache/dcache/mainpipe/MissQueue.scala | 840 | def before_data_refill_can_merge(new_req: MissReqWoStoreData): Bool = { | CODE |
| LOW | …/scala/xiangshan/cache/dcache/mainpipe/MissQueue.scala | 855 | def before_req_sent_merge_iskeyword(signals: MatchSignals, new_req: MissReqWoStoreData): Bool = { | CODE |
| LOW | …/scala/xiangshan/mem/sbuffer/StorePrefetchBursts.scala | 59 | def cache_block_addr_difference(req_addr: UInt, last_addr: UInt): UInt = { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/rolling.py | 308 | CODE | |
| LOW | scripts/rolling.py | 482 | CODE | |
| LOW | scripts/rolling.py | 668 | CODE | |
| LOW | scripts/parser.py | 383 | CODE | |
| LOW | scripts/parser.py | 593 | CODE | |
| LOW | scripts/parser.py | 59 | CODE | |
| LOW | scripts/parser.py | 166 | CODE | |
| LOW | scripts/parser.py | 202 | CODE | |
| LOW | scripts/parser.py | 241 | CODE | |
| LOW | scripts/parser.py | 464 | CODE | |
| LOW | scripts/xiangshan.py | 696 | CODE | |
| LOW | scripts/xiangshan.py | 702 | CODE | |
| LOW | scripts/statistics.py | 31 | CODE | |
| LOW | scripts/perfcct.py | 101 | CODE | |
| LOW | scripts/perfcct.py | 31 | CODE | |
| LOW | scripts/constantHelper.py | 196 | CODE | |
| LOW | scripts/constantHelper.py | 255 | CODE | |
| LOW | scripts/top-down/utils.py | 13 | CODE | |
| LOW | scripts/top-down/utils.py | 89 | CODE | |
| LOW | scripts/top-down/draw.py | 10 | CODE | |
| LOW | scripts/top-down/draw.py | 92 | CODE | |
| LOW | scripts/xspdb/xspdb.py | 541 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_flash.py | 88 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 25 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 115 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 163 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_instr.py | 247 | CODE | |
| LOW | scripts/xspdb/xscmd/util.py | 292 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_break.py | 463 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_asm.py | 28 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_elf.py | 31 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_difftest.py | 223 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_info.py | 225 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_files.py | 120 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_fork_backup.py | 94 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_trap.py | 79 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_tools.py | 23 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_dut.py | 41 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_dut.py | 50 | CODE | |
| LOW | scripts/xspdb/ui/server.py | 351 | CODE | |
| LOW | scripts/xspdb/ui/server.py | 218 | CODE | |
| LOW | scripts/xspdb/ui/server.py | 269 | CODE | |
| LOW | scripts/xspdb/ui/completion.py | 157 | CODE | |
| LOW | scripts/xspdb/ui/layout.py | 30 | CODE | |
| LOW | scripts/xspdb/ui/log_view.py | 86 | CODE | |
| LOW | scripts/xspdb/ui/stream_render.py | 44 | CODE | |
| LOW | scripts/xspdb/ui/textual_app.py | 240 | CODE | |
| LOW | scripts/xspdb/ui/textual_app.py | 336 | CODE | |
| LOW | scripts/xspdb/ui/textual_app.py | 621 | CODE | |
| LOW | scripts/xspdb/ui/textual_app.py | 715 | CODE | |
| LOW | .github/workflows/nightly_perf_diff.py | 14 | CODE | |
| LOW | .github/workflows/nightly_perf_diff.py | 37 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/xiangshan.py | 21 | CODE | |
| LOW | scripts/xiangshan.py | 30 | CODE | |
| LOW | scripts/constantHelper.py | 8 | CODE | |
| LOW | scripts/cache/l2DB_helper.py | 2 | CODE | |
| LOW | scripts/xspdb/xspdb.py | 27 | CODE | |
| LOW | scripts/xspdb/xspdb.py | 30 | CODE | |
| LOW | scripts/xspdb/xspdb.py | 30 | CODE | |
| LOW | scripts/xspdb/xspdb.py | 30 | CODE | |
| LOW | scripts/xspdb/xspdb.py | 30 | CODE | |
| LOW | scripts/xspdb/__init__.py | 18 | CODE | |
| LOW | scripts/xspdb/__init__.py | 19 | CODE | |
| LOW | scripts/xspdb/cli_parser.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_dasm.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 18 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 19 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 19 | CODE | |
| LOW | scripts/xspdb/xscmd/__init__.py | 19 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_batch.py | 20 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_batch.py | 20 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_batch.py | 20 | CODE | |
| LOW | scripts/xspdb/xscmd/cmd_batch.py | 20 | CODE | |
| LOW | scripts/xspdb/ui/__init__.py | 19 | CODE | |
| LOW | scripts/xspdb/ui/textual_app.py | 29 | CODE | |
| LOW | debug/local_ci.py | 7 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/sram_size_collect.py | 6 | # Define a function to extract information from a given Verilog file | COMMENT |
| MEDIUM | scripts/sram_size_collect.py | 26 | # Create an argument parser | COMMENT |
| MEDIUM | scripts/sram_size_collect.py | 55 | # Define the order for printing the information | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/xspdb/ui/config.py | 56 | def set_theme(self, name: str) -> None: | CODE |
| LOW | scripts/xspdb/ui/asm_view.py | 67 | def set_offset(self, value: int) -> None: | CODE |
| LOW | scripts/xspdb/ui/__init__.py | 21 | __all__ = ["enter_tui"] | CODE |
| LOW⚡ | scripts/xspdb/ui/widgets.py | 197 | def _set_manual_selection(self, start, end) -> None: | CODE |
| LOW | scripts/xspdb/ui/log_view.py | 60 | def set_min_level(self, level: str) -> None: | CODE |
| LOW | scripts/xspdb/ui/textual_app.py | 534 | def _update_drag(self, screen_x: int, screen_y: int) -> None: | STRING |
| LOW | scripts/xspdb/ui/textual_app.py | 621 | def _update_hint_for_value(self, value: str) -> None: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …c/main/scala/xiangshan/mem/lsqueue/NewStoreQueue.scala | 415 | // Step 1: Virtual Address Match (high bits only) | COMMENT |
| LOW⚡ | …c/main/scala/xiangshan/mem/lsqueue/NewStoreQueue.scala | 426 | // Step 2: Byte Overlap Check | COMMENT |
| LOW⚡ | …c/main/scala/xiangshan/mem/lsqueue/NewStoreQueue.scala | 430 | // Step 3: Select Youngest Valid Store | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …c/main/scala/xiangshan/mem/lsqueue/NewStoreQueue.scala | 415 | // Step 1: Virtual Address Match (high bits only) | COMMENT |
| LOW⚡ | …c/main/scala/xiangshan/mem/lsqueue/NewStoreQueue.scala | 426 | // Step 2: Byte Overlap Check | COMMENT |
| LOW⚡ | …c/main/scala/xiangshan/mem/lsqueue/NewStoreQueue.scala | 430 | // Step 3: Select Youngest Valid Store | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/xspdb/xscmd/cmd_asm.py | 131 | Assemble RISC-V assembly code and return a dict mapping section start addresses to bytes (little-endian). Uses r | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .github/ISSUE_TEMPLATE/1-bug_report.yaml | 142 | If this report is generated by AI, please provide the model / framework information. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/xspdb/xspdb.py | 304 | # Check if the waveform is on | COMMENT |
| LOW | scripts/xspdb/xscmd/cmd_asm.py | 43 | # Check if gcc and objdump are available | COMMENT |
| LOW | .github/workflows/emu.yml | 258 | # Check if docker image can be built | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/main/scala/xiangshan/cache/mmu/L2TLB.scala | 1205 | io.tlb(i).resp.bits.s1.af := DontCare // TODO: implement it | CODE |
| LOW | src/main/scala/xiangshan/backend/fu/Fence.scala | 77 | } // TODO:implement remaining mfence functionality, not yet finished!!! | CODE |
| LOW | src/main/scala/xiangshan/mem/lsqueue/LoadQueue.scala | 328 | // TODO: implement it! | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/top-down/top_down.py | 152 | # ========================================================================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/emu-performance.yml | 2 | # For more comprehensive performance regression, use Performance Regression Trigger | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | debug/local_ci.py | 112 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/main/scala/xiangshan/backend/Bundles.scala | 37 | * Don't forget to connect the remaining ports! | COMMENT |