Мне нужно расставить приоритеты пакетов, поступающих с nf2 с mac-адресом: 00: 4e: 46: 31: 30: 02. Это в NetFPGA 10G. Я делаю изменения в файле input_arbiter.v, расположенном в моем проекте, который является копией reference_router_nf1_cml.
Я не знаю, как его запрограммировать, поэтому он не отбрасывает все пакеты из других источников (всего 4)
always @(*) begin
state_next = state;
cur_queue_next = cur_queue;
rd_en = 0;
pkt_fwd_next = 0;
case(state)
/* cycle between input queues until one is not empty */
IDLE: begin
if(!empty[cur_queue]) begin //si tiene algo que mandar
if(m_axis_tready) begin //y esta listo para mandarlo cambiamos al estado de mandar paquete. Si no hay nada que mandar, seguirá buscando
state_next = WR_PKT; //hasta que una tenga algo que mandar
rd_en[cur_queue] = 1;
pkt_fwd_next = 1;
end
end
else begin
cur_queue_next = cur_queue_plus1; //si la cola está vacía pasamos a la siguiente
end
end // case: IDLE
/* wait until eop */
WR_PKT: begin
/* if this is the last word then write it and get out */
if(m_axis_tready & m_axis_tlast) begin //Si es lo último que queda en la cola, el siguiente estado
state_next = IDLE;
rd_en[cur_queue] = 1;
cur_queue_next = cur_queue_plus1;
end
/* otherwise read and write as usual */
else if (m_axis_tready && !empty[cur_queue]) begin
rd_en[cur_queue] = 1;
end
end // case: WR_PKT
endcase // case(state)
end // always @ (*)
always @(posedge axi_aclk) begin
if(~axi_resetn) begin
state <= IDLE;
cur_queue <= 0;
pkt_fwd <= 0;
end
else begin
state <= state_next;
cur_queue <= cur_queue_next;
pkt_fwd <= pkt_fwd_next;
end
end
Я ожидаю получить 50 пакетов через сеть