idea-fasoc/OpenFASOC

[GSoC] Common Python API

Opened this issue · 2 comments

As a part of my GSoC project, a common Python API will be developed to simplify the Python code in the OpenFASOC generators, starting with the Verilog generation step. This issue will be used to discuss and track the progress of this project.

The Proposal

Full proposal on Github Gist.

OpenFASOC generators have Python code that runs each step in the generation process. Each generator has its separate Python code with values specific to the generator hardcoded. This proposal aims to create a common Python API (module) that exports functions for each step. Using this new API, the Python scripts in the existing generators will be simplified, and the process of creating a new generator will become easier.

This proposal also aims to use Mako, a Python templating library that uses a Python-like syntax to simplify and standardize the Verilog templates in the generators. First, a common function will be implemented for the Verilog generation step and tested on the temp-sense-gen generator.

Progress

  • Implement API functions for Verilog generation using Mako. (#212)
  • Convert the temp-sense-gen generator to use the new API. (#212)
  • Documentation for the new API functions. (#212)
  • Implement regression tests in the CI. (#212)
  • Use the common module in other generators
  • Implement a common module for simulations (with documentation and regression tests)
    • Add a simulation module and use it in the Temperature Sensor generator. (#226)
    • Add documentation for the module. (#226)
    • Add regression tests for the module. (#226)
    • Use the module for simulation of the DC-DC generator. (#230)
    • Use the module for simulation of the LDO generator. (#229)
  • Flow runner module? (Suggestion)

This effort may help in #38.

Can this be closed? @harshkhandeparkar

Can this be closed? @harshkhandeparkar

The DC-DC PR is still open although the API itself is complete. I was waiting for the DC-DC pr before closing this.