FOSSEE Summer Fellowship 2023

Please keep visiting this page for updates
Last updated on: 23 March 2023

The FOSSEE Summer Fellowship 2023 will tentatively be offered physically (on-site). The FOSSEE team will contact the selected candidates through emails.


INSTRUCTIONS

  • This fellowship task has been divided into 4 Screening Tasks, out of which the participants need to submit at least one task.
  • For any queries, email to contact-esim@fossee.in with the subject line as "FSF 2023 eSim - Query".

RESOURCES

  • To download and install eSim, click here.
  • Click here for resources under eSim.

The eSim team plans to involve the community in the development of eSim. Any new innovative ideas by enthusiastic candidates are welcome. To submit this task, you need to follow these steps:

  1. Submit a well-documented proposal.
  2. The number of pages should be around 5-10 pages excluding the title page.
  3. The proposal may be documented in LaTEX or any other software and submitted in .pdf format.
  4. The proposal should contain the following blocks:
    1. Abstract
    2. Introduction
    3. Proposed Design/Methodology
    4. Benefits of implementing it
    5. Conclusion
  5. There is no specific format prescribed for the proposal. However, it should depict the idea clearly and look professional.
  • For example, suppose you want to submit a proposal on: Integrating eSim with Arduino IDE.
  • So, in such case, you need to clearly explain in the report how integrating eSim with Arduino IDE be useful, like simulating Arduino controllers through eSim
  • How the integration would be made possible, for example, running a .dll process from eSim OR read/rewrite through a file OR something else.
  • Who will be benefited from such kinds of interfaces like embedded system developers, etc.
  • And a conclusion summarising all the above is required.

NOTE: The candidate may or may not be made to work on the same proposal as submitted by him/her if he/she is selected for the fellowship.

Technical Requirements:

Knowledge of programming AND/OR analog and digital electronics. Familiarity with eSim and its features.

Any other skill is welcome.

Procedure to Submit:

  • Send a mail to contact-esim@fossee.in with the subject line FSF 2023 Submission Task 1 with the proposal details.

Evaluation Criteria:

Selection would be made based on the Proposal Report and how the proposal will benefit the eSim community. The final decision relies on the eSim team.

  1. Propose circuit simulations you wish to implement 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. To propose the circuits click here.

Technical Requirements:

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

Procedure to Submit:

  • Click here to submit.
  • Inform us by sending a mail to contact-esim@fossee.in with the subject line FSF 2023 Submission Task 2 with the proposal details.

Evaluation Criteria:

The following criteria will be considered while evaluating the circuit simulation:

  • complexity of the circuit
  • accuracy of simulation results obtained
  • number of the circuits successfully completed
  1. Propose circuit simulations you wish to implement using the NGHDL and/or NgVeri feature of eSim. This feature is available for 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 provided on the GitHub link provided here or under 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. Simulate the approved circuits using NGHDL and/or NgVeri features of eSim.
  5. 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.
  • Inform us by sending a mail to contact-esim@fossee.in with the subject line FSF 2023 Submission Task 3 with the proposal details.

Evaluation Criteria:

The following criteria will be considered while evaluating the circuit simulation:

  • complexity of the circuit
  • accuracy of simulation results obtained
  • number of the circuits  successfully completed

There are two parts to this screening task: Part A is porting eSim GUI, while Part B involves porting eSim itself to the latest OS. It is mandatory to attempt both the parts as described below for this screening task to be considered as complete.

  • The objective here is to port the GUI of the eSim codebase from the current PyQt version 5 to PyQt version 6.
  • In order to set up the development environment on your machine, please follow the below instructions:
    • Download eSim-2.3, and install it for Ubuntu OS. Note that it can be installed only on Ubuntu 18 and 20 and their corresponding flavors. Once installed successfully, the eSim source code becomes available at the installed location. For example, suppose you have installed eSim in your “Downloads” directory. So, all the source code is available at “Downloads/eSim-2.3/src. You can now directly make the changes to the source code and then run eSim using the conventional ways (through the Terminal or Desktop icon).

    • Before proceeding with Windows OS, please note that we highly recommend you work with the Ubuntu OS. It can also help you with Part B. If you still insist on Windows OS, then here are the instructions.

      Download eSim-2.3, and install it for Windows OS. Suppose you have installed it in “Downloads” directory. Now, Download eSim source code from eSim GitHub repository. Suppose you have downloaded it in your “Desktop” directory. Let’s call it as “eSim-master”. All the source code files will be  available at “Desktop\\eSim-master\\src\\”. Now, move this source code directory to  “Downloads\\eSim” directory and copy “library” directory from “Downloads\\eSim\\library” to “Downloads\\eSim\\src\\frontend”. Follow the environment setup explained here under “eSim Executable” section till point number 7. You can now directly make the changes to the source code available at “Downloads\\eSim\\src\\” and then run eSim by:

      • opening the Git shell and navigating to the eSim’s source code directory. For example, in the above case, changing your shell’s working directory to “Downloads\\eSim\\src\\frontend”.
      • adding alias to python.exe
      • activating the virtual environment already created in the above-explained environment setup
      • running the command “python Application.py”

  • Hint: You may refer to the official documentation given here for this part.

  • Document all the changes you made while porting GUI from PyQt v5 to PyQt v6
  • Before You Submit:

    You should self-verify the task before submitting your final work to us. The results of running eSim before and after your modified work should be the same. Following are the hints on how may compare the results:

    1. Watch Spoken Tutorial on eSim, in order to understand how to use eSim.
    2. eSim application should launch without any discrepancies after changes, as demonstrated in the Spoken Tutorial. 
    3. All the GUI features on the eSim application window should not produce any additional errors and adhere to the naming conventions.
    4. All the versions of submodules in eSim, like KiCad, Ngspice, GHDL, Verilator, etc., should not be changed. Also, these submodules should launch wherever required (KiCad when editing schematics, Ngspice when simulations are to be carried out, and so on). You can skip the NGHDL module entirely for this part of the screening task.
    5. Ngspice plots and Python plots should appear when simulations are performed [as illustrated in Spoken Tutorial]. Choose any example of your preference for testing your code.

 
  • The objective here is to port the entire eSim application to make it run on either Ubuntu 22 LTS or the macOS 12/13. We recommend targeting only one of these platforms. But you are most welcome to make eSim run on both of them.
  • You have to create an installer script for your target platform by installing or building all the submodules (listed in Part A) from their respective source codes.
  • Here, you can upgrade or change versions of the submodules based on whatever is supported on your target platform. However, unlike Part A, you also need to work with the NGHDL submodule.
  • To summarize in short, you need to make the following two installer scripts work on your target platform(s):
  • The relevant files and directories for eSim are available here, and for NGHDL it is available here.
  • Note that we are neither expecting the exact translation of these scripts nor require you to preserve directory paths or any other minor constraints as it is. 
  • Your final submission should have the installer scripts for your chosen target OS corresponding to the above two mentioned scripts, along with all the related files, documentation, and instructions on how to run your scripts.
  • Note that the eSim application should launch without any discrepancies, and the submodules should launch wherever required. Also, Ngspice plots and Python plots should appear when simulations are performed [as illustrated in Spoken Tutorial]. Choose any example of your preference for testing your code.

Technical Requirements :

  • C, Python, Bash, Basics of Digital Logic Design, OOPs concepts
  • Familiarity with Linux, Windows OS, and optionally macOS

Procedure to Submit:

  • Create a GitHub repository or use your existing one. Make the repository a private one.
  • Create two branches for each part as “Part-A” and “Part-B”.
  • Upload your code files and documentation to this repository in appropriate branches.
  • Mention the resources that you have followed/adopted to complete both parts.
  • If there are any errors while completing Part A and Part B, then those errors and your efforts to address them need to be highlighted at a prominent place on the respective branches.
  • Submit the GitHub link to your repository by the deadline to contact-esim@fossee.in with the subject line FSF 2023 Submission Task 4.
Evaluation Criteria:
  1. For Part A, the functionality of your code compared to the existing one will be checked. Your code may also be tested on both Windows and Ubuntu OS.
  2. For Part B, the functionality of your installation scripts, the extent of installation, and errors will be evaluated.
  3. Quality of documentation.
  4. Adherence to coding standards (For example - Code must be Pythonic and follow PEP8 standards).
  5. The User Experience.

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.