Actions
Bug #8861
closedVerilogIeeeTestCase.runTest_12_04_03_1: java.lang.IllegalStateException: BigInteger data is not convertible to Boolean.
Start date:
05/07/2018
Due date:
% Done:
0%
Estimated time:
Detected in build:
master
Platform:
Published in build:
Description
The stack trace:
java.lang.IllegalStateException: BigInteger data is not convertible to Boolean. at ru.ispras.fortress.data.Data.checkConvertibleTo(Data.java:516) at ru.ispras.fortress.data.Data.getBoolean(Data.java:429) at ru.ispras.verilog.parser.elaborator.VerilogElaborator.generate(VerilogElaborator.java:394) at ru.ispras.verilog.parser.elaborator.VerilogElaborator.start(VerilogElaborator.java:192) at ru.ispras.verilog.parser.VerilogSyntaxBackends.start(VerilogSyntaxBackends.java:56) at ru.ispras.verilog.parser.VerilogTranslator.start(VerilogTranslator.java:163) at ru.ispras.verilog.parser.sample.VerilogPrinter.main(VerilogPrinter.java:45) at ru.ispras.verilog.parser.VerilogIeeeTestCase.runTest(VerilogIeeeTestCase.java:1813) at ru.ispras.verilog.parser.VerilogIeeeTestCase.runTest(VerilogIeeeTestCase.java:1799) at ru.ispras.verilog.parser.VerilogIeeeTestCase.runTest_12_04_03_1(VerilogIeeeTestCase.java:1094)
The target Verilog module:
// IEEE Std 1364-2005
// 12. Hierarchical structures
// 12.4 Generate constructs
// 12.4.3 External names for unnamed generate blocks
// Each generate construct in a given scope is assigned a number. The number will be 1 for
// the construct that appears textually first in that scope and will increase by 1 for each
// subsequent generate construct in that scope. All unnamed generate blocks will be given
// the name “genblk<n>” where <n> is the number assigned to its enclosing generate
// construct. If such a name would conflict with an explicitly declared name, then
// leading zeroes are added in front of the number until the name does not conflict.
module top;
parameter genblk2 = 0;
genvar i;
// The following generate block is implicitly named genblk1
if (genblk2) reg a; // top.genblk1.a
else reg b; // top.genblk1.b
// The following generate block is implicitly named genblk02
// as genblk2 is already a declared identifier
if (genblk2) reg a; // top.genblk02.a
else reg b; // top.genblk02.b
// The following generate block would have been named genblk3
// but is explicitly named g1
for (i = 0; i < 1; i = i + 1) begin : g1
// block name
// The following generate block is implicitly named genblk1
// as the first nested scope inside of g1
if (1) reg a; // top.g1[0].genblk1.a
end
// The following generate block is implicitly named genblk4 since
// it belongs to the fourth generate construct in scope "top".
// The previous generate block would have been
// named genblk3 if it had not been explicitly named g1
for (i = 0; i < 1; i = i + 1)
// The following generate block is implicitly named genblk1
// as the first nested generate block in genblk4
if (1) reg a; // top.genblk4[0].genblk1.a
// The following generate block is implicitly named genblk5
if (1) reg a; // top.genblk5.a
endmodule
Actions