通过 Altifigence CLI 使用 Google XLS
独立的 Linux CLI 工作流可通过固定版本的上游 Google XLS 运行 DSLX;本地 XLS MCP 工具则为兼容客户端提供源码操作。

Altifigence CLI 提供 Linux x86_64 工作流,用于安装和运行固定版本的上游 Google XLS 工具链。它接受指定源模块与操作的请求,并返回已安装工具的运行结果。设计人员可通过此命令行工作流检查 DSLX、运行模块测试,以及从所选函数生成 SystemVerilog。
另一个工作流可将兼容的 MCP 客户端连接到本地 XLS 源码工具。这些工具在 CPU 上使用同目录中的原生 XLS 引擎,并接受内联源码。上游工具链工作流与本地 XLS MCP 工作流,各自有不同的设置步骤和请求格式。两者都提供通过 Altifigence CLI 安装环境处理源码、检查输出结果的具体方式。
运行固定版本的上游 Google XLS 工具链
上游途径从显式安装工具链开始。Altifigence CLI 会安装固定版本的 Google XLS 发行版、验证归档文件,并检查工具和标准库清单。它会保留发行版的许可证文件,并在通过这些检查后写入工具链配置。CLI 在使用前会再次验证已安装的发行版。
配置会标识后续请求所使用的安装环境。其能力响应会说明可用操作和输入类型,以及发行版和工具的标识信息。这让源码任务具有明确的执行上下文:一份请求、一个选定的安装环境,以及记录所用工具的结果。
在 Linux x86_64 上安装 Altifigence CLI。以普通用户身份运行 alti xls upstream install,并在现有文件夹下,为安装目标和工具链配置选择新的绝对路径。
使用该工具链配置查阅 alti xls upstream capabilities。检查为您的安装环境报告的操作、输入类型,以及已安装发行版的标识信息。
准备包含 operation、input_kind、entry 和 files 的请求。对于 DSLX,files 以 .x 结尾的相对路径作为键来包含模块,而 entry 则指定起始模块。
使用工具链配置、现有的 work-root 文件夹和请求,运行 alti xls upstream run。选择 check 进行解析和类型检查,或选择 eval 运行入口模块的测试函数与测试 proc。
针对所选函数,加入 top 并选择 convert、optimize 或 codegen。检查返回的产物,并将结果与源码请求一同保留以供审阅。
多文件请求可清楚呈现模块与其导入项之间的关系。公开示例将 add 函数放在 adder.x 中,并从 main.x 导入,再由该文件中的模块测试检查结果。entry 指定用于求值的测试模块。check 和 eval 会针对该入口模块及其导入项运行;生成请求则通过 top 指定函数。
从带类型的加法器到生成的输出
文档中的加法器使用 u8 输入和 u8 返回值。其测试将 u8:255 与 u8:1 相加,预期得到 u8:0。这个小型审阅示例很实用,因为源码类型和预期的回绕行为会一同呈现。设计人员可将阅读函数、检查断言和运行模块测试,作为同一项源码任务的不同部分。
在流水线 SystemVerilog 生成示例中,add 被选为 top,加法器模块则作为 entry。转换会生成所选函数的中间表示;优化会生成优化后的 IR 产物;代码生成会输出 SystemVerilog,以及随附的接口、调度和签名材料。选择 convert 或 optimize,便能在中间阶段停下来审阅。
该流水线 codegen 结果包含 module.sv、converted.ir、optimized.ir、interface.textproto、schedule.textproto 和 signature.textproto。每个产物都附有文本内容、字节数及 SHA-256。结果也会记录工具进程,包括其哈希、参数、退出码和输出。这些字段共同将生成的文件与该次运行所使用的工具和请求联系起来。
上游生成请求可选择流水线级数,或使用组合逻辑 SystemVerilog。探索源码时,可将其视为对生成结构的选择。一项实用的审阅练习是将 DSLX 与返回的 IR、SystemVerilog 并列,观察所选函数在不同阶段如何呈现。这项比较是由设计人员主导、利用生成产物进行的阅读任务。
连接独立的本地 XLS MCP 工具
本地 XLS MCP 工作流从已验证的 Linux x86_64 CLI 软件包开始。在兼容客户端的 stdio 设置中,将命令设为已安装的 alti-mcp 可执行文件绝对路径,并将参数留空。在该已验证的安装环境中,将 alti-xls 与 alti-mcp 放在同一目录。将服务器进程的环境变量 ALTI_MCP_MODE 设为 local-xls,然后连接。
刷新客户端的工具列表,然后以空对象 {} 调用 altifigence.local.xls.capabilities。检查返回的引擎能力与执行回执。此步骤可在从客户端发送源码操作前,先确立引擎的执行上下文。
工具集包含 altifigence.local.xls.capabilities、altifigence.local.xls.check、altifigence.local.xls.eval、altifigence.local.xls.optimize 和 altifigence.local.xls.codegen,提供能力检查、源码检查、使用输入向量求值、XLS IR 优化及 RTL 生成。运行时会在 CPU 上使用同目录中的引擎。
进行源码操作时,将 input_kind 设为 dslx 或 xls-ir,提供内联的 source,并在 top 中提供顶层函数名称。对于 eval,还需以字符串值数组提供 vectors。此请求形式适合明确选定的源码函数,以及为该函数准备的一组带类型输入。引擎调用成功时,会在 structuredContent 中返回 engine 与 receipt。
选择适合源码任务的工作流
上游途径适合处理 DSLX 模块、导入项和模块测试,并希望取得已安装的固定版本 Google XLS 工具链结果的设计人员。本地 MCP 途径则适合通过兼容客户端,将内联源码操作与求值向量提交给原生 CPU 引擎的用户。请从相关能力响应开始,确认源码,并保留返回的结果以供检查。
对于加法器示例,请将模块测试请求与生成请求保留为不同的审阅输入。测试请求指定包含断言的模块,生成请求则指定包含所选函数的模块。将这些请求一起阅读,可明确正在对哪份源码求值,以及哪个函数正在转换为 RTL。请将文件映射关系与结果一同保存,让导入的模块与 entry 仍易于识别。
本地客户端也能用于另一项实用的源码练习:提交具有明确输入类型的小型函数,检查源码,再使用准备好的向量求值。将返回值与您为这些输入写下的预期值比较。请将引擎结果与执行回执一同保留在审阅资料中。这能提供由用户主导比较源码、输入值和输出的材料,且每项操作都由用户在客户端中明确选择。
了解更多
安装、模块测试与 SystemVerilog 产物的说明,请参阅固定版本上游 XLS 指南。
客户端配置与源码操作的说明,请参阅本地 XLS MCP 指南。
Linux 安装工作流的说明,请参阅Altifigence CLI 指南。
请前往 Altifigence Downloads 获取 CLI 发行包与产品下载。