summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_output_streamer_pkg.sv
blob: ed0d64f964d60977822aab9a3295ba387d52903e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright 2024 Intel Corporation.
//
// This software and the related documents are Intel copyrighted materials,
// and your use of them is governed by the express license under which they
// were provided to you ("License"). Unless the License provides otherwise,
// you may not use, modify, copy, publish, distribute, disclose or transmit
// this software or the related documents without Intel's prior written
// permission.
//
// This software and the related documents are provided as is, with no express
// or implied warranties, other than those that are expressly stated in the
// License.

// This package keeps all of the arch parameters related to the output streamer
// For now it only includes the config struct

`resetall
`undefineall
package dla_output_streamer_pkg;
  import dla_common_pkg::*;
  `include "dla_output_streamer_config.svh"
   typedef struct {
    int TDATA_WIDTH;              // AXI data width
    int CONFIG_WIDTH;             // typically 32
    int C_VECTOR;                 // architecture c vector
    int FIFO_DEPTH;               // depth of the dc data fifo
    device_family_t DEVICE;       // device
  } output_streamer_arch_t;

  virtual class data_t #(int DATA_WIDTH);
    // Define a packed struct for a single data element with the specified width
    typedef struct packed {
        logic [DATA_WIDTH-1:0] d;
    } t;
  endclass

  virtual class output_streamer_out_data_t #(int WIDTH);
    typedef data_t#(
      .DATA_WIDTH(WIDTH))::t t;
  endclass
endpackage