AR# 8372

CORE Generator 2.1i C_IP4:Virtex の Asynchronous FIFO の Verilog シミュレーションで「ERROR:Module or primitive (ASYNC_FIFO_V1_0) not defined"

説明

キーワード:xilinxcorelib, asynchronous, FIFO, .veo, module, ports, case, 非同期, モジュール, ポート

重要度 :標準

概要:
XilinxCoreLib の asynch_fifo_v1_0.v ビヘイビア モデルのモデル名と、Asynchronous FIFO 用に生成された VEO ファイルのポート名参照の大文字小文字が一致しない。asynch_fifo_v1_0.v ビヘイビア モデルでは、async_fifo_v1_0 というモジュール名とポートのリストが小文字で参照されますが、CORE Generator で生成された VEO ファイルのインスタンシエーション テンプレート セクションでは、モジュール名およびポートがすべて大文字で参照されます。

このため、シミュレーション時に次のようなエラー メッセージが表示される場合があります。

"ERROR! Module or primitive (ASYNC_FIFO_V1_0) not defined"

この問題の修正後も、ポート名に関して次のようなエラー メッセージがいくつか表示されることがあります。

"ERROR! Input, output or inout (din) not defined in port list

この問題も、ASYNC_FIFO_V1_O モジュールなどで使用されているポート名の参照における大文字小文字が一致していないために発生します。

ソリューション

1

XilinxCoreLib で async_fifo_v1_0.v モデルを編集し、モジュール名およびポート名を async_fifo_v1_0 インスタンシエーション ブロックで大文字に変更します。これで、自動生成される VEO ファイルで参照される名前と大文字小文字が一致します。

具体例を取って説明します。2460 行目から始まる次のコードをまず検索します。

module async_fifo_v1_0 (din, wr_en, wr_clk, rd_en, rd_clk, ainit, dout,
full, empty, almost_full, almost_empty, wr_count,
rd_count, rd_ack, rd_err, wr_ack, wr_err);

上記を次の内容に変更します。

module ASYNCH_FIFO_V1_0(DIN, WR_EN, WR_CLK, RD_EN, RD_CLK, AINIT, DOUT,
FULL, EMPTY, ALMOST_FULL, ALMOST_EMPTY, WR_COUNT,
RD_COUNT, RD_ACK, RD_ERR, WR_ACK, WR_ERR);


さらに、2509 行目から始まる以下のセクションも検索します。

input [C_DATA_WIDTH-1 : 0] din;
input wr_en;
input wr_clk;
input rd_en;
input rd_clk;
input ainit;
//output [C_READ_DATA_WIDTH-1 : 0] dout;
output [C_DATA_WIDTH-1 : 0] dout;
output full;
output empty;
output almost_full;
output almost_empty;
output [C_WR_COUNT_WIDTH-1 : 0] wr_count;
output [C_RD_COUNT_WIDTH-1 : 0] rd_count;
output rd_ack;
output rd_err;
output wr_ack;
output wr_err;


上記を次の内容に変更します。

input [C_DATA_WIDTH-1 : 0] DIN;
input WR_EN;
input WR_CLK;
input RD_EN;
input RD_CLK;
input AINIT;
//output [C_READ_DATA_WIDTH-1 : 0] dout;
output [C_DATA_WIDTH-1 : 0] DOUT;
output FULL;
output EMPTY;
output ALMOST_FULL;
output ALMOST_EMPTY;
output [C_WR_COUNT_WIDTH-1 : 0] WR_COUNT;
output [C_RD_COUNT_WIDTH-1 : 0] RD_COUNT;
output RD_ACK;
output RD_ERR;
output WR_ACK;
output WR_ERR;


さらに修正を追加する必要がある場合は、ザイリンクス アンサー #8374 を参照してください。

2

このエラーは次の緊急パッチで修正されています。

http://www.xilinx.com/txpatches/pub/swhelp/coregen/c_ip4_patch1.tar.gz (UNIX),
または
http://www.xilinx.com/txpatches/pub/swhelp/coregen/c_ip4_patch1.zip (PC)

使用の Xilinx ディレクトリにパッチを抽出してください。
AR# 8372
日付 07/06/2010
ステータス アーカイブ
種類 一般