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

Add Vivado XSim as a simulator #2363

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Add Vivado XSim as a simulator #2363

wants to merge 3 commits into from

Conversation

andrewb1999
Copy link
Collaborator

Adds vivado xsim as a choice of simulator to fud2 because I want to use some encrypted IPs that can't be simulated by Verilator. XSim is slower than verilator by a lot so little reason for others to use it unless they want to use Xilinx floating point IP. It also behaves differently on some verilog constructs, so I had to make some fixes there (these fixes should also help calyx generated verilog work better on all time based (as opposed to cycle based like verilator) simulators).

Not really sure how to update the fud2 test cases but I won't do that until people agree with the other changes anyways.

@@ -329,7 +329,7 @@ fn emit_component<F: io::Write>(
if let Some(check) =
emit_guard_disjoint_check(dst, asgns, &pool, true)
{
writeln!(f, "always_comb begin")?;
writeln!(f, "always_ff @(posedge clk) begin")?;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain this change? On the face of it, it is turning combinational logic into sequential logic and I'm not sure why I would expect this to be correct?

[-help|-h]

Description: xxxxxxxxxxxxxxxxxxx.
xxxxxxxxxxxxxxxxxxx.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably provide a helpful description for this script here.

@@ -20,7 +20,7 @@ fn xilinx_setup(e) {
);
e.arg("pool", "console"); // Lets Ninja stream the tool output "live."

// Compile an `.xo` file to an `.xclbin` file, which is where the actual EDA work occurs.
// Compile an `.xo` ile to an `.xclbin` file, which is where the actual EDA work occurs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug

@rachitnigam
Copy link
Contributor

Thanks for getting us started on this! Having support for XSim is definitely a big win and we should get this merged. Couple of questions for the code but broadly, could you explain why the changes are needed?

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