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

14.1 - ISIM - ネストされたループ文が正しく機能しない

説明

次のコードがあります。

   ladder2: for i in 0 to 14 generate begin
  process (clk, rst) begin 
   if rst = '1' then
--     xin(i+1,3) <= "00" & x"000";
--     xin(i+1,2) <= "00" & x"000";
--     xin(i+1,1) <= "00" & x"000";
--     xin(i+1,0) <= "00" & x"000";
    LADD:
    for j in 0 to 3 loop
     xin(i+1,j) <= "00" & x"000";
    end loop;
    

 

コメントアウトされている行は動作するのですが、ループ以降は実行するのですが、予期動作ではありません。

ソリューション

ループと generate 文の動作が異なっているのが原因です。

 

次のコードでも同じ動作が得られます。

 

ladder2: for i in 0 to 14 generate begin
  gen1:  for j in 0 to 3 generate begin
     process (clk, rst) begin           
        if rst = '1' then
             xin(i+1,j) <= "00" & x"000";
        elsif rising_edge(clk) then
             xin(i+1,?) <= xin(i,j);
        end if;
     end process;   
  end generate;
end generate;

AR# 50934
日付 12/16/2014
ステータス アクティブ
種類 一般
デバイス
  • Virtex-6 SXT
ツール
  • ISE Design Suite - 14
このページをブックマークに追加