AR# 40314

Virtex-6 FPGA Embedded Tri-mode Ethernet MAC Wrapper v2.1 (AXI) - 1000BASE-X の論理シミュレーションが完了しない

説明

1000BASE-X または SGMII が選択され、PHY ループバックが有効の場合、データの送信前に GTX が確実にロックされるようテストベンチの待機時間を延長する必要があります。このコンフィギュレーションでは、ループバックがオフになった後にトランシーバーの同期が失われます。demo_tb は、パワーオン リセット時データの破損を回避するために正しく待機しますが、後続のリセットに対しては待機しません。demo_tb を更新し、必要な遅延をテストの各リセット後に追加しなければなりません。

ソリューション


demo_tb p_management プロセスでは、各 mac_reset の呼び出し後、serial_response (または mdio_done) がアサートされるまで待機します。mac_reset の最初の呼出しでは、syncacqstatus 出力が確実にアサートされるように 20 マイクロ秒の遅延が追加されてチェックされます。この遅延とチェック (赤色でハイライト) は、mac_reset の各呼出しで複製される必要があります。例を次に示します。


VHDL:

mac_reset;
base_x_switch_edge <= '1';
wait until gtx_clk'event and gtx_clk = '1';
base_x_switch_edge <= '0';
wait until gtx_clk'event and gtx_clk = '1';
configuration_busy <= true;

wait until serial_response = '1';
-- wait until the gtx has acquired lock
wait for 20 us;
wait until gtx_clk'event and syncacqstatus = '1';

for j in 0 to 49 loop
wait until gtx_clk'event and gtx_clk = '1';
end loop;

Verilog:
mac_reset;
base_x_switch_edge <= 1'b1;
@(posedge gtx_clk);
base_x_switch_edge <= 1'b0;
@(posedge gtx_clk);

@(posedge serial_response);
// ensure the sync has been acquired - may have already asserted so cannot just look for edge
#20000000;
while (syncacqstatus == 0) begin
@(posedge gtx_clk);
end

repeat (50) @(posedge gtx_clk);
AR# 40314
日付 02/25/2011
ステータス アクティブ
種類 一般
IP