工程配置、顶层与库
1111 字约 4 分钟
2025-01-08
配置位置与目录
.vscode/property.json 描述可共享的工程信息;.vscode/settings.json 保存工具路径和编辑器设置。默认目录:
.vscode/property.json
.vscode/settings.json
.dideignore
user/src/ 设计 HDL
user/sim/ 测试平台
user/data/ XDC 等约束与数据
user/ip/ 厂商 IP
user/bd/ 块设计
user/sdk/ 软件工程
user/sdk/data/ 硬件描述
prj/ 生成的工程与中间产物使用自定义目录时,在 arch 中指定实际路径:
{
"arch": {
"prjPath": "prj",
"hardware": { "src": "user/src", "sim": "user/sim", "data": "user/data" },
"software": { "src": "user/sdk", "data": "user/sdk/data" }
}
}相对路径以工作区为基准;支持的项目路径变量包括 ${workspace}、${plname}、${psname}。不要把本机厂商安装路径放进 arch。
property.json 字段说明
完整字段解释见 property.json 配置参考,逐项说明类型、默认值、路径基准、实际用途,以及保留字段和兼容写法。本页介绍结构树、库、工具路径和工程维护操作。
选择顶层与管理文件
在 Architecture 中右键目标模块,选择 Set as top file of src 或 Set as top file of sim。这两个操作分别修改 srcTop、simTop,不会把 testbench 自动变成硬件顶层。树中对应模块会移动到所属区域首行并显示当前顶层图标;即使该模块原本是另一模块的子实例,其他可用顶层仍会保留。
Add file / Del file 修改工程文件成员或排除字段;从工程移除不等于删除磁盘文件。.dideignore 用于限制扫描范围,语法类似 gitignore。不要忽略实际需要的包、头文件或库。
库与 IP
点击 Architecture 标题栏的库图标,采用与 0.4.6 相同的逐级浏览方式:
- 首先显示 common(公共库)和 custom(自定义库)。选择一项并按 Enter,进入其目录。
- 选择目录并按 Enter 继续浏览;选择
...返回上一级。列表显示当前层级的目录和 HDL 文件,并展示目录的 README 摘要。 - 点击目标文件或目录 右侧的导入按钮,立即追加引用并刷新结构树。目录导入其全部 HDL 子文件;common/custom 根节点右侧按钮可导入整个库。面板保持打开,便于连续操作。已导入项显示“已导入”,右侧按钮变为“从导入中移除”;移除只更新引用,不删除源码。目录导入覆盖的子项也显示移除按钮,单独移除子项时会保留其他成员。
- 自定义库通常从
digital-ide.lib.custom.path指定的根目录浏览;未配置时,选择 custom 或右上角文件夹按钮,可临时指定已有目录。浏览和选择目录本身不会修改工程。按 Esc 关闭面板;已经点击导入按钮的引用会保留。
导入只补充对应 library.hardware.common / custom 数组,保留已有引用、其他字段和注释,library.state 固定为 remote。公共库路径相对于公共库根目录;自定义库路径相对于已配置的根目录,临时选择目录时使用绝对路径。源码仍在插件公共库或所选原目录中,不下载、不复制到工程目录。也可手动编辑对应数组移除引用;库操作后非空数组按项换行,保留原有注释和缩进。修改共享库会影响引用它的其他工程。
厂商 IP 与普通 HDL 库不同。Vivado 自定义 IP 仓库使用 property.json 的 IP_REPO;IP/BD 文件还需处于工程可发现的输入范围。旧的 digital-ide.prj.xilinx.IP.repo.path、digital-ide.prj.xilinx.BD.repo.path 设置目前没有工程导入读取逻辑。刷新树之后还应在 HARD 流程检查 IP/BD 导入、器件和版本。
工具路径
完整说明已移至 工具链路径配置,包含用户/工作区/远程设置范围、每种工具应填根目录还是程序目录、Windows/Linux 示例、PATH 查找、校验与排错。
转换与清理
Convert Xilinx projects to Digital IDE standard project structure 先展示改动,确认后执行转换。先备份原 Xilinx 项目,转换后核对文件、顶层、约束、IP/BD 和库。
Clean the current project 会预览并清理生成产物。不要将清理当作刷新,也不要在工具仍使用产物时清理。已有可用项目无需为了日常编辑反复转换或生成配置。