OpenCores
URL https://opencores.org/ocsvn/qaz_libs/qaz_libs/trunk

Subversion Repositories qaz_libs

[/] [qaz_libs/] [trunk/] [axi4_stream_lib/] [src/] [axis_if.sv] - Blame information for rev 38

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 23 qaztronic
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
//// Copyright (C) 2015 Authors and OPENCORES.ORG                 ////
4
////                                                              ////
5
//// This source file may be used and distributed without         ////
6
//// restriction provided that this copyright statement is not    ////
7
//// removed from the file and that any derivative work contains  ////
8
//// the original copyright notice and the associated disclaimer. ////
9
////                                                              ////
10
//// This source file is free software; you can redistribute it   ////
11
//// and/or modify it under the terms of the GNU Lesser General   ////
12
//// Public License as published by the Free Software Foundation; ////
13
//// either version 2.1 of the License, or (at your option) any   ////
14
//// later version.                                               ////
15
////                                                              ////
16
//// This source is distributed in the hope that it will be       ////
17
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
18
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
19
//// PURPOSE.  See the GNU Lesser General Public License for more ////
20
//// details.                                                     ////
21
////                                                              ////
22
//// You should have received a copy of the GNU Lesser General    ////
23
//// Public License along with this source; if not, download it   ////
24
//// from http://www.opencores.org/lgpl.shtml                     ////
25
////                                                              ////
26
//////////////////////////////////////////////////////////////////////
27
 
28
 
29
interface
30
  axis_if
31
  #(
32 35 qaztronic
    N,  // data bus width in bytes
33 23 qaztronic
    I = 1,  // TID width
34
    D = 1,  // TDEST width
35
    U = 1   // TUSER width
36
  )
37
  (
38
    input             aclk,
39
    input             aresetn
40
  );
41 31 qaztronic
  wire              tvalid;
42
  wire              tready;
43
  wire  [(8*N)-1:0] tdata;
44
  wire  [N-1:0]     tstrb;
45
  wire  [N-1:0]     tkeep;
46
  wire              tlast;
47
  wire  [I-1:0]     tid;
48
  wire  [D-1:0]     tdest;
49
  wire  [U-1:0]     tuser;
50 23 qaztronic
 
51
 
52 31 qaztronic
// --------------------------------------------------------------------
53
// synthesis translate_off
54
  default clocking cb_m @(posedge aclk iff aresetn);
55
    output  tvalid;
56
    input   tready;
57
    output  tdata;
58
    output  tstrb;
59
    output  tkeep;
60
    output  tlast;
61
    output  tid;
62
    output  tdest;
63
    output  tuser;
64
  endclocking
65 23 qaztronic
 
66
 
67 31 qaztronic
  // --------------------------------------------------------------------
68
  //
69
  clocking cb_s @(posedge aclk iff aresetn);
70
    input   tvalid;
71
    output  tready;
72
    input   tdata;
73
    input   tstrb;
74
    input   tkeep;
75
    input   tlast;
76
    input   tid;
77
    input   tdest;
78
    input   tuser;
79
  endclocking
80
// synthesis translate_on
81
// --------------------------------------------------------------------
82 23 qaztronic
 
83
 
84 31 qaztronic
  // --------------------------------------------------------------------
85
  //
86
`ifdef USE_MOD_PORTS
87 23 qaztronic
    modport
88
      master
89
      (
90 31 qaztronic
// --------------------------------------------------------------------
91
// synthesis translate_off
92
          clocking  cb_m,
93
// synthesis translate_on
94
// --------------------------------------------------------------------
95 23 qaztronic
        input     aresetn,
96
        input     aclk,
97
        output    tvalid,
98
        input     tready,
99
        output    tdata,
100
        output    tstrb,
101
        output    tkeep,
102
        output    tlast,
103
        output    tid,
104
        output    tdest,
105 31 qaztronic
        output    tuser
106 23 qaztronic
      );
107
 
108
 
109
    // --------------------------------------------------------------------
110
    //
111
    modport
112
      slave
113
      (
114 31 qaztronic
// --------------------------------------------------------------------
115
// synthesis translate_off
116
          clocking  cb_s,
117
// synthesis translate_on
118
// --------------------------------------------------------------------
119 23 qaztronic
        input     aresetn,
120
        input     aclk,
121
        input     tvalid,
122
        output    tready,
123
        input     tdata,
124
        input     tstrb,
125
        input     tkeep,
126
        input     tlast,
127
        input     tid,
128
        input     tdest,
129 31 qaztronic
        input     tuser
130 23 qaztronic
      );
131 31 qaztronic
`endif
132 23 qaztronic
 
133
 
134 31 qaztronic
// --------------------------------------------------------------------
135
// synthesis translate_off
136
  task
137
    zero_cycle_delay;
138
 
139
    ##0;
140
 
141
  endtask: zero_cycle_delay
142
// synthesis translate_on
143
// --------------------------------------------------------------------
144
 
145
 
146
// --------------------------------------------------------------------
147
//
148 23 qaztronic
endinterface: axis_if
149
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.