Project configuration, top levels and libraries
About 544 wordsAbout 2 min
2025-01-08
Files and layout
Keep shared project information in .vscode/property.json and local tool/editor settings in .vscode/settings.json.
user/src/ Design HDL
user/sim/ Testbenches
user/data/ Constraints and data
user/ip/ Vendor IP
user/bd/ Block designs
user/sdk/ Software workspace
user/sdk/data/ Hardware handoff
prj/ Generated projects and intermediate filesOverride directories with:
{
"arch": {
"prjPath": "prj",
"hardware": { "src": "user/src", "sim": "user/sim", "data": "user/data" },
"software": { "src": "user/sdk", "data": "user/sdk/data" }
}
}Relative paths start at the workspace. Project path variables include ${workspace}, ${plname} and ${psname}.
property.json field reference
See the property.json configuration reference for every field, including types, defaults, path resolution, actual effects, retained fields, and compatible aliases. This page covers hierarchy, libraries, tool paths, and project maintenance.
Top levels and files
Right-click an Architecture module and choose Set as top file of src or Set as top file of sim. They update srcTop and simTop separately. The selected module moves to the first row of its section with the current-top icon; other available roots remain visible even when the selected module was previously nested below another root. Add file / Del file change project membership/exclusions, not the source file on disk. Use .dideignore for gitignore-style scan exclusions without excluding required dependencies.
Libraries
Click the library icon in Architecture to use the 0.4.6 directory browser. It starts with common and custom. Select a directory and press Enter to browse one level; select ... to go back. Each file/directory has an import button on its right. Clicking it immediately appends a reference and refreshes the hierarchy while keeping the browser open. Directory/root imports include all HDL descendants. Imported entries show a remove button. Removing a reference keeps its source files; removing a directory-covered member preserves its siblings. Directory rows show README summaries.
Custom libraries use digital-ide.lib.custom.path. If no root is configured, select custom or use the folder button to choose an existing directory temporarily. Browsing alone makes no changes. Esc closes the browser; imports already performed remain saved.
Imports only append to the corresponding library.hardware.common or custom array, preserving existing references, other fields and comments. The mode is always remote. Common paths are relative to the common root; custom paths are relative to a configured root, or absolute for a temporary root. Sources stay at their original locations and are never downloaded/copied into the project. Non-empty library arrays keep one entry per line, with existing comments and indentation retained. You can also edit these arrays manually. Shared source edits affect every referencing project.
Vendor IP repositories are separate: use property.json → IP_REPO for Vivado custom repositories and keep IP/BD files within discoverable project inputs. The old digital-ide.prj.xilinx.IP.repo.path and digital-ide.prj.xilinx.BD.repo.path settings currently have no project-import consumer. Verify import, device and version in HARD output.
Tool paths
See Toolchain path configuration for user/workspace/remote scopes, the required path shape for each tool, Windows/Linux examples, PATH lookup, validation and troubleshooting.
Conversion and cleanup
Convert Xilinx projects to Digital IDE standard project structure previews changes before confirmation. Back up the original project, then verify top levels, files, constraints, IP/BD and libraries. Clean the current project previews removal of generated artifacts; it is not a refresh command.