Tapeout Submission Process
Comprehensive Guide to Chip Submission with chipfoundry-cli
This guide outlines the complete workflow for submitting your designs to ChipFoundry, with specific instructions for Windows, macOS, and Linux users.
NOTE: We can only support 1 machine and 1 user per project.
Step 1: Install and Configure the chipfoundry-cli
Before you begin, you'll need to set up the command-line tool.
1. Install Python (If Needed)
The chipfoundry-cli requires Python. If you don't have it, download and install the latest version from python.org. On Windows, ensure you check the box that says "Add Python to PATH" during installation. This is crucial for the CLI to work correctly from your terminal.
2. Install the CLI
Once Python is installed, open your terminal (PowerShell, Command Prompt, or Terminal) and install the chipfoundry-cli tool using pip:
pip install chipfoundry-cliStep 2: Account Setup & SSH Key Registration
Now that the CLI is installed, you can proceed with setting up your account and registering your SSH key for secure authentication.
1. Generate Your SSH Key Pair Using cf keygen
The chipfoundry-cli tool can now generate an SSH key pair for you. This key pair includes a private key (which stays on your computer) and a public key (which you'll share with us). The default location for the generated key will be ~/.ssh/chipfoundry-key.
Open your terminal and run:
cf keygen
This command will generate a new RSA SSH key at
~/.ssh/chipfoundry-key.The public key will be displayed directly in your terminal, ready for the next step.
If you want to view your SSH key, you can run this command
cf keyview.
2. Submit Your Public Key
After generating your key, the cf keygen command will display your public key. Copy the entire output (it typically starts with ssh-rsa).
Then, complete the SSH submission form provided by ChipFoundry at https://chipfoundry.io/sftp-registration, pasting your entire public key into the appropriate field. Never share your private key.
3. Administrative Review & Confirmation
Our team will review your request and create your SFTP account. You will receive a confirmation email. Your ChipFoundry username will be in the format firstname-lastname.
4. Configure Your Credentials
This one-time setup links the CLI to your account. Run:
cf config
The tool will prompt you for:
Your SFTP username: Enter the
firstname-lastnameusername provided in your confirmation email.Path to your SSH private key: You can leave this blank to use the default key generated by
cf keygen(~/.ssh/chipfoundry-key). If you used a different path, specify it here.
Step 3: Prepare Your Project Directory
The chipfoundry-cli requires a specific directory structure:
gds/: Must contain exactly one of the following:user_project_wrapper.gds,user_analog_project_wrapper.gds, oropenframe_project_wrapper.gds.verilog/rtl/user_defines.v: Required for digital and analog projects.
Example Structure
my_awesome_chip/
├── gds/
│ └── user_project_wrapper.gds
└── verilog/
└── rtl/
└── user_defines.vStep 4: Submit Your Project
Initialize your project and then push it to our servers.
1. Initialize Your Project
Navigate to your project's root directory and run init. The CLI will auto-detect the project name from the directory and can suggest the project type based on your GDS files.
# Example for Windows
cd C:\Users\YourUser\Documents\my_awesome_chip\
# Example for macOS / Linux
cd ~/Documents/my_awesome_chip/
# Run init from within the directory
cf initThis creates a .cf/project.json file to track your project's configuration and is where the GDS hash will be automatically generated during the push command.
2. Push Your Design Files
From within your project directory, run the push command to upload your project.
cf push
This command will collect the required files, update your project configuration (including the GDS hash), and upload everything securely to the SFTP server with progress bars.
Step 5: Monitor and Retrieve Results
Check Status: To see the status of all your projects on the SFTP server, run
cf status. This command lists your projects and indicates if they have input files and/or results.Download Results: When a run is complete, run
cf pullfrom your project directory to download the output files. Results will be saved tosftp-output/<project_name>/.
Step 6: Finalizing Your Submission
Re-submission: You can fix your design and re-submit by running
cf pushagain at any time before the deadline.Final Version: The last successful push you make before the submission deadline is automatically considered your final version for tapeout. We will also send you an email confirming the gds SHA.