Skip to content

Verilog: 10th read in a step hangs instead of hitting the "too many reads" check #654

Open

Description

@bhuvan-somisetty

concore.v keeps per-read state in arrays sized MAXFILES (9), so slots 0 to 8. But the guard in readdata is

if (filenum > `MAXFILES)

so the 10th read in a step gets filenum = 9, slips past the check and writes past the end of s[] / lens[]. Verilog just drops that write, literal_eval then parses an X value, datavalid never goes to 1, and the read loop spins forever. You never see the "too many reads in loop" message.

Tried it with iverilog: a testbench doing 9 readdata calls finishes fine, with 10 it hangs right after read 9.

Changing it to >= should be enough. Same line is in concoredocker.v.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions