FOSSEE Summer Fellowship 2022

Please keep visiting this page for updates
Last updated on: 1st April 2022

Due to the outbreak of COVID-19 and travel restrictions placed by IIT Bombay, the FOSSEE Summer Fellowship 2022 will be offered remotely. The FOSSEE team will contact the selected candidates through emails soon.


INSTRUCTIONS

  • This fellowship task has been divided into 5 Screening Tasks. At any given time participants are allowed to work on two screening tasks. But we recommend you to focus on one screening task and complete it successfully.
  • For any queries, email to contact-esim@fossee.in with the subject line as "FSF 2022 eSim - Query"

RESOURCES

  • To download and install eSim, click here.
  • Click here for resources under eSim.
  1. Propose circuits you wish to simulate in eSim using Sky130 PDK under Circuit Simulation Project.
  2. Please make sure that the proposed circuits are not under the Circuit Design and Simulation Marathon using eSim, and the Examples provided with eSim.
  3. Your proposal will be reviewed and approved/disapproved (within one working day). Only after receiving the approval of your proposal through email, can you proceed to attempt the task.
  4. Please mention "Sky130" in the title of proposal.
  5. To propose the circuits click here.

Note:Please do not submit the PDK libraries

Technical Requirements:
Knowledge of analog and digital electronics. Familiarity with eSim and its features.

Procedure to Submit:
Click here to submit.

Evaluation Criteria:

Following criteria will be considered while evaluating the circuit simulation:

  • The complexity of the circuit
  • Accuracy of simulation results obtained
  • No. of the circuits successfully completed
  1. Propose circuits you wish to simulate using the NGHDL and/or NgVeri feature of eSim. The features are available in the latest version of eSim, i.e., eSim-2.2. Refer eSim manual for the documentation.
  2. Please make sure that the proposed circuits are not under the "Examples" directory provided on the GitHub link provided here  and  Mixed Signal Circuit Design and Simulation Marathon.
  3. Your proposal will be reviewed and approved/disapproved (within one working day). Only after receiving the approval of your proposal through email, can you proceed to attempt the task.
  4. Please mention "Mixed Signal" in the title of proposal.
  5. Simulate the approved circuits using NGHDL and/or NgVeri feature of eSim.
  6. To propose the circuits click here.

Technical Requirements:

  1. Knowledge of analog and digital electronics, Verilog and VHDL.
  2. Familiarity with any of the following tools will be an advantage for you: Xilinx, TINA, PSpice.

Procedure to Submit :
Click here to submit.

Evaluation Criteria:

Following criteria will be considered while evaluating the circuit simulation:

  • The complexity of the circuit
  • Accuracy of simulation results obtained
  • No. of the circuits successfully completed

The task involves to write a parser in Python3 with the following specifications:

  1. It takes the netlist, generated after “KiCad to Ngspice” conversion in eSim, as the input.

  2. It generates an updated netlist which is compatible with Sky130 PDK, i.e., it uses the models/libraries from the Sky130 PDK.

  3. The parser should be tested on any 3 circuits under eSim.

  4. Document step-by-step instructions to compile and execute your parser.

Note: Check the “RESOURCES” section for the usage of Sky130 PDK and the sample converted netlist.

Technical Requirements:

  1. Python, PyQt5 (preferred), OOPs concepts

  2. Knowledge of Sky130 PDK

  3. Basics of Circuit Design

Procedure to Submit:

  1. Create a GitHub repository or use your existing one.

  2. Upload your code files on this repository. Also, upload the test circuits clearly indicating which is the input and the output netlist given to your parser.

  3. Submit the link to your repository before the deadline to contact-esim@fossee.in with the subject line “FSF 2022 Task 3 Submission”.

Evaluation Criteria:

Following criteria will be considered while evaluating this implementation:

  • Complexity and Quality of Code.

  • Quality and Extent of Test Cases.

  • Documentation.

The task involves to generate a single packaged executable/installer that can be independently distributed for any Linux based platform (OS) with the following specifications:

  1. Download Verilator and install it. The instructions are available here.

  2. Create a very basic GUI in Python3 using PyQt5 framework.

  3. The GUI should take a Verilog file as the input. 

  4. It then should use the Verilator to generate an executable. 

    Note: You can try very simple examples given here.

  1. The entire setup (Verilator and the GUI) should be packaged such that it should run on any Linux based OS. Note that you might have to consider packaging the shell scripting commands as well to build/install Verilator on other machines.

  2. Write a detailed explanation on why you chose the particular approach / tool.

    Hint: You can explore Flatpak, AppImage, Snapcraft or any other open-source similar tool that can support your approach.

  3. Document the instructions to package and execute your executable/installer.

Technical Requirements:

  1. C and Python

  2. Shell Scripting (preferred)

  3. Experience on working with Linux based OS

Procedure to Submit:

  1. Create a GitHub repository or use your existing one. 

  2. Upload your relevant files on this repository. Do not forget to add your explanation in pdf format. Otherwise, your submission may be discarded.

  1. Submit the link to your repository before the deadline to contact-esim@fossee.in with the subject line “FSF 2022 Task 4 Submission”.

Evaluation Criteria:

Following criteria will be considered while evaluating this implementation:

  • Working of the GUI and the complexity of the packaging approach.

    Note: We will ignore this criteria if the approach is good and well documented.

  • Your reasoning on the approach taken.

    Note: If you can concretely support your explanation along with your code, then we will consider it even though your submission failed (successfully) in this screening task.

  • Documentation.

 

The task involves to build a desktop application using PyQt5 framework with the following specifications:

  1. Download and install Ngspice. Alternatively, you can use Ngspice that comes along with eSim.

  2. Create a GUI in Python3 using PyQt5 framework.

  3. The GUI should take a netlist as an input and should be Ngspice compatible. You can use eSim examples to generate one (*.cir.out file).

  4. It then should simulate the netlist using Ngspice. However, unlike in eSim, neither the Ngspice window nor its plots should appear.

  5. Instead, the plots (using any Python library) should appear only after the simulation is complete and successful.

  6. During the simulation, the GUI should display the status of the simulation and also show the output messages from Ngspice.

  7. Document step-by-step instructions to compile and/or execute your code.

Technical Requirements:

  1. Python, PyQt5 framework and OOPs concepts 

  2. Familiarity with Linux and Windows OS

  3. Basics of circuit design and simulation in eSim

Procedure to Submit:

  1. Create a GitHub repository or use your existing one.

  2. Upload your code files on this repository.

  3. Submit the link to your repository before the deadline to contact-esim@fossee.in with the subject line “FSF 2022 Task 5 Submission”.

Evaluation Criteria:

Following criteria will be considered while evaluating this implementation:

  • Working of the GUI and extent of test cases.

  • Complexity and quality of code.

  • Documentation.