ID บทความ: 000086112 ประเภทข้อมูล: ข้อมูลผลิตภัณฑ์และเอกสารประกอบ การตรวจสอบครั้งล่าสุด: 11/09/2012

ฉันจะสร้างอินสแตนซ์สําเนาของบล็อกหน่วยความจําเดียวกันที่มีไฟล์เริ่มต้นที่แตกต่างกันโดยไม่ใช้ MegaWizard Plug-In Manager หลายครั้งได้อย่างไร

สิ่งแวดล้อม

BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย

คุณสามารถทําได้โดยการส่งชื่อไฟล์เริ่มต้นเป็นพารามิเตอร์ไปยังไฟล์ที่สร้างขึ้น MegaWizard® สําหรับแต่ละอินสแตนซ์ของ ROM หรือ RAM ในการออกแบบระดับบนสุด โดยทําตามขั้นตอนต่อไปนี้เพื่อแก้ไขไฟล์ห่อหุ้มที่สร้างขึ้นโดย MegaWizard Plug-In Manager และสร้างอินสแตนซ์ในการออกแบบของคุณทันที ตัวอย่างต่อไปนี้ใช้ Verilog HDL สําหรับบล็อกหน่วยความจํา ROM

  1. เพิ่มคําจํากัดความของพารามิเตอร์init_fileลงในไฟล์ห่อหุ้มที่สร้างขึ้น MegaWizard ดังนี้:

    parameter init_file = "";

  2. แก้ไขการสร้างอินสแตนซ์เมกะฟังก์ชันในไฟล์ห่อหุ้มเพื่อกําหนดใหม่ init_file พารามิเตอร์เป็น altsyncram_component.init_file ค่าพารามิเตอร์ เป็นดังนี้ การเปลี่ยนแปลงนี้ทําให้โมดูล ROM ที่กําหนดเอง MegaWizard สามารถปรับแต่งพารามิเตอร์ได้และช่วยให้การสร้างอินสแตนซ์ของ 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 การออกแบบอาจรวมถึงการสร้างอินสแตนซ์ของ ROM นี้มากมาย แต่ละไฟล์ใช้ไฟล์เริ่มต้นที่แตกต่างกันโดยการตั้งค่า defparam

    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

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้