Closed AndruePeters closed 4 years ago
Hi, Thanks for using Limbo.
The current verilog parser only support gate-level netlist syntax. I don't think it is easy to handle behavioral verilog.
For example, the gate-level syntax includes, AND inst (.a(net1), .b(net2)); AND inst (net1, net2); or simple assignment assign A = B; assign A = B[1:10];
Come back to the problem you raise. I expect both cases should fail, as such logic computation in the assignment expression is not supported.
Gotcha. I didn't realize that about the assignments for this parser.
The issue I was trying to demonstrate is still on the structural side. This is the problem with the module definitions when input or output is specified in the port list.
module AOI (input A, B, C, D, output F);
assign F = A;
endmodule
This fails because of the port list. It's still structural. I've seen (and have) a lot of test articles that use this syntax, and you definitely have one of the better open source parsers I've seen so far. I could probably write a script to change the port lists in the definition for myself, though.
I have added support for syntax with input/output declared with the module parameters.
See commit 41b9453
Awesome. Thank you. I was starting to write one in X3, but this saves a lot of prototyping time.
OriginalInput
Output from test_bison.cpp
Then it succeeds (kind of). Not sure why it's reporting this error: