Skip to content

Change the simulation harness to not use readmemh and writememh #1603

Open
@rachitnigam

Description

@rachitnigam

We've had ongoing problems with really understanding how to handle @external cells and their ports. For example, #1034 tracks a slew of issues where we either keep attempting to add back @clk and @reset ports from these memories or remove them because they behave incorrectly for the synthesis backend.

I think the right thing to do here is completely getting rid of the magical readmemh and writememh functions we emit for the simulation backend and forcing ourselves to use the externalized signature of the top-level component directly.

Concretely, this would mean:

  • The externalize pass runs for the default compilation pipeline
  • We change the test harness to somehow read and write in values for all the memories manually

I think this will provide clarity on issues like #1034 as well since it'll force us to use our designs in a that our users are having to.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: SimulationChanges for the simulation backend code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions