Forum Discussion

jongyun23's avatar
jongyun23
Icon for New Contributor rankNew Contributor
1 month ago

Quartus Assembler-only run after updating ROM .mif — should .sof/.pof checksum change?

Hello,

I have a question about Quartus output files and checksums when only the Assembler is re-run.

1) Run a full compile once (Analysis & Synthesis + Fitter/Place & Route).

2) Modify a *.mif file that is used as the initialization file for a Quartus IP: “ROM: 1-PORT”.

3) Without re-running Analysis & Synthesis or the Fitter, run:

4) Processing → Start → Start Assembler

5) to regenerate the .sof and .pof files.

A customer asked whether the checksum of the generated .sof/.pof should remain unchanged because the logic is not re-synthesized and the design is not re-fitted.

However, in my repeated tests, the checksum of the .sof/.pof changes every time the contents of the .mif file change.

Could you please confirm whether this behavior is expected?

In other words, does the Assembler incorporate the updated memory initialization data into the programming files (thus changing the file contents/checksum), even though A&S and Fitter are not re-run?

Any clarification or recommended flow for updating ROM init contents would be appreciated.

Best regards,

2 Replies

  • KennyT_altera's avatar
    KennyT_altera
    Icon for Super Contributor rankSuper Contributor

    Hi,

     

    Thank you for your question regarding the behavior of Quartus output files and checksums after modifying a memory initialization file (.mif).

    To clarify, a checksum is a value calculated from the contents of a file. It serves as a digital fingerprint, allowing users to verify the integrity and authenticity of the file. If any part of the file changes—even a single bit—the checksum will also change. This makes checksums an essential tool for confirming that a programming file is exactly as intended before it is used to configure a device.

    When you update a .mif file and re-run only the Assembler (without re-running Analysis & Synthesis or Fitter), the assembler incorporates the new memory initialization data into the output programming files (such as .sof and .pof). As a result, the contents of these files change, and so does their checksum. This change is expected and necessary—it ensures that the programming file accurately reflects your latest design, including the updated memory contents.

    This process is recommended by Altera. It allows you to efficiently update memory initialization data and regenerate programming files without needing a full compilation. The change in checksum is an important confirmation that the device will be programmed with the correct, updated memory data.

     

    Thanks,

    Best regards,
    Kenny