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

Pullup / Pulldown on arrays causes internal crash #1274

Closed
veripoolbot opened this issue Feb 8, 2018 · 2 comments
Closed

Pullup / Pulldown on arrays causes internal crash #1274

veripoolbot opened this issue Feb 8, 2018 · 2 comments
Assignees
Labels
resolution: fixed Closed; fixed

Comments

@veripoolbot
Copy link
Contributor


Author Name: Rob Stoddard
Original Redmine Issue: 1274 from https://www.veripool.org

Original Assignee: Wilson Snyder (@wsnyder)


I found this at first with a generate statement, so I thought it had to do with generate statements. But after creating the example (below) I discovered it had to do with arrays. Anyway, Verilator crashed with the following output:

%Error: Verilator internal fault, sorry. Consider trying --debug --gdbbt

I am running Verilator 3.907 devel rev verilator_3_906-11-g7b642bcbb

I have attached a log file from running the example (below) while debugging in the gibbet.


//`define USE_GEN

module IOBUF ( input T, input I, output O, inout IO );
         assign O = IO;
         assign IO = T ? 1'bz : I;
endmodule

module top (
         input [3:0] inlines,
         output [3:0] outlines,
         inout [3:0] iolines,

         input inctrl
);

`ifdef USE_GEN

genvar i;
generate for(i = 0; i < 8; i = i+1) begin: Gen_D

         IOBUF d ( .T(inctrl), .I(inlines[i]), .O(outlines[i]), .IO(iolines[i]) );
         pullup d_pup (iolines[i]);

         end
endgenerate

`else
         IOBUF d_0 ( .T(inctrl), .I(inlines[0]), .O(outlines[0]), .IO(iolines[0]) );
         pullup d_0_pup (iolines[0]);

         IOBUF d_1 ( .T(inctrl), .I(inlines[1]), .O(outlines[1]), .IO(iolines[1]) );
         pullup d_1_pup (iolines[1]);

         IOBUF d_2 ( .T(inctrl), .I(inlines[2]), .O(outlines[2]), .IO(iolines[2]) );
         pullup d_2_pup (iolines[2]);

         IOBUF d_3 ( .T(inctrl), .I(inlines[3]), .O(outlines[3]), .IO(iolines[3]) );
         pullup d_3_pup (iolines[3]);
`endif

endmodule


</code>
@veripoolbot
Copy link
Contributor Author


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2018-02-11T00:11:44Z


Two problems, first it should have printed an unsupported error. Then I presume you want it supported.

Both fixed in git towards 3.922.

@veripoolbot
Copy link
Contributor Author


Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2018-03-17T16:03:42Z


In 3.922.

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

No branches or pull requests

2 participants