文章 ID: 000079979 内容类型: 错误讯息 上次审核日期: 2021 年 08 月 28 日

错误:"模块实例化错误:端口在模块实例化中连接,但未在模块声明中声明。"(Verilog HDL,先到先得 (FIFO))

环境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

在直接实例化参数化模块 (LPM) 功能的第一次输入 (FIFO) 库时,您可能会出现此错误。如果实例化的 FIFO 缓冲区使用该单元并记录两个算法函数,则无法通过 defparam 参数传递参数。即使已正确编码,下面的示例也无法工作。

. . .

module fifo256x8 (data, rreq, wreq, clock,  clockx2, aclr, threshlevel, 

threshold, empty, full, usedw, q);

    input   [7:0] data; 

    input   [7:0] threshlevel;

    input   rreq, wreq, clock, clockx2, aclr;

    output  [7:0] q;

    output  [7:0] usedw;

    output  threshold, empty, full;

    sfifo inst_1 (.data (data), 

                       .rreq (rreq), .wreq (wreq), .clock (clock), .clockx2 (clockx2), 

.aclr (aclr), .q (q), .usedw (usedw), .threshold (threshold),

                       .empty (empty), .threshlevel (threshlevel), .full (full));

        defparam inst_1.lpm_width = 8;

        defparam inst_1.lpm_numwords = 256;

     

endmodule

. . .

变通方法是在虚拟化图形设计文件(.gdf)文件中使用其所有参数集实例化 FIFO 函数,并为其提供特定名称(例如 ,my_fifo.gdf)。为 GDF 创建默认 Include 文件(.inc)。在顶级 Verilog HDL 代码中实例化 GDF,而无需指定任何参数。下面的示例将起作用(与上面的示例对应)。

. . .

module fifo256x8 (data, rreq, wreq, clock,  clockx2, aclr, threshlevel, 

threshold, empty, full, usedw, q);

    input   [7:0] data; 

    input   [7:0] threshlevel;

    input   rreq, wreq, clock, clockx2, aclr;

    output  [7:0] q;

    output  [7:0] usedw;

    output  threshold, empty, full;

    my_fifo inst_1 (.data (data), 

                       .rreq (rreq), .wreq (wreq), .clock (clock), .clockx2 (clockx2), 

.aclr (aclr), .q (q), .usedw (usedw), .threshold (threshold),

                       .empty (empty), .threshlevel (threshlevel), .full (full));



endmodule

. . .

my_fifo.gdf 包含 SFIFO 关于 lpm_width = 8 和 。 lpm_numwords = 256上面的端口映射是指 my_fifo.gdf,SFIFO 超级功能无关。

相关产品

本文适用于 1 产品

英特尔® 可编程设备

1

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