Devido a um erro de codificação RTL no código RTL fornecido Intel® PAC N3000, quando uma porta recebe um quadro de pausa, todas as portas pausam a transmissão. A operação esperada é apenas a porta que recebe o quadro de pausa para pausar a transmissão.
Para resolver este erro de codificação RTL, modifique o arquivo SystemVerilog n3000_1_3_v1.5.7/Factory/hw/pac/eth_wrapper/rtl/eth_demux_logic.sv
De:
always_ff @(posedge clk ou posedge rst) começa
se (rst) começar
i_avst.ready <= '0;
Final
mais começar
i_avst.ready <= &wire_ready;
Final
Final
Corrigido:
always_comb começar
case({rg_i_avst_valid,rg_i_avst_channel})
100: wire_ready_o = wire_ready[0];
101: wire_ready_o = wire_ready[1];
110: wire_ready_o = wire_ready[2];
111: wire_ready_o = wire_ready[3];
padrão: wire_ready_o = 1'b1;
endcase
Final
always_ff @(posedge clk ou posedge rst) começa
se (rst) começar
i_avst.ready <= '0;
Final
mais começar
i_avst.ready <= &wire_ready;
i_avst.ready <= wire_ready_o;
Final
Final
Salve o arquivo editado e reconstróa a imagem FPGA N3000.
Este erro de codificação está planejado para ser corrigido em uma futura versão do software N3000.