idea-fasoc / OpenFASOC

Fully Open Source FASOC generators built on top of open-source EDA tools
https://openfasoc.readthedocs.io
Apache License 2.0
216 stars 90 forks source link

Glayout NLP #298

Closed alibillalhammoud closed 1 month ago

alibillalhammoud commented 3 months ago

This PR introduces NLP to Glayout. Currently the features and syntax are limited, this PR defines the framework needed for NLP.

After some research into this subject, I came up with the following:

I also built out a basic user interface

To build on this, the most important step is improving the underlying Relational database.

@chetanyagoyal Below is my suggestion for a feature development plan:

  1. debug the existing features by building out the test_case folder with many conversations. Most errors will manifest when you input "dump code". There should be a descriptive error message printed for easier debugging.
  2. improve the relational database. This is straight forward and has the largest direct impact on how well the system works. Especially work on improving routing, maybe create some sort of predictor which can autocomplete port names. Consider how to use the PortTree class, and the currently enforced strict syntax with Port naming to help achieve this.
  3. Develop dynamic conversation loading (e.g. extend the ImportCell action to support loading .convo dynamically). We want users to load and place existing ".convo" layout descriptions at runtime.
  4. encourage opensource ".convo" contributions, save under glayout/components. Build a library of circuits.
  5. After building the relational database very thoroughly, carefully consider adding new syntax support
  6. Once these features are built out very well, consider implementing an additional layer of abstraction, which is an LLM that can read general user input and parse through the existing layout library to fulfill complicated user requests.
alibillalhammoud commented 3 months ago

added a new branch to my fork

msaligane commented 2 months ago

@alibillalhammoud Are you planning to address these comments?