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

LogiCORE IP Tri-Mode Ethernet MAC v4.5 およびそれ以前のバージョン - リセットの後 Local Link FIFO から間違ったデータが読み出される

説明

Tri-Mode Ethernet MAC v4.5 およびそれ以前のバージョンで配布されるサンプル デザインで Local Link FIFO を使用していて、それが 10Mb/s または 100Mb/s で動作している場合、FIFO への書き込みの途中でリセットが出力されると FIFO が正しく消去されない可能性があります。

ソリューション

この問題を解決するには、リセットを追加するため、rx_client_fifo.v/vhd で reg_eof_p を変更します。

 

VHDL :

example_design/fifo/rx_client_fifo.vhd の行 784 から次のように変更します。

 reg_eof_p : process(wr_clk)
  begin
    if (wr_clk'event and wr_clk = '1') then
        if wr_enable = '1' then
           wr_dv_pipe(0) <= rx_data_valid;
           wr_dv_pipe(1) <= wr_dv_pipe(0);
           wr_eof_bram(0) <= wr_dv_pipe(1) and not wr_dv_pipe(0);
        end if;
     end if;
  end process reg_eof_p;

これを次のように変更します。

reg_eof_p : process(wr_clk)
  begin
     if (wr_clk'event and wr_clk = '1') then
        if wr_sreset = '1' then
           wr_dv_pipe    <= (others => '0');
           wr_eof_bram   <= (others => '0');
        elsif wr_enable = '1' then
           wr_dv_pipe(0) <= rx_data_valid;
           wr_dv_pipe(1) <= wr_dv_pipe(0);
           wr_eof_bram(0) <= wr_dv_pipe(1) and not wr_dv_pipe(0);
        end if;
     end if;
  end process reg_eof_p;

Verilog :

example_design/fifo/rx_client_fifo.v の行 771 から次のように変更します。

  always @(posedge wr_clk)
  begin
     if (wr_enable == 1'b1) begin
        wr_dv_pipe[0] <= rx_data_valid;
        wr_dv_pipe[1] <= wr_dv_pipe[0];
        wr_eof_bram[0] <= wr_dv_pipe[1] & !wr_dv_pipe[0];
     end
  end

これを次のように変更します。

  always @(posedge wr_clk)
  begin
    if (wr_sreset == 1'b1) begin
      wr_dv_pipe[0] <= 1'b0;
      wr_dv_pipe[1] <=1'b0;
      wr_eof_bram <= 1'b0;
    
    end
    else if (wr_enable == 1'b1) begin
        wr_dv_pipe[0] <= rx_data_valid;
        wr_dv_pipe[1] <= wr_dv_pipe[0];
        wr_eof_bram[0] <= wr_dv_pipe[1] & !wr_dv_pipe[0];
     end
  end

AR# 45915
日付 09/17/2014
ステータス アクティブ
種類 一般
IP
  • Tri-Mode Ethernet MAC
このページをブックマークに追加