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# 61224

Aurora 8B10B v10.2 - CRC モジュールでラッチが推論される

説明

CRC モジュールがイネーブルの場合、Aurora 8B10B v10.2 コアで次のような警告メッセージが表示されます。

WARNING: [Synth 8-327] inferring latch for variable 'msg_reg' for crc_top.vhd

この問題は vhdl コアの場合にのみ発生します。 

このアンサーでは、CRC モジュールでラッチが推論されないようにするために必要な修正を示します。

ソリューション

CRC_GEN プロセス文に存在する組み合わせロジックには else 文が含まれていないため、crc_top.vhd でラッチが推論される原因となっています。

この問題を解決するには、次のようにコードを変更する必要があります。

1)

元のコード

CRC_GEN: process(crcreg, CRCIN, data_width,data_in_8,data_in_16, data_in_24,data_in_32)

    variable   msg        :  std_logic_vector(40 downto 0);

    variable   concat_data_8 :  std_logic_vector(31 downto 0);

    variable   concat_data_16 :  std_logic_vector(31 downto 0);

    variable   concat_data_24 :  std_logic_vector(31 downto 0);

    variable   concat_data_32 :  std_logic_vector(31 downto 0);

begin


置換用コード

CRC_GEN: process(crcreg, CRCIN, data_width,data_in_8,data_in_16, data_in_24,data_in_32,zero_8,zero_16,zero_24,poly_val)

    variable   msg            :  std_logic_vector(40 downto 0) := (others => '0');

    variable   concat_data_8  :  std_logic_vector(31 downto 0) := (others => '0');

    variable   concat_data_16 :  std_logic_vector(31 downto 0) := (others => '0');

    variable   concat_data_24 :  std_logic_vector(31 downto 0) := (others => '0');

    variable   concat_data_32 :  std_logic_vector(31 downto 0) := (others => '0');

begin

2)

元のコード

elsif (data_width = "11") then


置換用コード

else



改訂履歴 :
2014/08/04 - 初版


AR# 61224
日付 08/07/2014
ステータス アクティブ
種類 一般
デバイス
ツール
IP
このページをブックマークに追加