• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

arnavsacheti / PeakRDL-BusDecoder / 28897292023 / 1
92%
main: 92%

Build:
DEFAULT BRANCH: main
Ran 07 Jul 2026 08:45PM UTC
Files 36
Run time 1s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Jul 2026 08:42PM UTC coverage: 92.4% (+0.08%) from 92.322%
28897292023.1

push

github

web-flow
fix: correct decode boundaries below rolled array ancestors (#56, #57) (#71)

A decode boundary that sits below one or more rolled array ancestors was
generating broken SystemVerilog. Both reported issues are symptoms of the
same hole -- generators tracked only a node's own array dimensions and
numbered loop variables inconsistently across stages.

Loop-variable numbering (#56): make BusDecoderListener the single source of
truth. The open-dim stride stack now holds one entry per open loop dimension
in a contiguous outermost-first order (design_scanner stores strides
outermost-first; the listener extends rather than append/appendleft). A new
loop_base_index() hands every generator (decode/fanin/fanout/intermediate)
the first i{k}/gi{k} for a node's own dims, so the numbers line up with the
stride order used by cpuif_addr_predicate and with get_indexed_path from the
top node. This fixes shadowed inner loops, undeclared i1 references, and the
drifting i2-vs-i1 mismatch in the decoder.

Ports/intermediates under array ancestors (#56/#57): a boundary below rolled
arrays is an interface array sized by ALL open dims (ancestors' + own).
DesignState.open_array_dims() plus BaseCpuif.is_master_array/master_array_dims
plumb this through port declarations (SVInterface + FlatInterface), the
signal() index expressions (now indexed from the top node so ancestor
brackets are included), the fanin_wr/rd SV-array overrides, and a rewritten
FaninIntermediateGenerator that declares/assigns per boundary node (not per
rolled node) sized by every open dim. Fixes scalar ports for arrayed masters,
mis-sized fanin intermediates, and the duplicate bar_fanin_ready[3]/[5]
declarations from #57.

Select-struct typedef collisions (#57): two internal nodes with the same
instance name under different parents (group_a.bar / group_b.bar) emitted
duplicate cpuif_sel_bar_t typedefs. DesignState.struct_type_name() qualifies
colliding names by top-relative path, mirroring master_port_name.

... (continued)

1544 of 1671 relevant lines covered (92.4%)

0.92 hits per line

Source Files on job 28897292023.1
  • Tree
  • List 36
  • Changed 10
  • Source Changed 0
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 28897292023
  • 2715f7f9 on github
  • Prev Job for on main (#28897283299.1)
  • Next Job for on main (#28897355398.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc