установить приоритетность пакетов из определенного источника в NetFPGA - PullRequest
0 голосов
/ 09 июля 2019

Мне нужно расставить приоритеты пакетов, поступающих с 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 пакетов через сеть

...