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

Merge Verilog and VHDL project templates #155

Open
mole99 opened this issue Feb 17, 2024 · 4 comments
Open

Merge Verilog and VHDL project templates #155

mole99 opened this issue Feb 17, 2024 · 4 comments

Comments

@mole99
Copy link
Contributor

mole99 commented Feb 17, 2024

To ease maintainability, it would make sense to merge FABulous_project_template_verilog and FABulous_project_template_vhdl into a single FABulous_project_template.

Many files in both directories are duplicated and some files/filenames already diverge.

My idea is that after merging #154, the logic for reading the tile configuration can be changed a bit:

Instead of specifying file extensions for HDL sources in BEL entries inside tile configs, omit them:

BEL,./InPass4_frame_config_mux,RAM2FAB_D0_

Depending on whether a Verilog/VHDL writer is used, append the correct file ending (.v, .vhdl). Since both Verilog and VHDL files are in the tile directory, the correct one can be picked up.

What do you think? Am I missing something?

@KelvinChung2000
Copy link
Collaborator

The main problem would be that the single template would contain both the VHDL and Verilog files, which might confuse the users. We can solve this by copying only the VHDL or Verilog files according to which writer is used.

Another potential problem is that the VHDL side Test folder is slightly different. But we can resolve it by selectively copying the file.

Ultimately, we need to find a better way to maintain and handle both Verilog and VHDL backend to avoid problems like #153

@mole99
Copy link
Contributor Author

mole99 commented Feb 19, 2024

Speaking as a user, I wouldn't find this so confusing as I know which backend I am using (Verilog/VHDL) and I could easily switch between the two. But yeah, selectively copying the files would be an option to avoid that.

What way would you think of to improve maintainability?

I think it would be worthwhile to setup the CI with a test suite for both Verilog and VHDL, covering various fabrics and features such as supertiles. Every time a new feature PR is opened, the CI runs all the tests to make sure no regressions have occurred. Simple regressions like in #153 should then not be possible.

But I guess that's for another issue ;)

@KelvinChung2000
Copy link
Collaborator

Yes, this should improve maintainability, less duplication is always better.

@mole99
Copy link
Contributor Author

mole99 commented Feb 19, 2024

I'll open an issue regarding the CI then, if that's okay.

I'll also open some other issues that improve maintainablity of FABulous or make it easier for new users to get started.

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

No branches or pull requests

2 participants