1. Getting Started with SpaceStudio#
1.1. Introduction#
Space Codesign technology provides a comprehensive toolchain for efficient end-to-end automated hardware/software co-design targeting FPGA platforms. The integrated development environment guides you through the complete design flow—from architectural specification and algorithmic implementation through simulation, debugging, performance analysis, and physical FPGA deployment—enabling rapid development of complex heterogeneous embedded systems.
The Space Codesign environment integrates the following key components:
SpaceStudio: An Eclipse-based integrated development environment (IDE) that accelerates embedded system design through visual architecture modeling, hardware/software partitioning, automated High-Level Synthesis (HLS), and co-simulation/co-debugging capabilities. SpaceStudio provides graphical tools for system composition, component configuration, and automated code generation.
SpaceLib: A C/C++ and SystemC library providing hardware abstraction APIs for communication, synchronization, and I/O operations. SpaceLib enables portable application code that can execute in simulation, be synthesized to hardware via HLS tools, or compiled for embedded processors—facilitating design space exploration and hardware/software co-design workflows.
Monitoring Infrastructure: A non-intrusive performance profiling framework that captures timestamped trace data during simulation or hardware execution. The monitoring system provides visibility into communication patterns, processor utilization, memory access behavior, and task scheduling—enabling bottleneck identification and system optimization.
Architecture Implementation and FPGA-in-the-Loop (FIL): Automated workflows for physical FPGA deployment. Architecture Implementation transforms SpaceStudio designs into complete EDA tool projects (Vivado, NanoXplore Impulse) with synthesized RTL, cross-compiled software, device drivers, and boot images. FPGA-in-the-Loop extends this by fully automating bitstream generation, FPGA programming via JTAG, software deployment over SSH, and on-hardware execution—enabling rapid design validation on physical boards at full hardware speeds without manual SD card preparation or board configuration steps.
This guide provides step-by-step instructions for installing the Space Codesign environment, configuring license servers, and verifying your installation.
1.1.1. Workstation Requirements#
SpaceStudio requires a development workstation meeting the following minimum specifications:
Operating System:
Windows: Microsoft Windows 10 64-bit, build version 18305 or later
Linux: Ubuntu 20.04.x LTS (Long Term Support)
Processor: Dual-core x86-64 (Intel/AMD 64-bit) CPU (quad-core or higher recommended for improved compilation performance)
Important
SpaceStudio requires x86-64 architecture and is not compatible with ARM-based processors
Memory: 4 GB RAM minimum (8 GB or more recommended, especially when running EDA tools or large simulations)
Disk Space: 10 GB available storage for SpaceStudio installation (additional space required for EDA tools, project files, and build artifacts)
Resolution: Minimum 1024×768 pixels (1920×1080 Full HD recommended for optimal IDE usability)
DPI Scaling: Standard DPI displays only; high-DPI (4K/Retina) displays are not currently supported and may cause rendering issues
Note
When using SpaceStudio in conjunction with vendor EDA tools (Vivado, Vitis, NanoXplore Impulse), ensure your workstation also meets those tools’ system requirements, which typically demand significantly more resources (16-32 GB RAM, multi-core processors, and substantial disk space).
1.1.2. Installing SpaceStudio#
SpaceStudio is distributed as a platform-specific installer package. The installation process extracts the SpaceStudio IDE, runtime libraries, documentation, and example projects to a target directory on your development workstation.
1.1.2.1. Installation Directory Requirements#
The installation target directory must satisfy the following constraints:
No whitespace in path: The directory path must not contain spaces (e.g., use
/opt/spacestudioorC:\SpaceStudio, notC:\Program Files\SpaceStudio). Many build tools and compilers have issues with whitespace in paths.Write permissions: The installing user must have read, write, and execute permissions on the target directory.
Runtime permissions: All users who will run SpaceStudio must have read and execute permissions on the installation directory.
Administrator privileges: The installer must be executed with elevated privileges (Administrator on Windows, sudo/root on Linux) to properly configure system integration.
1.1.2.2. Interactive Installation#
For standard installations, launch the installer executable and follow the graphical installation wizard:
Windows:
SpaceStudio-<version>-win64.exe
Linux:
sudo ./SpaceStudio-<version>-linux64.run
The installer will guide you through license acceptance, installation directory selection, and component configuration.
1.1.2.3. Unattended Installation#
For automated deployment or scripted installations (e.g., in CI/CD environments or multi-user laboratory setups), SpaceStudio supports silent installation mode:
<spacestudio_installer> --al --am -c install
Where:
--al: Accept license agreement automatically--am: Assume “yes” to all prompts-c install: Execute installation command in console mode
This command performs a non-interactive installation using default settings.
1.1.3. Licensing SpaceStudio#
SpaceStudio employs Flexera FlexNet Publisher technology for enterprise license management. The licensing system uses a floating license model, where a centralized license server manages a pool of licenses that can be checked out by any authorized user on the network. This enables flexible license allocation across development teams without requiring per-seat installations.
1.1.3.1. License Architecture#
A FlexNet Publisher license server consists of two cooperating components:
License Manager: The core license management daemon (
lmadminorlmgrd) provided by Flexera that handles license checkout/check-in operations and enforces license policies.Vendor Daemon: A product-specific daemon (
spacecodfor SpaceStudio) that implements SpaceStudio-specific license features and communicates with the license manager.
During SpaceStudio operation, the user’s workstation maintains a persistent TCP/IP connection to the license server to continuously validate license availability. Network interruptions may cause license checkout failures or unexpected application termination.
1.1.3.2. License Server Setup#
Setting up a SpaceStudio license server involves the following steps:
1. Install FlexNet License Manager
SpaceStudio requires FlexNet Publisher version 11.13.1.3 or later. Contact your Space Codesign representative to obtain:
License manager binaries (
lmadminorlmgrd)FlexNet Publisher License Administration Guide
License management utilities (
lmutil,lmstat,lmdiag)
2. Install SpaceStudio Vendor Daemon
The SpaceStudio vendor daemon (spacecod) must be deployed alongside the license manager. Refer to the FlexNet Publisher License Administration Guide for vendor daemon installation procedures specific to your license manager version.
Supported License Server Operating Systems:
Microsoft Windows Server 2008 R2 or later, 64-bit
Microsoft Windows Server 2012 or later, 64-bit
Red Hat Enterprise Linux 5.x, 64-bit
Red Hat Enterprise Linux 6.x or later, 64-bit
Important
When deploying spacecod on Linux-based servers, ensure the redhat-lsb compatibility package is installed. This package provides necessary system libraries required by the vendor daemon:
# RHEL/CentOS
sudo yum install redhat-lsb
# Ubuntu/Debian (LSB compatibility)
sudo apt-get install lsb-core
3. Generate License File
License files are bound to the license server’s hardware identifier (Host ID). To obtain your server’s Host ID:
lmutil lmhostid
This command outputs the primary network interface’s MAC address (e.g., 001a4d5e6f78). Send this Host ID to your Space Codesign representative to request a license file.
4. Configure License File
Upon receiving your license file from Space Codesign, you may customize the following parameters if needed:
Server hostname: Modify the
SERVERline to match your license server’s DNS name or IP addressVendor daemon port: Adjust the TCP port used by the
spacecoddaemon
Warning
Do not modify the following fields, as any changes will invalidate the license:
Host ID (MAC address)
License features and capabilities
License start date or expiration date
Cryptographic signatures
Unauthorized modifications will cause license validation failures.
Refer to the FlexNet Publisher License Administration Guide for detailed instructions on license file syntax and deployment.
1.1.3.3. Client Workstation Configuration#
After establishing the license server, configure each SpaceStudio workstation to locate the license server by setting the appropriate environment variable:
Option 1: SpaceStudio-Specific Variable (Recommended)
# Linux/macOS
export SPACECOD_LICENSE_FILE=port@hostname
# Windows (System Properties → Environment Variables)
SPACECOD_LICENSE_FILE=port@hostname
Option 2: Generic FlexNet Variable
# Linux/macOS
export LM_LICENSE_FILE=port@hostname
# Windows
LM_LICENSE_FILE=port@hostname
Where:
port: The TCP port number of the license server (default is typically 27000)hostname: The DNS name or IP address of the license server
Example:
export SPACECOD_LICENSE_FILE=27000@licenseserver.example.com
SpaceStudio will automatically contact the configured license server during startup and periodically during operation to maintain license validity.
Tip
For redundant license server configurations, specify multiple servers separated by colons:
export SPACECOD_LICENSE_FILE=27000@server1.example.com:27000@server2.example.com
SpaceStudio will attempt to contact each server in order until a valid license is obtained.
1.1.4. Uninstalling SpaceStudio#
SpaceStudio can be removed from your system using the included uninstaller. The uninstaller removes all installed files, Eclipse workspace metadata, and registry entries (Windows only), but preserves user-created projects and preferences by default.
1.1.4.1. Interactive Uninstallation#
To uninstall SpaceStudio using the graphical wizard:
Windows:
Navigate to the installation directory and run:
%installation_folder%\uninstall.exe
Linux:
sudo %installation_folder%/uninstall
The uninstaller will prompt you to confirm the removal and optionally delete user data.
1.1.4.2. Unattended Uninstallation#
For scripted or automated removal (e.g., deployment management systems, cleanup scripts):
%installation_folder%/uninstall -c pr
Where:
-c: Console mode (non-interactive)pr: Purge and remove (delete all files without prompting)
This command performs a silent uninstallation removing all SpaceStudio components.