Skip to content

工作区与项目

你在 Subaya 中所做的一切都存在于一个项目内。本指南展示项目是如何组织的、如何从 CLI 创建和 检查它们,以及本地的 .subaya/config.toml 如何把一个工作目录绑定到一个项目。

租户层级:org → workspace → project

Section titled “租户层级:org → workspace → project”

Subaya 嵌套了三层所有权:

  • 组织 — 你账户的顶层租户。计费、成员和许可证都在这里。
  • 工作区 — 组织内项目的分组(一个团队或一条产品线)。每个项目恰好属于一个工作区。
  • 项目 — 工作单元:一个带类型(fpgaembedded)的设计,拥有自己的需求、仿真、仓库和阶段。

更全面的图景请参见核心概念

一个项目被创建为两种类型之一,这会塑造它可用的工具链:

类型 用于 工具链
fpga RTL / FPGA 设计 RyuSim、Verilator、Icarus、Questa、Vivado xsim、Quartus
embedded MCU 固件(例如 STM32) CubeMX 引脚规划、Renode

在一个工作区内创建一个项目,并选择其类型:

Terminal window
suya project create --name <name> --workspace <workspace-id> --type fpga

对于嵌入式项目,传入 --type embedded。你可以选择性地在创建时设置一个 URL slug 或固定一个设备:

Terminal window
suya project create \
--name blinky \
--workspace <workspace-id> \
--type embedded \
--slug blinky \
--device <device-id>

suya project initsuya project create 的别名。

列出工作区中的项目:

Terminal window
suya project list --workspace <workspace-id>

显示单个项目的详情。若未给定项目,这会默认为记录在本地 .subaya/config.toml(见下文)中的项目:

Terminal window
suya project show

当你从一个目录针对某个项目工作时,Subaya 会把项目 id 记录在 .subaya/config.toml 中。 大多数接受 --project 标志的命令都会默认采用此值,因此你可以在不重复 id 的情况下运行它们:

Terminal window
# Both work the same once .subaya/config.toml points at a project:
suya project show
suya project show --project <project-id>

正是这一点让 suya sim runsuya arch ...suya rag search --scope project:<id> 以及 类似命令“恰好知道”它们所属的项目。

每个项目都会经历一系列阶段,这些阶段塑造 UI 和可用的工具:

概念 → 规划 → 实现 → 仿真 → 验证

获取或设置当前阶段:

Terminal window
suya project phase

项目可以与目录中的一个硬件设备关联。搜索目录、检查一个型号,并为你的项目分配一个:

Terminal window
suya device search --type embedded
suya device show <device-id>
suya device set <device-id>

你也可以在创建时通过 suya project create 上的 --device <device-id> 固定一个设备。