CLI 引擎指令

使用本機設計引擎、原生 XLS 與 CUDA,以及 DDS 編寫功能,並遵守明確的限制與輸入契約。

概觀

本頁介紹本機設計引擎指令、主要引數及執行邊界。請使用已安裝指令的末端 --help 查看完整的選項與列舉值清單。在將結果用作工程證據前,請先閱讀結果本身的限制。

請先閱讀 CLI 指令介面。其中定義了下列各指令所依賴的路由、結束代碼、回執封套及同目錄解析規則。job 命名空間、analyze run,以及 evolve run 的說明位於 CLI 作業與雲端指令。

表格採用的慣例:

  • <ANGLE> 是位置引數;[ANGLE]... 是可重複指定的選用引數。

  • 「必填」欄中的選項必須提供,否則指令會在啟動任何內容前以 2 結束。

  • 每個子指令也都接受 --json 和 -h/--help。各列不再重複列出。

  • --project 是 --project <PROJECT>,即相對輸入與輸出路徑的選用工作目錄,除非該列另有說明。它必須解析為實際存在的目錄;無法解析的值會以 2。

capabilities

alti capabilities 會檢查經過驗證的安裝配置,並回報其操作介面。請先完成 在 Linux 上安裝;0.1.9 的內嵌啟動程序提供了先前缺少的回執與承載內容配置。能力回應並不能證明核心或設計已實際執行。

rtl

共有 28 個子指令。rtl compile 和 rtl synthesize 是兩個帶有 --runner 的相容路徑;其餘各個 rtl 子指令均無條件在本機執行。

與 physical run 和 px analyze 不同,這兩個指令即使未提供直通引數,也會啟動引擎,因為各自都指定了固定的引擎操作。接著,引擎會回報自己的缺少引數錯誤,並原樣傳遞結束狀態。請在 -- 之後提供它們所需的引數。

指令

必填

其他選項

用途

rtl compile

—

--runner <local|cloud|private>(預設為 local)、--project、-- <ENGINE_ARG>...

委派至封裝編譯引擎的相容路徑

rtl synthesize

—

--runner(預設為 local)、--project、-- <ENGINE_ARG>...

原始本機 synth 直通委派的相容名稱

rtl schematic <FILE>...

至少一個 <FILE>

--project、--top <TOP>、--format <json|text>(預設為 json)、-I <DIR>、-D <NAME[=VALUE]>

為已儲存的 RTL 原始碼輸出經編譯器確認的電路圖契約

rtl analysis <PATH>...

至少一個 <PATH>

--project

對指定原始碼執行封裝的分析操作

rtl synth [FILE]...

--top <TOP>

--project、--pretty、--netlist-only、--source <LOGICAL_PATH> <DISK_PATH>

執行封裝的合成操作

rtl map

--netlist <NETLIST>、--liberty <LIBERTY>

--project、--pretty

執行封裝的技術映射操作

rtl target-analysis capabilities

—

—

回報固定的目標分析契約及執行器可用性

rtl target-analysis readiness

—

—

回報不含路徑、唯讀的目標分析執行就緒狀態

rtl target-analysis admit

下列 11 個選項

--cell-decomposition

驗證由標準輸入 source-bundle JSON 提供的一個具型別准入請求

rtl target-analysis preflight

下列 11 個選項

--cell-decomposition

對標準輸入的 source-bundle JSON 執行結構預檢

rtl simulate admit|preflight|run <REQUEST_JSON>

<REQUEST_JSON>

--project

准入、預檢或執行一個有界的已儲存 RTL 模擬請求

rtl simulate-v2 capabilities

—

—

回報固定的四態多時脈模擬契約

rtl simulate-v2 admit|preflight|run <REQUEST_JSON>

<REQUEST_JSON>

--project

准入、預檢或執行一個有界的四態多時脈請求

rtl artifact store <RESULT_JSON_OR_DASH>

<RESULT_JSON_OR_DASH>

--project、--schematic

將一份結果回執持久儲存至專案成品儲存區

rtl artifact list

—

--project、--schematic

列出已儲存的項目

rtl artifact show <ENTRY_ID>

<ENTRY_ID>

--project、--schematic

讀取一個已儲存的項目

rtl fanout-free-committed-identities list

—

--project

列出固定擁有者私有登錄中,有界且已驗證的識別資料

rtl fanout-free-committed-identities read

--entry-id <SHA256>

--project

重新讀取從目前已驗證清單選出的一個識別資料

rtl global-sharing-committed-identities list|read

read:--entry-id <SHA256>

--project

同上,適用於全域共用識別資料

rtl mapped-timing-committed-identities list|read

read:--entry-id <SHA256>

--project

同上,適用於映射時序識別資料

rtl mapped-register-timing-committed-identities list|read

read:--entry-id <SHA256>

--project

同上,適用於映射暫存器時序識別資料

--schematic 在這三個 rtl artifact 子指令上會選取固定的電路圖回執儲存區,而非 RTL 操作結果儲存區。

--entry-id 在已提交識別資料的末端指令上必須恰好為 64 個小寫十六進位字元。其他值都會以 2 結束,並回報 entry id must be exactly 64 lowercase hexadecimal characters。

rtl schematic 限制

rtl schematic 會在啟動任何內容前驗證路徑。每個原始碼檔案、引入目錄與巨集定義,只要違反以下任一限制,就會在准入時遭拒:

限制

值

原始碼檔案

最多 256 個

引入目錄(-I)

最多 128 個

巨集定義(-D)

最多 256 個

路徑長度

1 至 4096 位元組

路徑元件

1 至 128 個

單一路徑元件

最多 255 位元組

路徑必須相對於選取的專案,不得以 - 開頭,不得包含控制位元組,也不得包含 ..。--top 與巨集定義名稱必須是 1 至 128 位元組的 SystemVerilog 識別字;巨集定義可在 = 之後帶有值,總長度最多為 4096 位元組。

rtl target-analysis 選項

admit 和 preflight 都會從標準輸入讀取標準 source-bundle JSON,且需要相同的 11 個選項:--module <NAME>、--top <NAME>、--targets <CSV>、--primary-target <ID>、--tools <CSV>、--report-detail <LEVEL>、--profile <ID>、--cpu-slots <N>、--memory-bytes <N>、--max-wall-time-ms <N>,以及 --deadline-unix-ms <N>。--cell-decomposition 是選用的布林旗標。

選項

接受的值

--primary-target

generic-asic、sky130-asic、xc7-fpga

--targets

以逗號分隔的子集,取自 generic-asic、sky130-asic、xc7-fpga,不得重複

--tools

以逗號分隔的子集,取自 waveform、schematic、roofline、perf、timing、ppa、evidence,不得重複

--report-detail

brief、standard、detailed

--cpu-slots 是 32 位元無號整數;--memory-bytes、--max-wall-time-ms,以及 --deadline-unix-ms 都是 64 位元無號整數。

任一 CSV 中若有重複或未列出的值,都會在解析時遭拒,例如 targets must be a comma-separated subset of: generic-asic, sky130-asic, xc7-fpga。

模擬請求封套

<REQUEST_JSON> 是相對於專案的檔案路徑,CLI 會在啟動任何內容前讀取並檢查該檔案。路徑必須經過正規化且為相對路徑,任何元件都不得穿越符號連結,並且必須解析至專案根目錄內。檔案必須為一般檔案,大小不得超過 260 MiB。

其 JSON 必須是恰好包含四個鍵的物件:

JSON
{
  "schema": "altifigence.rtl.operation-request.v1",
  "version": 1,
  "operationId": "altifigence.rtl.simulate.v1",
  "request": {}
}

operationId 必須是 altifigence.rtl.simulate.v1,適用於 rtl simulate 和 altifigence.rtl.simulate.v2,適用於 rtl simulate-v2。不相符時會在啟動前遭拒,並回報 RTL simulation request must be the exact <id> envelope。

已提交識別資料的子指令無法執行

這八個 rtl *-committed-identities list 和 read 末端指令會派送至名為 alti-rtl-runner 的引擎。該二進位檔不在此版本建置並隨附的 24 個引擎二進位檔之中,因此在正確的安裝中,無法以 alti 的同目錄檔案或 PATH 上的檔案解析它。呼叫其中一個指令時,會產生本機引擎回執,其中包含 status: "unavailable" 和 exitCode: 127:

文字

$ alti --json rtl fanout-free-committed-identities list
{
  "schema": "altifigence.local-engine-execution.v1",
  "status": "unavailable",
  "domain": "rtl",
  "operation": "fanout-free-committed-identities-list",
  "runner": "local",
  "binary": "alti-rtl-runner",
  ...
}

請勿依據這八個指令建立自動化流程。

sv

共有 23 個子指令,全都無條件在本機執行,且均不接受 --runner。

指令

必填

其他選項

用途

sv frontend index [PATH]...

—

--project

為指定路徑建立前端索引

sv frontend symbols [PATH]...

—

--project

回報指定路徑的符號介面

sv frontend symbols-v2 [PATH]...

—

--project

第二代符號回應結構

sv frontend definition <PATH> <LINE> <COLUMN> [ANALYSIS_PATH]...

位置

--project

解析某個位置的定義

sv frontend hover <PATH> <LINE> <COLUMN> [ANALYSIS_PATH]...

位置

--project

解析某個位置的懸停回應

sv frontend complete <PREFIX> [PATH]...

<PREFIX>

--project

解析某個前綴的補全結果

sv frontend references <PATH> <LINE> <COLUMN> [ANALYSIS_PATH]...

位置

--project

解析對某個位置之符號的參照

sv frontend rename-plan <PATH> <LINE> <COLUMN> <REPLACEMENT> [ANALYSIS_PATH]...

位置、<REPLACEMENT>

--project

產生重新命名計畫,不編輯檔案

sv frontend rename-apply <PATH> <LINE> <COLUMN> <REPLACEMENT> <REVIEWED_PLAN_SHA256>

全部五個

--project <ABSOLUTE_WORKSPACE> 必填

套用重新命名,並以已審閱計畫的雜湊作為准入條件

sv review immediate

—

—

審閱立即斷言,不編譯或模擬它們

sv review interprocess

—

—

審閱程序間同步,不編譯或模擬它

sv library constrained-random list

—

--category <item|control|checker>、--filter <FILTER>、--limit <LIMIT>(預設為 64)

列出受限隨機參考目錄中的項目

sv library constrained-random show <STABLE_ID>

<STABLE_ID>

—

顯示一個受限隨機目錄項目

sv library sva list

—

--category、--filter、--limit(預設為 64)

列出 SVA 參考目錄中的項目

sv library sva show <STABLE_ID>

<STABLE_ID>

—

顯示一個 SVA 目錄項目

sv uvm capabilities

—

—

回報已編譯的 UVM 橋接契約

sv uvm environment

—

—

回報 UVM 橋接環境檢視

sv uvm readiness

—

—

傳回已簽章的固定元件就緒回執,不載入或執行該元件

sv uvm abi

—

—

回報 UVM 橋接 ABI

sv uvm simulation capabilities

—

—

回報有界的 UVM 模擬契約

sv uvm simulation readiness

—

—

回報不含路徑的實作及外部執行權限就緒狀態

sv uvm simulation admit

下列 13 個選項

—

驗證一個有界且失敗時封閉的 UVM 模擬請求

sv uvm simulation preflight

下列 16 個選項

--cancellation-requested

預檢一個有界且失敗時封閉的 UVM 模擬請求

位置值規則:

  • <LINE> 和 <COLUMN> 是從 1 起算的非零整數。0 會以 2。

  • <REPLACEMENT> 必須是 SystemVerilog 識別字:第一個字元是字母、_ 或 $,其餘字元為英數字、_ 或 $。

  • <REVIEWED_PLAN_SHA256> 必須是 64 個小寫十六進位字元。

  • <STABLE_ID> 必須是 1 至 128 個字元,且僅可使用小寫字母、數字與連字號。

  • --filter 必須是 1 至 128 個非控制位元組;--limit 必須是 1 至 64 的整數,而 --limit 65 會以 2。

sv frontend rename-apply 是 sv 子指令中唯一需要 --project 的指令;其值必須是實際存在、且不是符號連結的目錄之絕對路徑。未提供時,指令會以 1 結束,並回報 SV rename apply requires --project <absolute-workspace>。

sv review immediate 和 sv review interprocess 會從標準輸入讀取 SystemVerilog 原始碼。它們是僅有的、由專屬引擎支援的 sv 子指令,其引擎為 alti-sv-immediate-review 和 alti-sv-interprocess-review;此命名空間中的其他指令均使用 alti-sv-frontend。

sv uvm simulation admit 需要 13 個選項:--bundle-id、--bundle-sha256、--source-count、--source-bytes、--test、--top、--clock、--period-ps、--cycles、--max-wall-time-ms、--max-cpu-cores、--max-memory-bytes,以及 --max-artifact-bytes。sv uvm simulation preflight 需要上述 13 個選項,再加上 --attempt-id、--observed-at-unix-ms,以及 --deadline-unix-ms,並另外接受布林選項 --cancellation-requested(預設為 false). --source-count 是 32 位元無號整數,--max-cpu-cores 是 16 位元無號整數,其餘數值選項都是 64 位元無號整數。

verification

指令

必填

其他選項

用途

verification golden-diff emit-profile <TRACE>

<TRACE>

--project、--tolerance-pct <TOLERANCE_PCT>(預設為 10)

從一份追蹤資料輸出比較設定檔

verification golden-diff check <REFERENCE> <TRACE>

兩者皆須

--project、--format <text|json|json-v1>(預設為 text)

將一份追蹤資料與參考資料比較

--tolerance-pct 必須是有限的非負數;負數或非數值會以 2 結束,並回報 tolerance-pct must be a finite non-negative number。

--format 在此選取引擎本身的輸出格式,與 CLI 層級的 --json 封套旗標彼此獨立。兩者可以同時使用。

trace

指令

必填

其他選項

用途

trace inspect <TRACE>

<TRACE>

--project、--format <json|text>(預設為 json)

檢查一個追蹤檔案

trace timeline <TRACE> <OUTPUT>

兩者皆須

--project

將一份追蹤資料的時間軸檢視寫入 <OUTPUT>

trace export <FORMAT> <TRACE> <OUTPUT>

三者皆須

--project

匯出一份追蹤資料

trace review materialize <TRACE_ARTIFACT_ID>

<TRACE_ARTIFACT_ID>

--project、--reference <REFERENCE_ARTIFACT_IDS>(可重複)

由擁有者儲存區的成品識別資料具體產生一個 v1 審閱套件

trace review list

—

--project

列出擁有者儲存區中最新的最多五個審閱套件

trace review show <PACKAGE_ID>

<PACKAGE_ID>

--project

顯示一份不含路徑的審閱套件摘要

trace review readback <PACKAGE_ID>

<PACKAGE_ID>

--project

回讀一個已驗證的審閱套件

<FORMAT> 在 trace export 上是 位置 列舉值,並非旗標,而且必須放在輸入路徑之前。其值為 vcd 和 chrome。

--reference 可重複指定,以列出其他參考成品。<TRACE_ARTIFACT_ID>、參考 ID 與 <PACKAGE_ID> 可以連字號開頭,無須使用 --。

請注意,alti trace 在沒有子指令時會進入本機解析器,並以 2 結束,要求提供子指令。因此,內嵌動作資訊清單中單一字詞的 trace 動作在此版本無法由指令列存取;請參閱 CLI 作業與雲端指令。

labs

唯讀描述資料與驗證。CLI 未提供工作流程執行功能。

指令

必填

其他選項

用途

labs inspect

—

—

檢查固定於編譯時的工作流程描述資料目錄

labs validate <DESCRIPTOR>

<DESCRIPTOR>、--project <ABSOLUTE_WORKSPACE>

—

驗證一份已檢查的 JSON 邊界健康描述資料,不執行它

labs status

—

—

輸出具確定性、僅含描述資料的 Labs 狀態

labs validate 嚴格檢查其兩個輸入,且以下每項規則都會在引擎啟動前檢查:

  • --project 必須是實際存在的目錄之絕對路徑,且不得為符號連結。

  • <DESCRIPTOR> 必須相對於工作區,不得包含 .. 或根元件,且最多為 4096 位元組。

  • 必須使用 .json 副檔名。

  • 必須解析為實際存在的一般檔案,大小最多為 1048576 位元組,且解析後的路徑仍須位於專案內。

tcl

指令

必填

其他選項

用途

tcl capabilities

—

—

回報 Tcl 執行階段能力描述資料

tcl environment

—

—

回報 Tcl 執行階段環境描述資料

tcl commands

—

—

回報有界的指令描述資料

tcl readiness

—

—

傳回固定且已簽章的執行階段就緒回執,不載入 Tcl

tcl evaluate

—

—

評估從標準輸入讀取的一份有界 Tcl 指令碼

前四個指令透過封裝的 alti-tcl 引擎,根據描述資料回應,並輸出標準的本機引擎封套。

tcl evaluate 有三點不同。它會從標準輸入讀取指令碼,上限為 4194304 位元組,且拒絕空白輸入。它要求 alti-tcl-local-runner 必須嚴格位於 alti 的同目錄中,不提供 PATH 備援,並依據已安裝的信任鏈加以檢查。0.1.9 啟動程序會安裝此路徑所需的固定已簽章 Tcl 元件;請使用已安裝的二進位檔。此外,它會輸出自己的回執結構 altifigence.cli.tcl-evaluation.v1,並使用自己的結束代碼;兩者都列於 CLI 指令介面。

eidb

指令

必填

其他選項

用途

eidb capabilities

—

—

回報 EIDB 邊界契約

eidb list

—

--project

列出專案底下的套件

eidb create

--source-artifact-ref <WORKSPACE_RELATIVE_ARTIFACT>

--project、--label <LABEL>

從相對於工作區的成品建立一個具有明確擁有權的 R1 套件

eidb export

--bundle-key <BUNDLE_KEY>

--project

產生一個套件的可攜式匯出

eidb readback

--bundle-key <BUNDLE_KEY>

—

回讀一個套件

eidb semantic-readback

--bundle-key <BUNDLE_KEY>

—

透過語意檢視回讀一個套件

eidb capabilities、eidb readback,以及 eidb semantic-readback 不接受 --project;就 CLI 而言,它們不涉及路徑。

physical

共有 42 個子指令。physical run 是帶有 --runner 的相容路徑;其餘指令均無條件在本機執行,且各自會將子指令名稱直接作為引擎操作傳遞給 alti-physical-runner。CLI 在此命名空間的職責是引數准入及回執封裝,因此可依規律將介面分成兩組。

群組

成員

引數

以專案為範圍的操作

pdn-stripe-plan、optimize-clock-tree、optimize-global-route、optimize-placement、placement-legalize、placement-pipeline-manifest、placement-pipeline-run、placement-seed-grid、single-clock-tree、two-pin-manhattan-route、two-pin-manhattan-route-congestion、two-pin-obstacle-route、two-pin-obstacle-route-bend-aware、multi-net-obstacle-route、multi-net-obstacle-route-bend-aware、multi-net-uniform-capacity-route、multi-net-edge-capacity-route、multi-net-congestion-cost-route、multi-net-congestion-cost-route-improve、multi-net-congestion-cost-route-improve-two-pass、multi-net-congestion-cost-route-improve-bounded

--project 僅此一項

以項目為範圍的後續操作

optimize-detailed-route、verify-detailed-route、placement-pipeline-analyze、placement-pipeline-verify、multi-net-route-metrics、two-pin-manhattan-route-verify、two-pin-obstacle-route-verify、multi-net-obstacle-route-verify、multi-net-obstacle-route-bend-aware-verify、multi-net-uniform-capacity-route-verify、multi-net-edge-capacity-route-verify、multi-net-congestion-cost-route-verify、multi-net-congestion-cost-route-improve-verify、multi-net-congestion-cost-route-improve-two-pass-verify、multi-net-congestion-cost-route-improve-bounded-verify

--entry-id <ENTRY_ID> 必填,再加上 --project

每個以項目為範圍的後續操作,都會讀取先前專案範圍操作產生的持久儲存項目。省略 --entry-id 會以 2 結束,且不啟動任何內容。42 個指令中有 36 個屬於此類,剩下的六個為:

指令

必填

其他選項

用途

physical route-evidence-closure list

—

—

列出目前專案底下有界的已提交識別資料

physical route-evidence-closure read

--identity-key-sha256 <LOWERCASE_SHA256>

—

重新驗證從目前有界清單選取的恰好一個識別資料

physical artifact store <RESULT_JSON_OR_DASH>

<RESULT_JSON_OR_DASH>

--project

將一份結果回執持久儲存至專案成品儲存區

physical artifact list

—

--project

列出已儲存的項目

physical artifact show <ENTRY_ID>

<ENTRY_ID>

--project

讀取一個已儲存的項目

physical run

—

--runner(預設為 local)、--project、-- <ENGINE_ARG>...

原始 runner 直通委派的相容路徑

physical route-evidence-closure read 是分成兩步的指令:CLI 先列出已提交識別資料,要求您的 --identity-key-sha256 位於該清單中,然後重新讀取該項資料。鍵若不是 64 個小寫十六進位字元,或不在目前清單中,就會在第二步前遭拒,並以 1 結束。列出清單的步驟不涉及路徑,也不接受 --project。

physical run 若未在 -- 之後提供引擎操作,就不會啟動。

文字

$ alti physical run
error: legacy local engine operation is required after `--`

這會以 1 結束。接受的舊版操作為 --capabilities-json、capabilities,以及 execute;其他值均會以 1 結束,並回報 legacy local engine operation ... is not in the public allowlist。

px

px analyze 是帶有 --runner 的相容路徑。位置引數若名為 <INPUTS_RELATIVE_...>,就會在專案的 inputs/ 目錄底下解析,而非相對於您的工作目錄。

指令

必填

其他選項

用途

px capabilities

—

—

回報 px 能力契約

px fdtd2d capabilities

—

—

輸出擁有者定義的 FDTD2D 能力契約

px fdtd2d readiness

—

—

回報動態安裝執行就緒狀態,不取得 CPU 租約

px fdtd2d preflight <INPUTS_RELATIVE_JSON>

<INPUTS_RELATIVE_JSON>

--project

驗證 FDTD2D 請求,並回報無法執行的原因

px execute

—

--project

執行封裝的 px 執行操作

px static-timing <INPUTS_RELATIVE_JSON>

<INPUTS_RELATIVE_JSON>

--project

從一個專案輸入檔案執行有界、非簽核的單時脈靜態時序分析

px process-recipe <INPUTS_RELATIVE_JSON>

<INPUTS_RELATIVE_JSON>

--project

驗證並編譯一個 px-recipe-1 JSON 檔案的宣告順序計畫

px spef-summary <INPUTS_RELATIVE_SPEF>

<INPUTS_RELATIVE_SPEF>

--project

從一個有界 SPEF 檔案回報被動擷取的 R/C,不具分析權限

px spef-analyze <INPUTS_RELATIVE_SPEF> <INPUTS_RELATIVE_CONFIG_JSON>

兩者皆須

--project

在呼叫端解析的一個製程角落下,執行有界且已設定的寄生與 IR 壓降分析

px readback <RUN_ID>

<RUN_ID>

--project

回讀一個已記錄的執行

px artifact store <RESULT_JSON_OR_DASH>

<RESULT_JSON_OR_DASH>

--project

將一份結果回執持久儲存至專案成品儲存區

px artifact list

—

--project

列出已儲存的項目

px artifact show <ENTRY_ID>

<ENTRY_ID>

--project

讀取一個已儲存的項目

px analyze

—

--runner(預設為 local)、--project、-- <ENGINE_ARG>...

原始 runner 直通委派的相容路徑

其中三個指令會在各自的說明中列出限制,這些限制也是契約的一部分:px static-timing 明確為非簽核用途,px spef-summary 明確不具分析權限,而 px fdtd2d preflight 回報的是就緒阻礙,而非結果。請依此解讀其輸出。

如同 physical run、px analyze 需要在 -- 之後提供舊版操作,否則會以 1 結束。其允許清單為 capabilities 和 execute。

PX CPU 與 CUDA 操作

指令

後端與輸入

px fdtd2d execute <INPUT>

必填 --backend 結束,並回報 cpu、cuda 或 auto;檔案相對於工作區 inputs/

px fft-convolution <INPUT>

後端與輸入規則相同

px heat-pinn-jtr

必填 --backend 結束,並回報 cpu、cuda 或 auto;有界的內建數值測試資料

px hotspot-sensitivity

相同的明確後端政策;有界的內建測試資料

px csr-gmres

相同的明確後端政策;有界的內建測試資料

這些指令接受 --project;前兩個也接受 --timeout-ms 1..300000。明確指定 cuda 要求可用的 CUDA 執行。auto 則另外允許引擎記錄的 CPU 備援;請檢查回報的後端。這些有界數值操作不能證明具備一般實體簽核能力,也不表示每個 PX 操作都受到 GPU 加速。

isa

六個子指令中的四個,只從標準輸入讀取 CX 原始碼。isa run 是帶有 --runner 的相容路徑。

指令

必填

其他選項

用途

isa elaborate

—

—

展開從標準輸入讀取的 CX 原始碼

isa assemble

--text <TEXT>

—

依據從標準輸入讀取的 CX 原始碼組譯一個指令

isa disassemble

--bits <BITS>、--bit-len <BITS>

—

依據從標準輸入讀取的 CX 原始碼反組譯一個編碼字

isa cosimulate

—

—

使用從標準輸入讀取的原始碼執行有界 CX 協同模擬投影

isa assistant verify

--check <CHECK>、--source <CX_FILE>

--project

對 CX 檔案執行一個指定檢查

isa run

—

--runner(預設為 local)、--project、-- <ENGINE_ARG>...

原始允許清單中本機 CX 操作的相容路徑

--check 僅接受 elaboration、static-semantics、encoding-uniqueness,以及 decode-determinism。--bit-len 是 32 位元無號整數。--text 和 --bits 不得為空或僅包含空白字元。

與 physical run 和 px analyze 不同,isa run 帶有固定的引擎操作,因此沒有直通引數時也會啟動,再由引擎回報自己的要求:

文字

$ alti isa run
cx run: run requires --program <path> or --program-text
[failed] isa.run runner=local engine=alti-cx/run executable=alti-cx resolution=path exit=1 project=.

ide

桌面主機操作。運算仍由上面的引擎命名空間負責。

指令

必填

用途

ide open

--project <ABSOLUTE_DIR>

在已安裝的 IDE 中開啟一個標準絕對專案目錄

ide open 會啟動另外安裝的桌面應用程式。下列原生工作區、Cloud、服務與專案建立指令會透過各自明確的後端運作。

--project 必須是標準絕對目錄:路徑為絕對路徑、目錄存在、不是符號連結,且等於自己的標準形式。若路徑透過符號連結解析,會遭拒,而不會默默跟隨連結。

ide open 不使用引擎二進位檔。它會先將名為 altifigence-ide 的可執行檔解析為 alti 的同目錄檔案,接著再搜尋 PATH,以 --project <canonical-dir> 啟動它,並輸出 altifigence.ide-launcher-receipt.v1 回執:

欄位

意義

schema

一律為 altifigence.ide-launcher-receipt.v1

status

spawned、unavailable 或 failed

pid

子程序 ID,或 null

binary

一律為 altifigence-ide

project

標準專案目錄;若標準化失敗,則為請求的值

resolution

sibling、path 或 unresolved

executable

解析後的路徑,或單純的名稱

error

當 status 不是 spawned 時的訊息,否則為 null

結束狀態為 0,當狀態是 spawned;否則為 1。altifigence-ide 隨 Digital Design Studio 一起提供,不包含在 CLI 封存檔中,因此 ide open 在僅安裝 CLI 時會回報 unavailable。

原生專案與工作區操作

ide init --parent ABSOLUTE_DIR --name NAME 會在標準、由呼叫端擁有的父目錄底下建立新的基本架構。它不會覆寫現有專案。ide workspace 會操作已儲存的本機檔案,不開啟 UI:

下列前綴之後的指令:ide workspace

輸入與行為

capabilities

回報平台契約

health --project ABS

在提供工作區存取前,復原待處理交易

files --project ABS [--limit N]

有界清單;預設 500,最多 20000

read --project ABS PATH

讀取一個允許存取的已儲存文字檔案

write --project ABS PATH --expected-sha256 HASH --content FILE_OR_DASH

僅在目前 SHA-256 相符時取代現有文字

edit --project ABS --request FILE_OR_DASH

包含 path、expected_sha256,以及 content 取代項目的陣列

file-plan --project ABS --request FILE_OR_DASH

審閱具型別的檔案建立、取代、刪除或目錄建立

file-apply --project ABS --request FILE_OR_DASH

套用完整且已審閱的檔案計畫

hierarchy-plan --project ABS --request FILE_OR_DASH

審閱擷取、移動、合併或常數標頭編寫

hierarchy-apply --project ABS --request FILE_OR_DASH

套用完整且已審閱的階層計畫

settings read --project ABS

讀取持久儲存的 DDS 專案設定

settings patch --project ABS --request FILE_OR_DASH

遞迴合併一個有界 JSON 物件

原生計畫結果是完整、不透明的套用輸入。請在不使用全域 --json 的情況下儲存原始引擎輸出,審閱後將同一份文件傳給相對應的套用指令。例如,使用現有的絕對專案路徑與具型別的階層請求:

Bash
alti ide workspace hierarchy-plan --project "$PROJECT" \
  --request "$HIERARCHY_REQUEST" > "$PLAN_FILE"
# Review the complete plan and changed source before the next command.
alti ide workspace hierarchy-apply --project "$PROJECT" --request "$PLAN_FILE"

請勿將失敗指令的輸出透過管線傳給 apply。請選擇新的計畫檔案,並檢查每個結束狀態。檔案編寫使用持久且序列化的交易及目前的原始碼雜湊;這不保證對不相關的寫入端具備整個檔案系統的即時原子性。衝突需要重新審閱。階層編寫只提供有界的原始碼選取與基本架構,不是完整的 SystemVerilog 語意重構或等價性證明。

設定保留 DDS 的 .alti/ide-settings.json 格式、未知鍵與原始 null 值。修補採用遞迴合併,而非 RFC 7396 刪除。請求/結果預算為 256 KiB,深度為 8;原生 UI 與 CLI 使用相同的 .alti/.ide-settings.lock。CLI 處理目前的專案格式,並非另一個獨立的桌面全域設定範圍。

原生交易與 Git 需要 Linux 契約。目前的復原會讀取 V1 與 V2 日誌。建立/刪除或階層套用中斷後,請先執行新 CLI 的 health,再開啟僅支援 V1 的舊 DDS 後端。舊後端會拒絕待處理的 V2 日誌,且不會清除它。正常完成的交易會清除其作用中的日誌;建議升級至支援透明復原的後端,但這不是每次已完成 CLI 編輯的必要條件。

Git

在 ide workspace git 底下,所有指令均接受 --project ABS:

指令

額外引數

status、refs、worktrees

無

history

選用 --limit 1..200 和 --skip 0..100000

commit-detail

提交 ID

commit-file

提交 ID 與相對路徑

diff

相對路徑,選用 --staged

stage、unstage

1 至 128 個相對路徑

commit

--message TEXT

switch

現有本機分支;拒絕有未提交變更的工作區或不支援的屬性/篩選器行為

這些操作會復原原生工作區交易,並與其序列化協調。它們不提供任意 Git 引數、掛鉤或遠端推送憑證。

搜尋已儲存原始碼

Bash
alti ide workspace search --project "$PROJECT" --query 'module' --limit 80

原生搜尋支援 --match-case、--whole-word、保守的固定寬度 --regex、1 至 500 筆符合結果限制,以及 --timeout-seconds 1..120。它透過原生 files/read 邊界讀取已儲存文字,預算為 500 個檔案、每個檔案 4 MiB、總計 16 MiB、輸出 1 MiB。請檢查截斷與內容證據。不會搜尋未儲存的編輯器緩衝區。Cloud 搜尋與舊版 HTTP 搜尋/取代是獨立的 服務操作。

xls

指令

請求與用途

xls capabilities

回報原生子集與後端可用性

xls check、eval、optimize、codegen

必填 --request FILE_OR_DASH,選用 --project;原生操作 JSON,最多 16 KiB

xls run

旗標與大小限制相同;XLS EngineJobV1 封套,具有明確的本機配置/裝置政策

xls artifact store

--request FILE_OR_DASH,選用 --project

xls artifact list、xls artifact show ID

選用 --project;有界的已儲存結果/回讀

xls upstream install

必填的絕對新 --destination 和 --toolchain-config;選用的原始固定版本 --archive

xls upstream capabilities

必填的絕對 --toolchain-config;回報實際安裝工具的涵蓋範圍

xls upstream run

必填 --toolchain-config、現有 --work-root,以及 --request FILE_OR_DASH;請求最多 2 MiB

原生路徑支援有界的 DSLX 與 XLS IR 函式,具有 1 至 64 位元的值、常數摺疊/死碼移除,以及組合 RTL 或包含 1 至 16 個輸出暫存器級的 RTL。請求會選擇 cpu,或明確的 cuda 來進行支援的批次評估。CUDA 後端不可用時會產生錯誤,不會自動改在 CPU 執行。請從 CPU 範例 開始。

獨立的上游路徑會安裝固定版本的公開 Google XLS Linux 工具鏈,驗證封存檔與工具/標準函式庫清單,並保留授權檔案。若選取的上游工具支援請求操作,即可使用匯入、參數化、結構、列舉、聚合與任意寬度型別,以及 proc。它不使用有界的 bits64 解析器,也不透過 CUDA 加速完整的 Google 工具鏈。

上游請求選擇 check、eval、convert、optimize 或 codegen。未明確提供向量/tick 的 DSLX eval 會執行實際模組測試;執行零個單元測試不能視為成功。基本封存檔不包含獨立的 IR/proc 評估器可執行檔。明確向量或通道 tick 需要額外經驗證的評估器套件,並於安裝時透過 --evaluator-bundle 和 --evaluator-manifest-sha256 准入。在請求這些操作前,請先檢查能力。上游管線程式碼產生支援 1 至 64 級;其單位延遲排程並非經特性化的矽晶時序。

compute

指令

用途

compute capabilities

探索裝置,不執行 GPU 核心

compute rtl-capabilities

檢查封裝 RTL 執行契約

compute rtl-simulate --request FILE_OR_DASH

有界的組合 RTL 執行,明確指定 cpu 或 cuda

compute rtl-evolve --request FILE_OR_DASH

有界的原生產生請求,明確指定 cpu-reference 或 cuda 活動後端

compute rtl-verify --request FILE_OR_DASH

驗證已儲存的封裝 RTL 結果,不載入 CUDA

請求指令接受 --project。Simulation/Evolve 輸入上限為 4 MiB;verify 輸入上限為 16 MiB。封裝的 alti-rtl-cuda 負責此路徑。compute rtl-evolve 接受 altifigence.rtl.evolve-request.v1,並將現有的原生產生請求嵌套於 request 底下;它不是 evolve run 操作封套。

Evolve CUDA 計算有界的組合活動診斷。候選產生、正確性檢查、合成與目標評估仍在 CPU 上進行。實際的 Icarus iverilog 和 vvp 必須透過主機工具設定提供。cpu-reference 需要 cuda_timeout_ms: 0 和 device_memory_bytes: 0;cuda 會拒絕不可用的執行,不會使用備援。請使用新的 request.run_dir,且其父目錄必須存在。

請求將世代與子代限制為 1 至 16、島嶼數限制為 1 至 4、總規劃評估次數限制為 256,LLM 子代則為零。裝置記憶體是有界的 worker 緩衝區預算,並非驅動程式總記憶體的限制。選用的本機 cancel_file 與期限支援合作式取消;原生工具呼叫仍遵守各自限制。成功的 CUDA 結果需要實際被接受的候選活動及已儲存的硬體來源資料,不能只靠裝置探索或初始探測。CPU/CUDA 功能一致不代表效能加速。

目前下載版本中缺少的指令

先前省略的 eda 和 reports 命名空間現已接入路由:

指令

輸入

eda inspect

--project ABS --format FORMAT PROJECT_RELATIVE_INPUT

eda sdc-bind

--project ABS --constraints PATH --logic-netlist PATH

eda artifact store、reports artifact store

--input RECEIPT_JSON,選用 --project

eda artifact list、reports artifact list

選用 --project

eda artifact show、reports artifact show

--entry-id SHA256,選用 --project

reports parse

請使用末端說明查看具型別的報告格式與有界輸入

這些是有界的檢查、解析或繫結操作,並非一般 EDA 工具執行。ide init 與明確的原生 Evolve 指令也可使用。上述未隨附的 alti-rtl-runner 相容路徑仍是一項獨立限制;請勿只憑說明文字推定支援。

準備引擎工作流程

  1. 選擇操作,閱讀其已安裝能力回應與末端說明。

  2. 在選取的專案內建立一個小型已儲存輸入,並識別其頂層/模組或進入點。

  3. 提供所需的外部工具;當請求支援 CPU/CUDA 選擇時,使用明確的後端。

  4. 使用有界資源執行一次,並保留診斷資料與完整原生結果。

  5. 在建立較大的工作流程前,檢查實際後端、輸入、輸出成品與不支援的指標。

請使用 DDS 分析 進行圖形介面工作流程,並使用 Evolve 比較候選。CLI 引擎支援、桌面面板與 Cloud 路由是不同的整合;請檢查您實際會使用的工作流程。