Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VHDL Generation #177

Open
wants to merge 79 commits into
base: master
Choose a base branch
from
Open

Conversation

matthijsr
Copy link

@matthijsr matthijsr commented Aug 31, 2021

VHDL Generation.

  • Fixes invalid VHDL generated for packages (use correct record type syntax, add usings)
  • Fixes mismatch between canonical and "fancy" components. (Now uses arrays for multiple element lanes. Would previously only represent the data of a single element for the "fancy" declaration.)
  • Introduces rudimentary architecture generation
  • Introduces utilities to map between complex VHDL objects and between flat (bit vector) and complex objects
  • Introduces wrapper generation for "fancy" declarations of streamlets. (Architecture declaration of canonical component as entity, mapped to fancy component.)

To do/improve:

  • Expand VHDL generation (support functions, procedures, processes and associated logic)
  • Resolve edge cases for mapping between fancy and canonical declarations. (Mainly unions.)
  • Correctly validate the mode/state of objects. (Avoid using an output to drive an output, for example.)

Required changes (beyond code quality/functionality):

  • Squash Akos's commits
  • Squash my own commits?
  • Remove Dot graph and Chisel generation, Pest grammar. (Should be a separate PR, if desired.)
  • Change generation tests back to output to a tmpdir, rather than an actual folder. (Used for VHDL verification.)
  • Undo dependabot.yml change
  • Remove any other cruft that may have been (re)introduced (e.g., src/design/implementation/composer/misc.rs)
  • Reorganize where all of this goes? (stdlib might not be a suitable location/name)

ahadnagy and others added 30 commits September 23, 2021 15:52
Before cargo fix

Sleepy :(

Dot toy example

Cargo fix

Save

Save2

Working test from parser to dot

Map example

Dot color scheme

Composition checkpoint + new frontend WIP

WIP parser composition checkpoint

Grammar features

Grammar features

Group split

More miracle

Map half done

Map to show

Map demo

Example

Chisel backend initial commit

Added support for Decoupled

Before anything happens :(

Carfo fix

Chisel backend fixes

Checkpoint before the doom

Checkpoint before streamlet implementation restructuring

Big milestone before zzzzz

Checkpoint

Reduce working

Happy hour

Beautify

Test restructuring

Debug cleanup

Example with all parallel patterns

Test fix

Refactoring

Spark example

Before grammar modification

Thesis version
…t fixes). This will serve as my main branch for the time being.
…ail, otherwise.) When Port/Componentifying things, also order by inputs first, then outputs.
…le assignment between otherwise identical record types with different names.
…d to figure out how to consistently determine the relation between fancy and canonical ports.
@matthijsr
Copy link
Author

I've removed anything I know for sure I don't need or use.
There's a few additions and changes from Akos's branch (mainly in the design module, such as GenericComponent and the changes to Project and Library) which I don't strictly need, but I have been using throughout my code. So that would take a fair bit more refactoring.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants