Description
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. ([GSoC] Common Verilog Generation API and Implementation in
temp-sense-gen
#212) - Convert the
temp-sense-gen
generator to use the new API. ([GSoC] Common Verilog Generation API and Implementation intemp-sense-gen
#212) - Documentation for the new API functions. ([GSoC] Common Verilog Generation API and Implementation in
temp-sense-gen
#212) - Implement regression tests in the CI. ([GSoC] Common Verilog Generation API and Implementation in
temp-sense-gen
#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. ([GSoC] Common Python Simulation module #226)
- Add documentation for the module. ([GSoC] Common Python Simulation module #226)
- Add regression tests for the module. ([GSoC] Common Python Simulation module #226)
- Use the module for simulation of the DC-DC generator. ([GSoC] Updated DC-DC Verilog Generation and Simulations #230)
- Use the module for simulation of the LDO generator. ([GSoC] Updated LDO Simulations #229)
- Flow runner module? (Suggestion)
This effort may help in #38.