UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

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
ステータス アーカイブ
種類 一般
このページをブックマークに追加