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

Handling Intel architecture definitions #202

Open
agg23 opened this issue Apr 3, 2023 · 1 comment
Open

Handling Intel architecture definitions #202

agg23 opened this issue Apr 3, 2023 · 1 comment

Comments

@agg23
Copy link
Contributor

agg23 commented Apr 3, 2023

As far as I am aware, the only way to get a netlist out of modern Quartus is using the EDA Netlist Writer feature, which outputs a Verilog post-synthesis netlist, designed for simulation with timing. The IP components provided (say with ModelSim/Questa) are not optimized like a netlist is, and as such, it is not customized to the particular design you are implementing.

In particular, the simulator definitions use parameters and dynamically sized ports for various base IPs (say RAMs), which SpyDrNet doesn't support because that's not a typical netlist construct. However, unless we find another way to get netlists out of Quartus, or preprocess more of the corresponding Verilog, we'll never get the correct sizes for those ports.

// Example port
input [port_a_data_width - 1:0] portadatain;

That begs the question of how this should be handled. For my current usecase, it doesn't matter, because I don't care about the net size (though it may cause problems if wires are concatenated, I'm not sure), and I can just comment out the numeric check for the port size specification. This obviously doesn't work elsewhere though.

Since we can’t distribute the Intel file anyway due to licensing, I wonder if building a minimal module list with properly sized input/outputs (like your existing architecture IPs), and just using some large default port size (say 128) for each parameterized net size would work

@jacobdbrown4 jacobdbrown4 added this to To Do Sometime in Fall 2023 Release Apr 5, 2023
@jacobdbrown4
Copy link
Collaborator

@agg23 Can you create a small, barebones module to illustrate this problem to help me understand better?

If I understand correctly, the alternate solution you proposed would be to make the port size large (like 128) when a parameterized port size like this is encountered. Am I correct?

@jacobdbrown4 jacobdbrown4 moved this from For a Later Release to In Progress in Fall 2023 Release Oct 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

2 participants