AR# 38864

MIG v3.0-3.5、Spartan-6 MCB - VHDL バージョンのリセット ロジックが間違っている

説明

MIG 3.5 およびそれ以前のバージョンでは、Spartan-6 FPGA コントローラの mcb_soft_calibration.vhd モジュールにあるリセット ロジックが間違っています。Verilog バージョンにはこの問題は見られません。MIG 3.6 およびそれ以降のバージョンでは、コアの VHDL および Verilog バージョンの両方で正しいリセット ロジックが含まれています。

ソリューション

MIG rev 3.5 およびそれ以前のバージョンでは、mcb_soft_calibration.vhd にあるリセット レジスタ RST_reg のロジックが間違っています。変更する必要のある VHDL コードのセクションは次のとおりです。

元の VHDL コード :
process (UI_CLK, non_violating_rst) begin
if (non_violating_rst = '1') then
RST_reg <= '1'; -- STATE and MCB_SYSRST will both be reset if you lose lock when the device is not in SUSPEND
elsif (UI_CLK'event and UI_CLK = '1') then
if (WAIT_200us_COUNTER(15) = '0') then
RST_reg <= '0'; ---------------------------incorrectly assigns '0' to RST_reg----------------------------
else
RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long
end if;
end if;
end process;


変更した VHDL コード :
process (UI_CLK, non_violating_rst) begin
if (non_violating_rst = '1') then
RST_reg <= '1'; -- STATE and MCB_SYSRST will both be reset if you lose lock when the device is not in SUSPEND
elsif (UI_CLK'event and UI_CLK = '1') then
if (WAIT_200us_COUNTER(15) = '0') then
RST_reg <= '1';
else
RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long
end if;
end if;
end process;

AR# 38864
日付 12/15/2012
ステータス アクティブ
種類 一般
デバイス
IP