Rarely we encounter a simulation run that fails (typically in the ArbiterSuite) with:
[info] java.lang.IndexOutOfBoundsException:
[info] at java.nio.Buffer.checkIndex(Buffer.java:532)
[info] at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:300)
[info] at Chisel.Tester$Channel.release(Tester.scala:148)
[info] at Chisel.Tester.start(Tester.scala:717)
[info] at Chisel.Tester.<init>(Tester.scala:743)
[info] at ArbiterSuite$ArbiterTests$8.<init>(ArbiterTest.scala:396)
[info] at ArbiterSuite$$anonfun$testStableRRArbiter$1.apply(ArbiterTest.scala:440)
[info] at ArbiterSuite$$anonfun$testStableRRArbiter$1.apply(ArbiterTest.scala:440)
[info] at Chisel.Driver$.apply(Driver.scala:65)
[info] at Chisel.chiselMain$.apply(hcl.scala:63)
[info] ...
This looks like a reality failure - how can writing a single 0 byte to the beginning of the memory-mapped buffer fail? We should ensure the buffer size is non-zero when we map the channel.
Rarely we encounter a simulation run that fails (typically in the ArbiterSuite) with:
This looks like a reality failure - how can writing a single 0 byte to the beginning of the memory-mapped buffer fail? We should ensure the buffer size is non-zero when we map the channel.