AR# 11726

|

XAPP209 - 特定の CRC 幅およびデータ幅でしか合成可能なコードが生成されない

説明

キーワード : CRC, Application Note, AppNote, 209, code, アプリケーション ノート, コード

重要度 : 標準

概要 :
Perl スクリプトで、CRC 幅がデータ幅より大きく、データ幅の倍数でないと、合成可能なコードが生成されません。 それ以外の場合は、生成されたコードが合成できません。

コードを合成可能にするにはどうすれば良いですか。

ソリューション

この問題および関連事項については、アプリケーション ノート (Xilinx XAPP 209) 『IEEE 802.3 Cyclic Redundancy Check』に記載されています。

この問題は、2001 年 7 月に修正されています。

また、生成されたコードを次のように変更すると、問題を解決できます。

----------------------------------------------------------------------------------------------------------

行 35

output [31:0] crc_reg;

これを次のように変更します。

output [7:0] crc_reg; //changed from 31:0

---------------------------------------------------------------------------------------------------------

行 45

reg [31:0] crc_reg;

これを次のように変更します。

reg [7:0] crc_reg; //changed from 31:0

--------------------------------------------------------------------------------------------------

行 90 〜 93

else if (~calc & d_valid) begin
crc_reg <= {crc_reg[-1:0], 8'h00};
crc <= ~{crc_reg[-8], crc_reg[-7], crc_reg[-6], crc_reg[-5],
crc_reg[-4], crc_reg[-3], crc_reg[-2], crc_reg[-1]};

これを次のように変更します。

else if (~calc & d_valid) begin //crc_reg [] and crc changed
crc_reg <= 8'h00;
crc <= ~{crc_reg[7], crc_reg[6], crc_reg[5], crc_reg[4],
crc_reg[3], crc_reg[2], crc_reg[1], crc_reg[0]};

--------------------------------------------------------------------------------------------------------------
AR# 11726
日付 10/01/2008
ステータス アーカイブ
種類 一般
People Also Viewed