data/full_repos/permissive/498471995/sume/felix/simple_sume_switch/test/ip_repo/contrib/cores/nf_sume_blueswitch_v1_0_0/hdl/verilog/flow_table.v
1: b'%Error: data/full_repos/permissive/498471995/sume/felix/simple_sume_switch/test/ip_repo/contrib/cores/nf_sume_blueswitch_v1_0_0/hdl/verilog/flow_table.v:33: Cannot find include file: nf_sume_blueswitch_register_define.v\n`include "nf_sume_blueswitch_register_define.v" \n         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n        ... Looked in:\n             data/full_repos/permissive/498471995/sume/felix/simple_sume_switch/test/ip_repo/contrib/cores/nf_sume_blueswitch_v1_0_0/hdl/verilog,data/full_repos/permissive/498471995/nf_sume_blueswitch_register_define.v\n             data/full_repos/permissive/498471995/sume/felix/simple_sume_switch/test/ip_repo/contrib/cores/nf_sume_blueswitch_v1_0_0/hdl/verilog,data/full_repos/permissive/498471995/nf_sume_blueswitch_register_define.v.v\n             data/full_repos/permissive/498471995/sume/felix/simple_sume_switch/test/ip_repo/contrib/cores/nf_sume_blueswitch_v1_0_0/hdl/verilog,data/full_repos/permissive/498471995/nf_sume_blueswitch_register_define.v.sv\n             nf_sume_blueswitch_register_define.v\n             nf_sume_blueswitch_register_define.v.v\n             nf_sume_blueswitch_register_define.v.sv\n             obj_dir/nf_sume_blueswitch_register_define.v\n             obj_dir/nf_sume_blueswitch_register_define.v.v\n             obj_dir/nf_sume_blueswitch_register_define.v.sv\n%Error: data/full_repos/permissive/498471995/sume/felix/simple_sume_switch/test/ip_repo/contrib/cores/nf_sume_blueswitch_v1_0_0/hdl/verilog/flow_table.v:34: Cannot find include file: nf_sume_blueswitch_parameter_define.v\n`include "nf_sume_blueswitch_parameter_define.v" \n         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n%Error: Exiting due to 2 error(s)\n'
module flow_table
#(
   parameter   C_S_AXI_DATA_WIDTH      = 32,

   parameter   HDR_ACT_TDATA_WIDTH     = 32,
   parameter   HDR_ACT_TUSER_WIDTH     = 32,

   parameter   TBL_ADDR_WIDTH          = 4,
   parameter   TCAM_DATA_WIDTH         = 32,
   parameter   ACT_DATA_WIDTH          = 8,
   parameter   ACT_TBL_DATA_WIDTH      = 8,
   parameter   HDR_ENTRY_POS           = 32,
   parameter   HW_TRIG_POS             = 32,

   parameter   ENTRY_TYPE              = 1,

   parameter   TCAM_DUMMY_ENTRY        = 32'hace0_face
)
(
   input                                     axi_aclk,
   input                                     axi_resetn,
   


   input          [HDR_ACT_TDATA_WIDTH-1:0]  s_axis_hdr_act_tdata,

   input          [HDR_ACT_TUSER_WIDTH-1:0]  s_axis_hdr_act_tuser,
   input                                     s_axis_hdr_act_tvalid,
   output                                    s_axis_hdr_act_tready,

   output         [HDR_ACT_TDATA_WIDTH-1:0]  m_axis_hdr_act_tdata,
   output         [HDR_ACT_TUSER_WIDTH-1:0]  m_axis_hdr_act_tuser,
   output                                    m_axis_hdr_act_tvalid,
   input                                     m_axis_hdr_act_tready,


   output         [1:0]                      flow_table_status,


   input          [1:0]                      flow_table_config,
   input                                     flow_buffer_sel,
   
   input          [1:0]                      tcam_wr_ctrl,


   input          [TBL_ADDR_WIDTH-1:0]       tcam_addr_wr,
   input                                     tcam_wren,
   input          [TCAM_DATA_WIDTH-1:0]      tcam_din,
   input          [TCAM_DATA_WIDTH-1:0]      tcam_din_mask,
   output                                    tcam_busy,
   output         [C_S_AXI_DATA_WIDTH-1:0]   tcam_hit_total,
   output         [C_S_AXI_DATA_WIDTH-1:0]   tcam_miss_total,
   output         [C_S_AXI_DATA_WIDTH-1:0]   tcam_total,
   input                                     tcam_flow_stat_clr,
   input          [TBL_ADDR_WIDTH-1:0]       tcam_stat_addr_rd,
   input                                     tcam_stat_rden,
   output         [C_S_AXI_DATA_WIDTH-1:0]   tcam_stat_data_rd,
   input                                     tcam_stat_clr,


   input                                     action_sel_trig,
   input          [1:0]                      action_wr_ctrl,

   input          [TBL_ADDR_WIDTH-1:0]       action_addr_wr,
   input                                     action_wren,
   input                                     action_rden,
   input          [ACT_TBL_DATA_WIDTH-1:0]   action_din,
   output         [ACT_TBL_DATA_WIDTH-1:0]   action_dout,
   input                                     action_stat_clr,
   input          [TBL_ADDR_WIDTH-1:0]       action_stat_addr_rd,
   input                                     action_stat_rden,
   output         [C_S_AXI_DATA_WIDTH-1:0]   action_stat_data_rd,
   output         [ACT_TBL_DATA_WIDTH-1:0]   action_result,
   output                                    action_miss,
   output                                    action_hit,
   output                                    action_result_en
);

localparam HDR_ACT_TOT_WIDTH = HDR_ACT_TDATA_WIDTH + HDR_ACT_TUSER_WIDTH;

wire  tcam_hit, tcam_miss, tcam_match_en, tcam_sel, tcam_entry_en;
wire  [TCAM_DATA_WIDTH-1:0]   tcam_entry;
wire  [TBL_ADDR_WIDTH-1:0]    tcam_match_result;

wire  header_act_rden, header_act_full, header_act_empty,
header_act_wren;
wire  [HDR_ACT_TOT_WIDTH-1:0] header_act_din, header_act_dout;

wire  action_tcam_match_en, action_tcam_miss, action_tcam_hit;
wire  [TBL_ADDR_WIDTH-1:0]    action_tcam_match_result;

wire  action_result_rden, action_result_full, action_result_empty,
action_result_wren;

wire  [ACT_TBL_DATA_WIDTH+2-1:0] action_result_dout, action_result_din;

wire  tcam_status, action_status;

assign flow_table_status = {action_status, tcam_status};



assign header_act_rden = (flow_table_config[0]) ?
                          ~header_act_empty & m_axis_hdr_act_tready :
                          ~action_result_empty & ~header_act_empty & m_axis_hdr_act_tready;
assign header_act_wren = s_axis_hdr_act_tvalid & ~header_act_full;


assign header_act_din = {s_axis_hdr_act_tuser, s_axis_hdr_act_tdata};
assign s_axis_hdr_act_tready = ~header_act_full;


fallthrough_small_fifo 
#( 
   .WIDTH                  (  HDR_ACT_TOT_WIDTH    ),
   .MAX_DEPTH_BITS         (  4                    )
) 
header_act_fifo
( 

   .dout                   (  header_act_dout      ),
   .rd_en                  (  header_act_rden      ),
   .full                   (),
   .nearly_full            (),
   .prog_full              (  header_act_full      ),
   .empty                  (  header_act_empty     ),

   .din                    (  header_act_din       ),
   .wr_en                  (  header_act_wren      ),
   .reset                  (  ~axi_resetn          ), 
   .clk                    (  axi_aclk             )
);


assign tcam_entry_en = (flow_table_config[0]) ?
                        0 :
                        s_axis_hdr_act_tvalid & ~header_act_full;

assign tcam_entry = header_act_din[HDR_ENTRY_POS+:TCAM_DATA_WIDTH];
assign tcam_sel = header_act_din[HW_TRIG_POS+:1];

reg   [2:0] r_tcam_sel;
always @(posedge axi_aclk)
   if (~axi_resetn)
      r_tcam_sel  <= 0;
   else
      r_tcam_sel  <= {r_tcam_sel[1:0], tcam_sel};

tcam_table_double
#(
   .C_S_AXI_DATA_WIDTH     (  C_S_AXI_DATA_WIDTH         ),
   .TCAM_ADDR_WIDTH        (  TBL_ADDR_WIDTH             ),
   .TCAM_DATA_WIDTH        (  TCAM_DATA_WIDTH            ),
   .TCAM_DUMMY_ENTRY       (  TCAM_DUMMY_ENTRY           )
)
tcam_table_double
(
   .axi_aclk               (  axi_aclk                   ),
   .axi_resetn             (  axi_resetn                 ),
   .tcam_entry_en          (  tcam_entry_en              ),
   .tcam_entry             (  tcam_entry                 ),
   .tcam_sel               (  tcam_sel                   ),
   .flow_buffer_sel        (  flow_buffer_sel            ),
   .tcam_wr_ctrl           (  tcam_wr_ctrl               ),
   .tcam_status            (  tcam_status                ),
   .tcam_addr_wr           (  tcam_addr_wr               ),
   .tcam_wren              (  tcam_wren                  ),
   .tcam_din               (  tcam_din                   ),
   .tcam_din_mask          (  tcam_din_mask              ),
   .tcam_busy              (  tcam_busy                  ),
   .tcam_hit               (  tcam_hit                   ),
   .tcam_miss              (  tcam_miss                  ),
   .tcam_match_result      (  tcam_match_result          ),
   .tcam_match_en          (  tcam_match_en              ),
   .tcam_hit_total         (  tcam_hit_total             ),
   .tcam_miss_total        (  tcam_miss_total            ),
   .tcam_total             (  tcam_total                 ),
   .tcam_flow_stat_clr     (  tcam_flow_stat_clr         ),
   .tcam_stat_clr          (  tcam_stat_clr              ),
   .tcam_stat_addr_rd      (  tcam_stat_addr_rd          ),
   .tcam_stat_rden         (  tcam_stat_rden             ),
   .tcam_stat_data_rd      (  tcam_stat_data_rd          )
);


assign action_tcam_match_en = (flow_table_config[0]) ? 0 : tcam_match_en;
assign action_tcam_miss = tcam_miss;
assign action_tcam_hit = tcam_hit;
assign action_tcam_match_result = tcam_match_result;

assign action_sel = r_tcam_sel[2];

action_table_double
#(
   .C_S_AXI_DATA_WIDTH        (  C_S_AXI_DATA_WIDTH         ),
   .ACT_ADDR_WIDTH            (  TBL_ADDR_WIDTH             ),
   .ACT_TBL_DATA_WIDTH        (  ACT_TBL_DATA_WIDTH         )
)
action_table_double
(
   .axi_aclk                  (  axi_aclk                   ),
   .axi_resetn                (  axi_resetn                 ),
   .action_tcam_match_en      (  action_tcam_match_en       ),
   .action_tcam_miss          (  action_tcam_miss           ),
   .action_tcam_hit           (  action_tcam_hit            ),
   .action_tcam_match_result  (  action_tcam_match_result   ),
   .action_sel                (  action_sel                 ),
   .flow_buffer_sel           (  flow_buffer_sel            ),
   .action_wr_ctrl            (  action_wr_ctrl             ),
   .action_status             (  action_status              ),
   .action_addr_wr            (  action_addr_wr             ),
   .action_wren               (  action_wren                ),
   .action_rden               (  action_rden                ),
   .action_din                (  action_din                 ),
   .action_dout               (  action_dout                ),
   .action_stat_addr_rd       (  action_stat_addr_rd        ),
   .action_stat_rden          (  action_stat_rden           ),
   .action_stat_data_rd       (  action_stat_data_rd        ),
   .action_stat_clr           (  action_stat_clr            ),
   .action_result             (  action_result              ),
   .action_miss               (  action_miss                ),
   .action_hit                (  action_hit                 ),
   .action_result_en          (  action_result_en           )
);


assign action_result_wren = action_result_en;
assign action_result_din = {action_miss, action_hit, action_result};
assign action_result_rden = (flow_table_config[0]) ?
                             1 :
                             ~header_act_empty & ~action_result_empty & m_axis_hdr_act_tready;


fallthrough_small_fifo 
#( 
   .WIDTH                  (  ACT_TBL_DATA_WIDTH+2          ),
   .MAX_DEPTH_BITS         (  4                             )
) 
action_result_fifo
( 

   .dout                   (  action_result_dout            ),
   .rd_en                  (  action_result_rden            ),
   .full                   (),
   .nearly_full            (),
   .prog_full              (  action_result_full            ),
   .empty                  (  action_result_empty           ),

   .din                    (  action_result_din             ), 
   .wr_en                  (  action_result_wren            ), 
   .reset                  (  ~axi_resetn                   ), 
   .clk                    (  axi_aclk                      ) 
);




reg   [HDR_ACT_TDATA_WIDTH-1:0]  r_header_act_update;
always @(*) begin
   r_header_act_update = header_act_dout;

   if (~flow_table_config[1] & action_result_dout[ACT_TBL_DATA_WIDTH]) begin

      r_header_act_update[HDR_ACT_TDATA_WIDTH-ACT_DATA_WIDTH-1+ACT_TBL_DATA_WIDTH+2-1:HDR_ACT_TDATA_WIDTH-ACT_DATA_WIDTH-1] = action_result_dout;
   end
end









assign m_axis_hdr_act_tdata = (flow_table_config[0]) ? header_act_dout : r_header_act_update;
assign m_axis_hdr_act_tuser = header_act_dout[HDR_ACT_TDATA_WIDTH+:HDR_ACT_TUSER_WIDTH];
assign m_axis_hdr_act_tvalid = (flow_table_config[0]) ?
                               ~header_act_empty :
                               ~header_act_empty & ~action_result_empty;

endmodule
module flow_table
#(
   parameter   C_S_AXI_DATA_WIDTH      = 32,

   parameter   HDR_ACT_TDATA_WIDTH     = 32,
   parameter   HDR_ACT_TUSER_WIDTH     = 32,

   parameter   TBL_ADDR_WIDTH          = 4,
   parameter   TCAM_DATA_WIDTH         = 32,
   parameter   ACT_DATA_WIDTH          = 8,
   parameter   ACT_TBL_DATA_WIDTH      = 8,
   parameter   HDR_ENTRY_POS           = 32,
   parameter   HW_TRIG_POS             = 32,

   parameter   ENTRY_TYPE              = 1,

   parameter   TCAM_DUMMY_ENTRY        = 32'hace0_face
)
(
   input                                     axi_aclk,
   input                                     axi_resetn,
   


   input          [HDR_ACT_TDATA_WIDTH-1:0]  s_axis_hdr_act_tdata,

   input          [HDR_ACT_TUSER_WIDTH-1:0]  s_axis_hdr_act_tuser,
   input                                     s_axis_hdr_act_tvalid,
   output                                    s_axis_hdr_act_tready,

   output         [HDR_ACT_TDATA_WIDTH-1:0]  m_axis_hdr_act_tdata,
   output         [HDR_ACT_TUSER_WIDTH-1:0]  m_axis_hdr_act_tuser,
   output                                    m_axis_hdr_act_tvalid,
   input                                     m_axis_hdr_act_tready,


   output         [1:0]                      flow_table_status,


   input          [1:0]                      flow_table_config,
   input                                     flow_buffer_sel,
   
   input          [1:0]                      tcam_wr_ctrl,


   input          [TBL_ADDR_WIDTH-1:0]       tcam_addr_wr,
   input                                     tcam_wren,
   input          [TCAM_DATA_WIDTH-1:0]      tcam_din,
   input          [TCAM_DATA_WIDTH-1:0]      tcam_din_mask,
   output                                    tcam_busy,
   output         [C_S_AXI_DATA_WIDTH-1:0]   tcam_hit_total,
   output         [C_S_AXI_DATA_WIDTH-1:0]   tcam_miss_total,
   output         [C_S_AXI_DATA_WIDTH-1:0]   tcam_total,
   input                                     tcam_flow_stat_clr,
   input          [TBL_ADDR_WIDTH-1:0]       tcam_stat_addr_rd,
   input                                     tcam_stat_rden,
   output         [C_S_AXI_DATA_WIDTH-1:0]   tcam_stat_data_rd,
   input                                     tcam_stat_clr,


   input                                     action_sel_trig,
   input          [1:0]                      action_wr_ctrl,

   input          [TBL_ADDR_WIDTH-1:0]       action_addr_wr,
   input                                     action_wren,
   input                                     action_rden,
   input          [ACT_TBL_DATA_WIDTH-1:0]   action_din,
   output         [ACT_TBL_DATA_WIDTH-1:0]   action_dout,
   input                                     action_stat_clr,
   input          [TBL_ADDR_WIDTH-1:0]       action_stat_addr_rd,
   input                                     action_stat_rden,
   output         [C_S_AXI_DATA_WIDTH-1:0]   action_stat_data_rd,
   output         [ACT_TBL_DATA_WIDTH-1:0]   action_result,
   output                                    action_miss,
   output                                    action_hit,
   output                                    action_result_en
);


localparam HDR_ACT_TOT_WIDTH = HDR_ACT_TDATA_WIDTH + HDR_ACT_TUSER_WIDTH;

wire  tcam_hit, tcam_miss, tcam_match_en, tcam_sel, tcam_entry_en;
wire  [TCAM_DATA_WIDTH-1:0]   tcam_entry;
wire  [TBL_ADDR_WIDTH-1:0]    tcam_match_result;

wire  header_act_rden, header_act_full, header_act_empty,
header_act_wren;
wire  [HDR_ACT_TOT_WIDTH-1:0] header_act_din, header_act_dout;

wire  action_tcam_match_en, action_tcam_miss, action_tcam_hit;
wire  [TBL_ADDR_WIDTH-1:0]    action_tcam_match_result;

wire  action_result_rden, action_result_full, action_result_empty,
action_result_wren;

wire  [ACT_TBL_DATA_WIDTH+2-1:0] action_result_dout, action_result_din;

wire  tcam_status, action_status;

assign flow_table_status = {action_status, tcam_status};



assign header_act_rden = (flow_table_config[0]) ?
                          ~header_act_empty & m_axis_hdr_act_tready :
                          ~action_result_empty & ~header_act_empty & m_axis_hdr_act_tready;
assign header_act_wren = s_axis_hdr_act_tvalid & ~header_act_full;


assign header_act_din = {s_axis_hdr_act_tuser, s_axis_hdr_act_tdata};
assign s_axis_hdr_act_tready = ~header_act_full;


fallthrough_small_fifo 
#( 
   .WIDTH                  (  HDR_ACT_TOT_WIDTH    ),
   .MAX_DEPTH_BITS         (  4                    )
) 
header_act_fifo
( 

   .dout                   (  header_act_dout      ),
   .rd_en                  (  header_act_rden      ),
   .full                   (),
   .nearly_full            (),
   .prog_full              (  header_act_full      ),
   .empty                  (  header_act_empty     ),

   .din                    (  header_act_din       ),
   .wr_en                  (  header_act_wren      ),
   .reset                  (  ~axi_resetn          ), 
   .clk                    (  axi_aclk             )
);


assign tcam_entry_en = (flow_table_config[0]) ?
                        0 :
                        s_axis_hdr_act_tvalid & ~header_act_full;

assign tcam_entry = header_act_din[HDR_ENTRY_POS+:TCAM_DATA_WIDTH];
assign tcam_sel = header_act_din[HW_TRIG_POS+:1];

reg   [2:0] r_tcam_sel;
always @(posedge axi_aclk)
   if (~axi_resetn)
      r_tcam_sel  <= 0;
   else
      r_tcam_sel  <= {r_tcam_sel[1:0], tcam_sel};

tcam_table_double
#(
   .C_S_AXI_DATA_WIDTH     (  C_S_AXI_DATA_WIDTH         ),
   .TCAM_ADDR_WIDTH        (  TBL_ADDR_WIDTH             ),
   .TCAM_DATA_WIDTH        (  TCAM_DATA_WIDTH            ),
   .TCAM_DUMMY_ENTRY       (  TCAM_DUMMY_ENTRY           )
)
tcam_table_double
(
   .axi_aclk               (  axi_aclk                   ),
   .axi_resetn             (  axi_resetn                 ),
   .tcam_entry_en          (  tcam_entry_en              ),
   .tcam_entry             (  tcam_entry                 ),
   .tcam_sel               (  tcam_sel                   ),
   .flow_buffer_sel        (  flow_buffer_sel            ),
   .tcam_wr_ctrl           (  tcam_wr_ctrl               ),
   .tcam_status            (  tcam_status                ),
   .tcam_addr_wr           (  tcam_addr_wr               ),
   .tcam_wren              (  tcam_wren                  ),
   .tcam_din               (  tcam_din                   ),
   .tcam_din_mask          (  tcam_din_mask              ),
   .tcam_busy              (  tcam_busy                  ),
   .tcam_hit               (  tcam_hit                   ),
   .tcam_miss              (  tcam_miss                  ),
   .tcam_match_result      (  tcam_match_result          ),
   .tcam_match_en          (  tcam_match_en              ),
   .tcam_hit_total         (  tcam_hit_total             ),
   .tcam_miss_total        (  tcam_miss_total            ),
   .tcam_total             (  tcam_total                 ),
   .tcam_flow_stat_clr     (  tcam_flow_stat_clr         ),
   .tcam_stat_clr          (  tcam_stat_clr              ),
   .tcam_stat_addr_rd      (  tcam_stat_addr_rd          ),
   .tcam_stat_rden         (  tcam_stat_rden             ),
   .tcam_stat_data_rd      (  tcam_stat_data_rd          )
);


assign action_tcam_match_en = (flow_table_config[0]) ? 0 : tcam_match_en;
assign action_tcam_miss = tcam_miss;
assign action_tcam_hit = tcam_hit;
assign action_tcam_match_result = tcam_match_result;

assign action_sel = r_tcam_sel[2];

action_table_double
#(
   .C_S_AXI_DATA_WIDTH        (  C_S_AXI_DATA_WIDTH         ),
   .ACT_ADDR_WIDTH            (  TBL_ADDR_WIDTH             ),
   .ACT_TBL_DATA_WIDTH        (  ACT_TBL_DATA_WIDTH         )
)
action_table_double
(
   .axi_aclk                  (  axi_aclk                   ),
   .axi_resetn                (  axi_resetn                 ),
   .action_tcam_match_en      (  action_tcam_match_en       ),
   .action_tcam_miss          (  action_tcam_miss           ),
   .action_tcam_hit           (  action_tcam_hit            ),
   .action_tcam_match_result  (  action_tcam_match_result   ),
   .action_sel                (  action_sel                 ),
   .flow_buffer_sel           (  flow_buffer_sel            ),
   .action_wr_ctrl            (  action_wr_ctrl             ),
   .action_status             (  action_status              ),
   .action_addr_wr            (  action_addr_wr             ),
   .action_wren               (  action_wren                ),
   .action_rden               (  action_rden                ),
   .action_din                (  action_din                 ),
   .action_dout               (  action_dout                ),
   .action_stat_addr_rd       (  action_stat_addr_rd        ),
   .action_stat_rden          (  action_stat_rden           ),
   .action_stat_data_rd       (  action_stat_data_rd        ),
   .action_stat_clr           (  action_stat_clr            ),
   .action_result             (  action_result              ),
   .action_miss               (  action_miss                ),
   .action_hit                (  action_hit                 ),
   .action_result_en          (  action_result_en           )
);


assign action_result_wren = action_result_en;
assign action_result_din = {action_miss, action_hit, action_result};
assign action_result_rden = (flow_table_config[0]) ?
                             1 :
                             ~header_act_empty & ~action_result_empty & m_axis_hdr_act_tready;


fallthrough_small_fifo 
#( 
   .WIDTH                  (  ACT_TBL_DATA_WIDTH+2          ),
   .MAX_DEPTH_BITS         (  4                             )
) 
action_result_fifo
( 

   .dout                   (  action_result_dout            ),
   .rd_en                  (  action_result_rden            ),
   .full                   (),
   .nearly_full            (),
   .prog_full              (  action_result_full            ),
   .empty                  (  action_result_empty           ),

   .din                    (  action_result_din             ), 
   .wr_en                  (  action_result_wren            ), 
   .reset                  (  ~axi_resetn                   ), 
   .clk                    (  axi_aclk                      ) 
);




reg   [HDR_ACT_TDATA_WIDTH-1:0]  r_header_act_update;
always @(*) begin
   r_header_act_update = header_act_dout;

   if (~flow_table_config[1] & action_result_dout[ACT_TBL_DATA_WIDTH]) begin

      r_header_act_update[HDR_ACT_TDATA_WIDTH-ACT_DATA_WIDTH-1+ACT_TBL_DATA_WIDTH+2-1:HDR_ACT_TDATA_WIDTH-ACT_DATA_WIDTH-1] = action_result_dout;
   end
end









assign m_axis_hdr_act_tdata = (flow_table_config[0]) ? header_act_dout : r_header_act_update;
assign m_axis_hdr_act_tuser = header_act_dout[HDR_ACT_TDATA_WIDTH+:HDR_ACT_TUSER_WIDTH];
assign m_axis_hdr_act_tvalid = (flow_table_config[0]) ?
                               ~header_act_empty :
                               ~header_act_empty & ~action_result_empty;

endmodule