文章 ID: 000086112 内容类型: 产品信息和文件 上次审核日期: 2021 年 08 月 28 日

如何实例化具有不同初始化文件的同一内存块的复用副本,而无需多次使用 MegaWilockd 插件管理器?

环境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

您可以通过将初始化文件名作为参数来实现这一点,对顶层设计中的每个 ROM 或 RAM 实例®生成的 MegaWi®生成的文件提供参数。为此,请通过以下程序编辑 MegaWiedd 插件管理器生成的包装器文件,并实例化设计中的实例。以下示例将 Verilog HDL 用于 ROM 内存模块。

  1. 将参数init_file的定义添加到 MegaWiledd 生成的包装文件中,如下所示:

    parameter init_file = "";

  2. 修改包装器文件中的超级功能实例化,以指派新的 init_file 参数作为 altsyncram_component.init_file 参数值如下。这一更改使 MegaWi 感应生成的自定义 ROM 模块成为可参数化的,并允许定制 ROM 的实例化来定义初始化文件的价值。

    defparam
        altsyncram_component.init_file = init_file,

  3. 删除此程序的现有值 altsyncram_component.init_file 参数 , 如果包装器文件中存在。以下是修改后的包装器文件的一个示例:

    module my_rom (address, clock, q);
       input [2:0] address;
       input clock;
       output [7:0] q;

       parameter init_file = "";
       wire [7:0] sub_wire0;
       wire [7:0] q = sub_wire0[7:0];
       altsyncram altsyncram_component (
       ...
       defparam
           altsyncram_component.init_file = init_file, ...

  4. 对于顶层设计中的每个 ROM 实例,设置 init_file 对所需初始化文件名的参数。

    下面的示例显示了模块的一个实例化 my_rom ,其中 defparam 用于将 .mif 初始化文件传递到参数 init_file 。该设计可以通过设置defparam 包括此 ROM 的许多实例,每个实例都使用不同的初始化文件。

    module top_level_roms (addr, clk, q);
       output [7:0] q;
       input clk;
       input [2:0] addr;

       my_rom u1 (.address(addr),.clock(clk),.q(q));
          defparam u1.init_file = "rom_test.mif";
    endmodule

相关产品

本文适用于 1 产品

Stratix® II FPGA

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。