All Projects → limerainne → Dockerize-EDA

limerainne / Dockerize-EDA

Licence: other
[WIP] Dockerize Synopsys/Cadence EDA tools

Programming Languages

Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to Dockerize-EDA

Skywater Pdk
Open source process design kit for usage with SkyWater Technology Foundry's 130nm node.
Stars: ✭ 1,765 (+2996.49%)
Mutual labels:  eda
Inspectdf
🛠️ 📊 Tools for Exploring and Comparing Data Frames
Stars: ✭ 195 (+242.11%)
Mutual labels:  eda
padring
A padring generator for ASICs
Stars: ✭ 19 (-66.67%)
Mutual labels:  eda
Library
A microservice project using .NET Core 2.0, DDD, CQRS, Event Sourcing, Redis and RabbitMQ
Stars: ✭ 122 (+114.04%)
Mutual labels:  eda
Ditching Excel For Python
Functionalities in Excel translated to Python
Stars: ✭ 172 (+201.75%)
Mutual labels:  eda
Edaviz
edaviz - Python library for Exploratory Data Analysis and Visualization in Jupyter Notebook or Jupyter Lab
Stars: ✭ 220 (+285.96%)
Mutual labels:  eda
Systemrdl Compiler
SystemRDL 2.0 language compiler front-end
Stars: ✭ 95 (+66.67%)
Mutual labels:  eda
NLPDataAugmentation
Chinese NLP Data Augmentation, BERT Contextual Augmentation
Stars: ✭ 94 (+64.91%)
Mutual labels:  eda
100 Days Of Ml Code
A day to day plan for this challenge. Covers both theoritical and practical aspects
Stars: ✭ 172 (+201.75%)
Mutual labels:  eda
Synopsys-Project-2017
A deep learning based bioinformatics project on epigenetics in Type 2 Diabetes.
Stars: ✭ 14 (-75.44%)
Mutual labels:  synopsys
Open Register Design Tool
Tool to generate register RTL, models, and docs using SystemRDL or JSpec input
Stars: ✭ 126 (+121.05%)
Mutual labels:  eda
Rath
自动化数据探索分析和智能可视化设计应用. Automatic insights discovery and visualization for data analysis.
Stars: ✭ 169 (+196.49%)
Mutual labels:  eda
vscode-cadence
The Visual Studio Code extension for Cadence
Stars: ✭ 48 (-15.79%)
Mutual labels:  cadence
Scattertext
Beautiful visualizations of how language differs among document types.
Stars: ✭ 1,722 (+2921.05%)
Mutual labels:  eda
FIFA-2019-Analysis
This is a project based on the FIFA World Cup 2019 and Analyzes the Performance and Efficiency of Teams, Players, Countries and other related things using Data Analysis and Data Visualizations
Stars: ✭ 28 (-50.88%)
Mutual labels:  eda
Sweetviz
Visualize and compare datasets, target values and associations, with one line of code.
Stars: ✭ 1,851 (+3147.37%)
Mutual labels:  eda
Opentimer
A High-performance Timing Analysis Tool for VLSI Systems
Stars: ✭ 213 (+273.68%)
Mutual labels:  eda
xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (-56.14%)
Mutual labels:  eda
KiCad sharp
A C# library wrapping some of KiCad's functionallity, allowing for some features not in the software and programmatic circuit creation
Stars: ✭ 28 (-50.88%)
Mutual labels:  eda
flirt
Are you ready to FLIRT with your wearable data?
Stars: ✭ 41 (-28.07%)
Mutual labels:  eda

[WIP] Dockerize scripts for commercial EDA tools

Here is the Dockerfiles to dockerize popular EDA (Electronic Design Automation) tools!

With docker images made from these Dockerfiles, we could do:

  • Build/test your design on the cloud server (but here comes a license issue :) )
  • Maintain tools with as many different version as you want without difficulties
  • Provide tools for you or your peer's desktop computer regardless of which OS you are using
  • Continuous Integration (CI) for your design
  • and much more!

Of course, most things listed above could be done without Docker and meaningless job made by me :)
I don't know dockering tools is useful or not...

Packages tried to dockerize

  • Synosys
    • Design Compiler (DC)
    • IC Compiler (ICC)
    • VCS (RTL Simulator) (N-2017; w/ Ubuntu 16.04)
    • HSPICE (N-2017; for J-2014 netbase package is also required (#6))
  • Cadence
    • Incisive (NCSim)
    • Virtuoso (IC)

CAVEAT

  • You should NOT upload an image containing commercial tool to PUBLIC docker registry! ;-)

  • Intermediate images are not removed automatically, you have to remove by yourself for now. (see below)

  • X11 forwarding with host was not prepared. In other words, with this image you cannot open GUI windows out-of-the-box. (See #3)

  • How can we run docker container with unpriviledged permission? In other words, can this image be used similar to desktop applications?

    • Currently, I did not prepare to drop root priviledge in Dockerfiles
    • Singularity could be a solution #5

Prerequisites

  • Docker 17.05+ (this script uses multi-stage build feature)
  • Installer and installation package of the tool you want to dockerize
    • This repository consists of just Dockerfiles, not of actual images or installer packages

Generating an image

  • Clone this repository to your workstation.
  • Copy (or bind mount) installer and installation package to the subdirectory
    • Refer to shell scripts for bind-mounting installation files from other path. Bind mount was used only for avoiding copy installation package to working path
  • modify dockerfile to match with your tool version, your requirements, etc.
  • Execute below command to create an image.
$ sudo docker build -t <image_name>:<version> -f <Dockerfile> .
e.g. $ sudo docker build -t synopsys_dc:X-2020.4 -f Dockerfile_Synopsys_DC .
  • You can manually remove intermediate images created during building an image.
$ sudo docker images    # find a tag of the intermediate image
$ sudo docker rmi <image_tag_you_want_to_remove>

or

$ docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Launch a container

  • Example command to run a container
    • You should pass LM_LICENSE_FILE environment variable regarding your license server
    • Consider bind mount your user directory
$ sudo docker run --rm -it -e LM_LICENSE_FILE="<port>@<license_server>" \
                   <image_name> [<command>]
  • To run a container with GUI (X11) enabled, see #3.

Vendor specific requirements

Synopsys

  • Requires following jobs to be run within Ubuntu (14.04) environment
$ sudo apt install csh libxss1 libsm6 libice6 libxft2 libjpeg62 libtiff5 libmng2 libpng12-0
# WORKAROUND link old library filenames with newer version
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libmng.so.2 /usr/lib/x86_64-linux-gnu/libmng.so.1
  • Change default shell from dash to bash for avoiding shell script compatibility issues
$ sudo update-alternatives --install /bin/sh sh /bin/bash 20
  • Ubuntu 18.04 requires additional treatments, because libpng12-0 package was removed from that version
    • Manually download and install libpng12-0 package, or add source of older releases and install package from that source like below:
$ sudo 'echo "deb http://security.ubuntu.com/ubuntu xenial-security main" >> /etc/apt/sources.list'
$ sudo apt update
$ sudo apt install -y -t xenial libpng12-0

HSPICE

  • Requires libxml2 also
J-2014
  • Requires netbase package, which has /etc/protocols file

VCS

  • Additionally required packages:

    • dc
    • gcc/g++ compiler
      • In Debian/Ubuntu, you can do that by simply installing build-essential package (with unnecessary more packages ;-( )
  • Define below environment variables

$ export VCS_HOME=<path_to_vcs>
$ export VCS_TARGET_ARCH="amd64"
  • Set alias for vcs command. Below example is for Bash shell:
    $ alias vcs="vcs -full64"
    • Unfortunately, VCS_TARGET_ARCH was not fully effective
    • This was not implemented in VCS Dockerfile for now

Cadence

  • Requires following packages
$ sudo apt install openjdk-6-jre  # for installer
$ sudo dpkg --add-architecture i386
$ sudo apt libxtst6:i386 libxext6:i386 libxi6:i386 ksh csh \
  • Define below environment variable to execute 64-bit binary
    $ export CDS_AUTO_64BIT=ALL

  • (Virtuoso) Define below environment variable regarding inside <path/to/virtuoso>/share/oa/lib/
    $ export OA_UNSUPPORTED_PLAT "linux_rhel50_gcc48x"

Mentor

  • Have to mimic OS vendor and version as Redhat 7.0
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].