naja-scope

io.github.keplertech由 GitHub 帳號 keplertech 發布v0.1.25更新於 Nov 13, 2026

Let AI agents explore SystemVerilog, Verilog and VHDL designs: connectivity, hierarchy, source.

發布方自己的服務:Scope (AEC) - Preview

已驗證STDIO僅桌面開發者工具資料與分析

概覽

AI 產生的概覽

讓 AI 助理載入 SystemVerilog、Verilog 或 VHDL 設計,並查詢階層、連線關係與原始碼,不必貼上 RTL 的 MCP 伺服器。

可以做什麼
  • 載入與重設設計:展開 SystemVerilog 或 VHDL(測試版),載入搭配 Liberty 元件或內建原語的閘級 Verilog,儲存並快速重新載入快照
  • 檢視工作階段:檢查狀態,彙總實體數量、暫存器位元與 RAM/ROM,計算展開內容的雜湊值
  • 瀏覽結構:依階層路徑解析物件,用萬用字元搜尋物件名稱,瀏覽實體樹
  • 追蹤連線:列出網路的驅動端與負載端,追蹤組合邏輯扇入扇出錐至暫存器邊界
  • 讀取原始碼與設計意圖:取得長度受限的原始碼片段、含埠與計數的模組卡片,以及展開時遺失的列舉、結構與參數資訊
  • 選用瀏覽器原理圖:開啟本機檢視器,為實體或腳位加上標註,並讀回最近點選的實體
適用情境
適合需要助理回答大型 RTL 或閘級設計的結構性問題時,例如某訊號由什麼驅動、模組內有什麼、某實體下有多少暫存器,而用 grep 查原始碼又慢又不確定。對於單一檔案內的純文字問題,幫助有限。
執行需求
以本機 stdio 程序執行,可透過 uvx 或 pip 安裝,需要 Python 3.10 以上,並從 PyPI 取得 najaeda 0.7.35 或更新版本。本機需能讀取設計檔案(RTL、網表、Liberty 函式庫)。選用的原理圖檢視器需安裝 schematic 附加元件,並在伺服器所在機器上有瀏覽器。未宣告帳號、API 金鑰或環境變數。
安裝前請注意
載入自訂原語檔案會在伺服器程序中執行未沙箱化的 Python,只應使用可信程式碼。選用的 Python 查詢工具預設關閉,啟用後任何能連上伺服器的一方都可執行任意未沙箱程式碼。HTTP 傳輸沒有內建驗證,只應透過可信且短期的通道對外開放。快照會覆寫目標目錄中既有的檔案,重設會捨棄記憶體中的工作階段,原理圖網址等同於對已載入設計的存取權。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 naja-scope,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

naja-scope

[PyPI version] [Python versions] [CI] [License: Apache 2.0] [Glama quality] [Install in VS Code] [Install in Cursor]

Let your AI assistant explore SystemVerilog and VHDL designs — without pasting source code into the chat.

naja-scope is an MCP server that gives AI agents (Claude, and any MCP-compatible assistant) a precise, structured view of your elaborated SystemVerilog or VHDL design. Instead of dumping thousands of lines of RTL into the model's context, the agent asks targeted questions — what drives this signal? what's inside this module? where does this net come from? — and gets back small, exact answers with file-and-line references.

Built on the najaeda netlist engine.

On a 17-question CVA6 benchmark, the same Claude Code agent scored 17/17 with naja-scope versus 10/17 with grep/read source tools — in 77 turns instead of 123, processing about 5× less input. How it was measured ↓

sh
claude mcp add naja-scope -- uvx naja-scope

No separate install step: uvx fetches naja-scope and najaeda from PyPI on first launch. The buttons above do the same for VS Code and Cursor. Prefer pip? See Install.

[naja-scope demo: a real Claude Code session tracing drivers and a fan-in cone on a UART design, using only naja-scope tools]


Why

Large designs don't fit in a chat window. Pasting RTL is slow, expensive, and the model still can't reliably trace connectivity across hierarchy. naja-scope turns your design into something an agent can navigate:

  • 🔎 Trace connectivity — find what drives or loads any signal, across module boundaries.
  • 🌲 Walk the hierarchy — explore modules, instances, and ports on demand.
  • 🎯 Jump to source — every answer comes with file:line ranges, so the agent can quote the exact RTL that matters.
  • 🧩 Logic cones — trace fan-in / fan-out combinational cones up to the register boundary.
  • 💡 Recover design intent — enum state names, struct/union fields, and parameter formulas that normally vanish when a design is elaborated.

Requires najaeda 0.7.35 or newer. See the 0.1.25 release notes for test results and snapshot migration requirements.

Works on RTL and gate-level netlists alike: load elaborated SystemVerilog or VHDL (beta), or load a post-synthesis structural Verilog netlist together with its Liberty standard-cell library and navigate the gates the same way (see Gate-level designs).

All responses are token-bounded: lists paginate, large results truncate with clear markers. Your context stays small; your answers stay accurate.


Does it actually help?

naja-scope helps most when the answer exists in the elaborated design rather than in any single source file. In an initial 17-question run on the cv32a6_imac_sv32 configuration of CVA6, the same Claude Code agent was tested with naja-scope and with source-search tools alone.

Agent setupProvider and modelsInitial automated scoreTurnsInput processedOutput tokens
Agent + naja-scopeAnthropic Claude Code; claude-sonnet-4-6 with claude-haiku-4-5-20251001 helper17 / 17771,058,55619,520
Agent + grep/read sourceAnthropic Claude Code; claude-sonnet-4-6 with claude-haiku-4-5-20251001 helper10 / 171235,461,71955,962

The difference is clearest on structural questions that source search cannot answer directly:

CVA6 questionAgent + naja-scopeAgent + grep/read source
Flattened register groups under ex_stage_i92, in 4 turnsNo answer at the turn limit
Flattened register groups under commit_stage_i0, in 3 turnsNo answer at the turn limit
Elaborated hpdcache_mux variants20, in 3 turnsNo answer at the turn limit

Source search remains the right tool for local textual questions. naja-scope adds the elaborated hierarchy, connectivity, lowered primitives, and generated or uniquified structures that are otherwise difficult to reconstruct.

See the benchmark methodology and multi-model runner and historical result record for configuration, scoring, token accounting, and reproducibility details.


Install

sh
pip install naja-scope        # pulls najaeda and the MCP runtime from PyPInaja-scope-mcp                # stdio MCP server

Connect it to Claude Code

sh
claude mcp add naja-scope -- uvx naja-scope      # with uv, no install stepclaude mcp add naja-scope -- naja-scope-mcp      # after pip install naja-scope

Or add it to any MCP client's config:

json
{  "mcpServers": {    "naja-scope": {      "command": "uvx",      "args": ["naja-scope"]    }  }}

(With a pip install, use "command": "naja-scope-mcp" and no args.)

Then just ask your assistant to load a design and start exploring:

"Load my UART design from rtl/uart.sv with top uart_top, then show me everything that drives tx_o."

The agent loads the design once and answers follow-up questions instantly — no re-reading source, no giant pastes.


Connect it to ChatGPT

ChatGPT connects to MCP servers over an HTTP endpoint (custom connectors / Developer mode), so run naja-scope as an HTTP server instead of stdio:

sh
naja-scope-mcp --transport streamable-http --host 127.0.0.1 --port 8000

This serves MCP at http://<host>:8000/mcp. Because ChatGPT reaches the server over the network, expose that URL where ChatGPT can see it — e.g. a public tunnel for a local run:

sh
# example: a tunnel to your local server (ngrok, cloudflared, …)ngrok http 8000        # -> https://<something>.ngrok.app  →  add /mcp

Then in ChatGPT, open Settings → Connectors (enable Developer mode if needed), add a custom connector, and paste the server URL (https://<your-host>/mcp). Once connected, ask it to load a design and explore exactly as above. (ChatGPT's connector UI evolves; the constant is: it needs an HTTPS MCP URL, which --transport streamable-http provides.)

⚠️ The HTTP server has no built-in auth — only expose it over a trusted tunnel, and prefer short-lived tunnels for local experiments.


Gate-level designs

Already synthesized? Load the structural Verilog netlist together with the Liberty library that defines its standard cells, and navigate the gates the same way as RTL:

"Load the Liberty library pdk/stdcells.lib, then the gate netlist build/top.v, and tell me what cells top is built from and what drives data_out."

Hierarchy, per-cell counts (get_module_card), drivers/loads, and logic cones all work on the netlist; cones stop at the sequential cells. get_source shows a cell's or net's line in the netlist. For Yosys output, load with yosys_source_attributes=True: the (* src = ... *) attributes become origins that get_source(path, origin=0) reads back in the RTL. A runnable example lives in examples/ (stdcells.lib + counter2.v + gate_level.py).


Storage summaries

get_module_card reports direct-child register bits and inferred RAM/ROM summaries: width, depth, capacity in bits, read/write port counts, and initialization status. Native memory interfaces also report address_bits and reset_mode (none, async_low, async_high, sync_low, or sync_high). It lists up to 12 memories, with memories_truncated when more exist; initialized memories include a 64-character init_preview and init_truncated. Address zero occupies the least-significant word.

get_stats aggregates these counts below the selected instance using flat_register_bits, flat_memory_instances, flat_rom_instances, flat_ram_instances, and flat_memory_bits. Register bits count modeled flip-flop/latch states, including multibit Liberty banks; RAM capacity is separate. Sequential cells without a state model are counted in register_bits_unknown_instances (flat_ in statistics), so known bit counts remain explicit lower bounds when that count is nonzero. Memories are recognized from native naja primitives; opaque memory macros are not assigned an inferred capacity.

Bounded tool output

MCP tools send compact JSON text alongside the same structured result. get_stats() returns aggregate counts and total_models with an empty models list. Request details with get_stats(limit=5), or pass the summary's next_cursor to start paging models (25 per page when only a cursor is supplied; maximum 200). Totals stay the same on every page.

find, get_drivers, and get_loads default to 20 entries (maximum 200). Use find's next_cursor to continue; for endpoints, check truncated and raise limit or query an individual bus bit. Explicit large limits or deep hierarchy queries can still exceed a client's inline output cap.

These defaults change benchmark token counts; record the naja-scope version when comparing runs across this change.

Content comparison

get_content_hash() returns a versioned SHA-256 of the top model and its descendants; pass module="uart_tx" to hash one elaborated model. Use it to compare loaded content before and after snapshot reload or netlist edits. The response includes format_version and naja_git_hash; compare hashes only within the same format version and track the engine separately when primitive semantics matter. Names and IDs participate, while source metadata and primitive definitions are excluded. This is not functional equivalence. Hashing is explicit because large hierarchies can take time.

SystemVerilog time units

For mixed RTL where only some modules declare a time unit, pass default_timescale="1ns/1ps" to load_systemverilog. It supplies a fallback for modules without a time unit and preserves explicit declarations. The setting survives snapshots and load_intent re-elaboration.

VHDL (beta)

VHDL loading is available in beta. Call load_vhdl(file=["pkg.vhd", "child.vhd", "top.vhd"], top="my_entity") to explore its elaborated hierarchy and connectivity; the files may be listed in any order. A single path per call also works (load packages first); package-only files may return top: null until the top file is loaded. The frontend supports a restricted two-state RTL subset, and supported constructs may change. get_source reads VHDL entity, port, signal, instance and process origins, including after snapshot reloads.

Designs that name their library, as in library neorv32;, need library="neorv32" on the load.

Pass intent=True to load_vhdl, or call load_intent afterwards, to query get_intent for enum literals and their encodings, including FSM states held in record fields, record fields, generics, and symbolic ranges such as WIDTH-1 downto 0. Package members use pkg::NAME, and an instance's parameter list leaves them out. Query the signal rather than its inferred flop, and note that record fields report widths, not bit positions. Validated on the NEORV32 SoC.


What you can ask

find uses case-sensitive globs: use *state*. Regex-style patterns such as .*state.* return a corrective hint without scanning the hierarchy. When a search misses a known parameter, a warm intent session points to get_intent. Use get_intent("top.inst.PARAM") for one parameter, get_intent("pkg::NAME") for a package member, or get_intent("pkg", want="parameters") to list package parameters. SystemVerilog package listing discovers names from available source files and validates them through the live engine; macro-generated names may require an explicit pkg::NAME query.

Once a design is loaded, your assistant can:

  • Resolve any signal or instance by hierarchical path (with glob and did-you-mean suggestions).
  • Find objects design-wide by pattern.
  • Show the hierarchy of any module.
  • Get drivers / loads of a net — the real endpoints, across hierarchy; literal drivers preserve four-state 0 / 1 / X / Z values.
  • Trace logic cones (fan-in / fan-out) and see the register frontier.
  • Get source — the exact source lines behind any object.
  • Get a module card — ports, counts, clock/reset at a glance.
  • Recover design intent — state-machine names, struct fields, parameter expressions lost during elaboration.

A runnable end-to-end walkthrough lives in examples/, including versions that run against CVA6 (a production RISC-V core, cloned on demand — see examples/cva6_demo.sh) and CORE-V-MCU (a full multi-vendor RISC-V SoC — see examples/core_v_mcu_demo.sh).


The Python escape hatch (off by default)

naja-scope also has a query_python tool that runs Python directly against the loaded design, for queries the typed tools above cannot express. It is not registered unless you opt in:

bash
NAJA_SCOPE_ENABLE_PYTHON=1 naja-scope-mcp

It is unsandboxed eval/exec inside the server process — read-only by convention, not enforced — so anything that can reach the server can run arbitrary Python as the server's user. That matters most under --transport streamable-http, where the server listens on a socket. Leave it off unless you need it and trust every client that can reach the endpoint.


Requirements

  • Python 3.10+
  • Works anywhere najaeda runs (Linux, macOS, Windows)

Development

sh
# from a checkoutpython3 -m venv .venv.venv/bin/pip install -e ..venv/bin/python -m pytest -q

The full test suite runs against a plain pip install of najaeda — no native build required. The CVA6 cross-hierarchy cone regression (tests/test_zzz_cone_cva6.py) is slow and skips automatically unless a CVA6 snapshot is present.

CI tests every supported Python version on Linux x86_64, plus native platform lanes for Linux x86_64/aarch64, macOS x86_64/arm64, and Windows x86_64. The macOS x86_64 lane builds najaeda from its source distribution because PyPI does not currently provide an Intel macOS wheel.


Support & contact


License

Apache-2.0. See LICENSE.

Optional browser schematic

Requires naja-schematic 0.2.0 or later (the release containing the embeddable viewer API):

bash
pip install "naja-scope[schematic]"

Restart the MCP server after installation. Load a design as usual, then use:

  • open_schematic(path="top.u_cpu"): returns a local browser URL and focuses the instance. Omit path for the top. Anonymous #id instances are supported.
  • annotate_schematic(items=[{"path": "top.u_cpu", "message": "Check reset", "severity": "warning"}]): replaces the overlay. Use kind="term" with a pin/port path to annotate that terminal; annotations apply to the whole port, not individual bus bits. Pass items=[] to clear. At most 200 annotations, each with at most 2000 message characters.
  • get_schematic_selection(): returns the last clicked instance as a regular naja-scope path, usable with source, hierarchy and module-card queries.

The viewer shares the existing raw naja universe; it does not elaborate again. The server binds to loopback and returns a token-bearing URL. Open that URL on the machine running the MCP server; it is not a remote or embedded MCP UI. Treat the URL as access to the loaded design. Design loads/resets refresh open viewers and clear selection, focus and annotations. The browser server stops with naja-scope. Existing tools remain usable without the schematic extra.

來源:README.md,提交 1e753d4

工具

24

open_schematic

Serve an interactive browser schematic of the current design. Returns a local URL to open on the MCP server's machine; requires the schematic extra. Uses the loaded design and supports anonymous #id instances.

輸入參數path

annotate_schematic

Replace schematic annotations on instances or pins/ports. Returns the local viewer URL and count. Annotations clear when the design changes.

輸入參數items必填

get_schematic_selection

Return the last browser-selected instance as a naja-scope path, or null. Use the returned path with module-card, source, or hierarchy tools.

無需輸入參數。

status

Inspect the current in-memory session without changing it. Use this before design queries to confirm a design is loaded and whether get_intent is live (`intent_loaded`) or can be reloaded (`intent_loadable`). Returns `loaded` and, when available, the top summary and loaded source files.

無需輸入參數。

load_systemverilog

Elaborate local SystemVerilog sources into the active design session. Use this for SystemVerilog RTL; use load_vhdl for VHDL (beta), or load_verilog with load_liberty/load_primitives for a structural gate netlist. Requires at least `files` or `flist` and changes the in-memory design session. Anonymous lowered objects are addressable by #<id>. defines are preprocessor -D entries ("NAME" or "NAME=VALUE"). allow_unknown_designs=True blackboxes any module still undefined instead of failing (e.g. undelivered hard macros in a partly-open-source design). blackbox_multi_writer_memories does the same for modules whose multi-writer memories naja cannot infer. intent=True retains naja's in-engine SNL↔slang link for get_intent.

輸入參數topfilesflistintentdefineskeep_assignsdefault_timescaleallow_unknown_designsblackbox_multi_writer_memories

load_verilog

Load local gate-level or structural Verilog into the active session. First call load_liberty for Liberty cells or load_primitives for built-ins; use load_systemverilog instead for RTL elaboration. Unknown modules fail unless `allow_unknown_designs` is true. get_source shows the netlist declaration of an object; for Yosys output, yosys_source_attributes=True also records its RTL `origins` (get_source origin=N). get_intent cannot answer for netlists.

輸入參數files必填keep_assignsallow_unknown_designsyosys_source_attributes

load_vhdl

Load VHDL into the active session (beta, restricted two-state RTL subset). Prefer passing every file of the design as one list (any order; units are resolved across files). Single-file calls still work: load package files first, then the top. Package-only files or entities awaiting generics may return top=null. Use hierarchy, cards and connectivity queries on the elaborated design. Use get_source for entity, port, signal, instance and process source references. intent=True enables get_intent for enum literals, record fields, generics and symbolic ranges. Unsupported constructs may fail during beta development. Returns the top summary when elaborated, language and beta status.

輸入參數topfile必填intentlibrary

load_liberty

Register standard-cell models from local Liberty `.lib` files in the active session. Use this before load_verilog when a gate netlist instantiates those cells; use load_primitives instead for the built-in Xilinx or Yosys model sets. This changes session state and returns `{"ok": true}`.

輸入參數files必填

load_primitives

Register primitive models in the active session from either a built-in `name` (`xilinx` or `yosys`) or one local Python `file` defining `load(db)`. Provide one source; `name` takes precedence when both are set. A custom file executes unsandboxed Python in the server process, so only use trusted code. Use load_liberty instead for standard-cell `.lib` files. Returns `{"ok": true}`.

輸入參數filename

save_snapshot

Write the active design and source metadata to a local directory for fast reload. Use after loading a design; load_snapshot reads the result. Existing snapshot files in the directory may be overwritten. Snapshots are tied to their producing najaeda version, and returns include the saved path.

輸入參數directory必填

load_snapshot

Load a compatible save_snapshot directory into the active session in seconds instead of re-elaborating. Use load_systemverilog/load_verilog/load_vhdl when no compatible snapshot exists. The directory must match this najaeda version. intent=True also re-elaborates the warm intent layer from the flist saved in the snapshot (for get_intent).

輸入參數intentdirectory必填

reset_universe

Discard the active design and all in-memory session state. Use before starting an unrelated design; do not use merely to inspect status. This is destructive to the current session but does not delete source or snapshots. Repeating it is safe and returns `{"ok": true}`.

無需輸入參數。

resolve

Resolve a known hierarchical object path to instance, term, or net descriptors with source references. The final segment accepts a glob and bit selects (for example `top.u_uart.tx_o[0]`). Use find when the path is unknown; use get_hierarchy to browse children. This read-only query requires a loaded design and returns did-you-mean suggestions on failure.

輸入參數kindpath必填limit

find

Search case-sensitive object names across the loaded design with a glob. Use this when an exact path is unknown; use resolve once a path is known or get_hierarchy to browse structure. A dot in `pattern` switches matching to full hierarchical paths. Use '*state*', not the regex '.*state.*'. Parameters and package members are source intent: use get_intent. Returns typed descriptors in `matches` plus `count`, `has_more`, and an opaque `next_cursor` for pagination.

輸入參數kindlimitcursorpattern必填

get_hierarchy

Browse the instance tree below `path` (or the top instance). Use this for structural children; use find for design-wide name search or get_stats for aggregate model counts. Lists only non-assign children (real submodules + leaf primitives); `assign` glue is reported as `assign_count`, not enumerated. Each child carries a `leaf` flag (submodule vs leaf primitive). depth<=5; the non-assign set is paginated at the root via limit/cursor (next_cursor/has_more), deeper levels via children_truncated.

輸入參數pathdepthlimitcursor

get_drivers

List the immediate upstream endpoints that drive a term or net across hierarchy. Use this for direct sources; use get_loads for downstream readers or trace_cone for the transitive combinational fanin. Returns leaf drivers (FF/gate instances with pin, model, source ref) and top-level ports. Lowered assign glue is traversed rather than reported as an endpoint. Literal assign drivers include `constant` (0, 1, X, or Z); bus entries include the driven `bit`. Capped at limit (default 20, max 200) with a `truncated` flag; no cursor — raise limit to see more.

輸入參數path必填limit

get_loads

List the immediate downstream endpoints that consume a term or net across hierarchy. Use this for direct readers; use get_drivers for upstream sources or trace_cone for the transitive combinational fanout. Returns leaf readers (instances with pin, model, source ref) and top-level ports. Lowered assign glue is traversed rather than reported as an endpoint. Capped at limit (default 20, max 200) with a `truncated` flag; no cursor — raise limit to see more.

輸入參數path必填limit

trace_cone

Trace the combinational fanin/fanout cone of a term/net via naja's LogicCone. Use this for transitive logic reachability; use get_drivers or get_loads for only immediate endpoints. direction: fanin|fanout. The cone crosses hierarchy and combinatorial arcs and always stops at flops, top ports, and opaque black-box cells. Returns node_count, counts_by_kind, counts_by_model, and a `frontier` of {flops, ports, blackboxes} with exact counts and lists capped at max_frontier (<=200) with a truncation marker. `cross_hierarchy` groups the flop frontier by top-level submodule and, under outside_root_subtree, names the frontier registers that live OUTSIDE the cone root's own subtree (the cross-hierarchy answer) — read it directly.

輸入參數path必填direction必填max_frontier

get_source

Read the bounded source excerpt that produced an object (for example, an SV FF instance maps to its `always_ff` block; a netlist cell maps to its instantiation line). Use when exact source text is needed; use get_intent for typedef/enum/parameter semantics. When the response lists `origins` (e.g. Yosys src attributes), call again with origin=N to read that RTL. Returns object, file, start/end range, text, and truncation status without modifying files; missing paths and source ranges return structured errors.

輸入參數path必填origincontext_lines

get_module_card

Deterministic module summary: ports, instance counts by model, sequential cell and register-bit counts, bounded RAM/ROM details (width, depth, ports, initialization preview), and source ref. Clock/reset candidates are name-based guesses; verify before relying on them. Use this for one model's interface; use get_stats for counts below an instance.

輸入參數module必填

get_content_hash

Versioned SHA-256 of a model and its descendants, computed on demand. Compare elaborated content across snapshots using the same format_version. Names and IDs participate; source metadata and primitive definitions are excluded. Track naja_git_hash separately for engine changes. This is not functional equivalence. Large hierarchies can take time to hash.

輸入參數module

get_stats

Summarize instance population by model below `path` or the top design. Use this for aggregate leaf/sequential/model counts, register bits, and RAM/ROM counts and capacity; use get_hierarchy for actual child instances or get_module_card for one model's ports. This read-only query requires a loaded design. Returns `root_model`, flat totals, `total_models`, and an empty `models` list by default. Pass limit or the returned next_cursor to retrieve model details with pagination. Register bits count modeled flip-flop/latch states, excluding memories; unknown sequential bit counts are reported separately.

輸入參數pathlimitcursor

get_intent

Retrieve source-level intent that netlist lowering erases (warm-only). Use when the answer is in the SystemVerilog or VHDL *type/declaration*, not the flattened gates: enum/typedef state names + encodings (incl. PACKAGE typedefs whose members live in another file), and symbolic PARAMETER or generic expressions (the formula behind a baked-in width). ref: a hierarchical path ('cva6.csr_regfile_i.priv_lvl_q'), a package member ('riscv::PLEN'), a parameter path ('top.inst.PARAM'), an instance path for its parameters, or a bare package name to list its parameters. want: auto | type | fsm_states | parameters. If the intent layer is not loaded, returns a note and you should fall back to get_source.

輸入參數ref必填want

load_intent

Make the warm source-intent layer available for get_intent. Use after a SystemVerilog or VHDL load that did not retain intent; do not call for gate-level Verilog, and prefer `intent=True` on the initial load. This is a no-op when the link is already live; otherwise it replaces the active universe by re-elaborating from explicit or captured `flist`/`files`. Returns `intent_loaded`; missing inputs produce a structured error.

輸入參數topfilesflist

版本歷史

2
  1. v0.1.25最新Nov 13, 2026
  2. v0.1.24Nov 11, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Scope 整合