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

5.1i XST - シフト レジスタのインプリメンテーション後の結果が予測どおりにならない

説明

キーワード : ISE, 5.1i, XST, shift, register, synthesis, implementation, simulation, result, シフト, レジスタ, 合成, インプリメンテーション, シミュレーション, 結果

重要度 : 標準

概要 :
シフト レジスタをインプリメントし、次のような文をコードに含めると、合成後のシミュレーションが予測したようになりません。

process (CLK, RST, START)
begin

if rising_edge(CLK) then
if RST='1' then

control_int <= (others=>'0');

else
if START='1' then

control_int <= (0=>'1', others=>'0');

else

control_int <= control_int(width-2 downto 0) & '0';

end if;
end if;
end if;

end process;

CONTROL <= control_int;

XST では、このコードに対する警告もエラー メッセージも表示されませんでした。 原因は何ですか。

ソリューション

XST では、次の構文が正しくインプリメントされません。

control_int <= (0=>'1', others=>'0');

この問題を回避するには、次を使用します。

process (CLK, RST, START)
begin

if rising_edge(CLK) then
if RST='1' then

control_int <= (others=>= '1';
control_int(width-1 downto 1) <= (others=>'0');

else

control_int <= control_int(width-2 downto 0) & '0';

end if;
end if;
end if;

end process;

CONTROL <= control_int;
AR# 15665
日付 10/20/2005
ステータス アーカイブ
種類 一般
このページをブックマークに追加