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/spacestudio or C:\SpaceStudio, not C:\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 (lmadmin or lmgrd) provided by Flexera that handles license checkout/check-in operations and enforces license policies.

  • Vendor Daemon: A product-specific daemon (spacecod for 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 (lmadmin or lmgrd)

  • 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 SERVER line to match your license server’s DNS name or IP address

  • Vendor daemon port: Adjust the TCP port used by the spacecod daemon

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.