Skip to content

Session 1: Introduction & Development Pipeline

Link to class

Playground

Identity provider

Student identity is based on FabLabs.io, acting as an identity provider for all other tools.

Source code and documentation repository

GitLab is used as a code repository and a continuous deployment tool.

  • Documentation: a template has been provisionned for us. What we have to do it to edit the “main” and “about” pages and to create one page per assignement.
  • Editor: an online editor is suggested but it does not work that well. Another option is to use VS code. I prefer to use GitLab file editor, simpler and faster.
  • Images: images are stored is a subfolder
  • Files: I guess it will be the place where we can sync the work we do in the IIC-OSIC-TOOLS environment, within /foss/designs. More on this later..

Showcase

GitLab runs a pipeline that transforms the markdown documentation into a web site

This is what remains when the show is over and all lights are turned off.

IIC-OSIC-TOOLS

IIC-OSIC-TOOLS (Integrated Infrastructure for Collaborative Open Source IC Tools) is an all-in-one Docker/Podman container for open-source-based integrated circuit designs for analog and digital circuit flows. More on this here

We have been told to use the instance hosted on Fab Futures servers but we could run it locally later. The instance is provisionned when we register for this course.

TightVNC client is used to connect to that instance, accessing a remote desktop.

IMPORTANT: by default, an instance of a Docker image does not keep any information permanently. We have been told to store our designs in the /foss/designs folder.

Homework

Install the course toolchain (Docker container)

Run a “hello world” synthesis

/foss/examples > make sim-all

/foss/examples > gtkwave fortune_teller_tb.vcd 

Verify your tools work before Thursday!

Something is bugging me … The IIC-OSIC-TOOLS cloud-hosted image is great but is very volatile. It could restart for good reasons and I would loose my work. I know /foss/design is persisted but it is still fragile and I will loose it anyway once the course is over.

My “suggested workaround” is the following: connect the persisted share to the GitLab. Easier to say than to do, since I don’t have any control on the cloud infrastrcture :-)

Here is how I managed to make it “work”

Step 1: generate a security key (This is not great to store the key on a share, but it is ok on a developement environment)

Step 2: grab the public part of the key

Step 3: add that public key to my FabCloud GitLab account

Step 4: test Container-to-FabCloud GitLab

Step 5: create a folder to store my work

Step 6: clone the repository

Step 7: adjust the local settings and test the workflow