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

Subversion Repositories qaz_libs

[/] [qaz_libs/] [trunk/] [axi4_lib/] [src/] [axi4_if.sv] - Diff between revs 29 and 31

Only display areas with differences | Details | Blame | View Log

Rev 29 Rev 31
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
////                                                              ////
////                                                              ////
//// Copyright (C) 2015 Authors and OPENCORES.ORG                 ////
//// Copyright (C) 2015 Authors and OPENCORES.ORG                 ////
////                                                              ////
////                                                              ////
//// This source file may be used and distributed without         ////
//// This source file may be used and distributed without         ////
//// restriction provided that this copyright statement is not    ////
//// restriction provided that this copyright statement is not    ////
//// removed from the file and that any derivative work contains  ////
//// removed from the file and that any derivative work contains  ////
//// the original copyright notice and the associated disclaimer. ////
//// the original copyright notice and the associated disclaimer. ////
////                                                              ////
////                                                              ////
//// This source file is free software; you can redistribute it   ////
//// This source file is free software; you can redistribute it   ////
//// and/or modify it under the terms of the GNU Lesser General   ////
//// and/or modify it under the terms of the GNU Lesser General   ////
//// Public License as published by the Free Software Foundation; ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any   ////
//// either version 2.1 of the License, or (at your option) any   ////
//// later version.                                               ////
//// later version.                                               ////
////                                                              ////
////                                                              ////
//// This source is distributed in the hope that it will be       ////
//// This source is distributed in the hope that it will be       ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
//// PURPOSE.  See the GNU Lesser General Public License for more ////
//// PURPOSE.  See the GNU Lesser General Public License for more ////
//// details.                                                     ////
//// details.                                                     ////
////                                                              ////
////                                                              ////
//// You should have received a copy of the GNU Lesser General    ////
//// You should have received a copy of the GNU Lesser General    ////
//// Public License along with this source; if not, download it   ////
//// Public License along with this source; if not, download it   ////
//// from http://www.opencores.org/lgpl.shtml                     ////
//// from http://www.opencores.org/lgpl.shtml                     ////
////                                                              ////
////                                                              ////
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
interface
interface
  axi4_if
  axi4_if
  #(
  #(
    A = 32, // address bus width
    A = 32, // address bus width
    N = 8,  // data bus width in bytes
    N = 8,  // data bus width in bytes
    I = 1   // ID width
    I = 1   // ID width
  )
  )
  (
  (
    input           aresetn,
    input           aresetn,
    input           aclk
    input           aclk
  );
  );
 
 
  logic [(A-1):0]    araddr;
  wire [(A-1):0]    araddr;
  logic [1:0]        arburst;
  wire [1:0]        arburst;
  logic [3:0]        arcache;
  wire [3:0]        arcache;
  logic [(I-1):0]    arid;
  wire [(I-1):0]    arid;
  logic [7:0]        arlen;
  wire [7:0]        arlen;
  logic              arlock;
  wire              arlock;
  logic [2:0]        arprot;
  wire [2:0]        arprot;
  logic [3:0]        arqos;
  wire [3:0]        arqos;
  logic              arready;
  wire              arready;
  logic [3:0]        arregion;
  wire [3:0]        arregion;
  logic [2:0]        arsize;
  wire [2:0]        arsize;
  logic              arvalid;
  wire              arvalid;
  logic [(A-1):0]    awaddr;
  wire [(A-1):0]    awaddr;
  logic [1:0]        awburst;
  wire [1:0]        awburst;
  logic [3:0]        awcache;
  wire [3:0]        awcache;
  logic [(I-1):0]    awid;
  wire [(I-1):0]    awid;
  logic [7:0]        awlen;
  wire [7:0]        awlen;
  logic              awlock;
  wire              awlock;
  logic [2:0]        awprot;
  wire [2:0]        awprot;
  logic [3:0]        awqos;
  wire [3:0]        awqos;
  logic              awready;
  wire              awready;
  logic [3:0]        awregion;
  wire [3:0]        awregion;
  logic [2:0]        awsize;
  wire [2:0]        awsize;
  logic              awvalid;
  wire              awvalid;
  logic [(I-1):0]    bid;
  wire [(I-1):0]    bid;
  logic              bready;
  wire              bready;
  logic [1:0]        bresp;
  wire [1:0]        bresp;
  logic              bvalid;
  wire              bvalid;
  logic [(8*N)-1:0]  rdata;
  wire [(8*N)-1:0]  rdata;
  logic [(I-1):0]    rid;
  wire [(I-1):0]    rid;
  logic              rlast;
  wire              rlast;
  logic              rready;
  wire              rready;
  logic [1:0]        rresp;
  wire [1:0]        rresp;
  logic              rvalid;
  wire              rvalid;
  logic [(8*N)-1:0]  wdata;
  wire [(8*N)-1:0]  wdata;
  logic [(I-1):0]    wid;
  wire [(I-1):0]    wid;
  logic              wlast;
  wire              wlast;
  logic              wready;
  wire              wready;
  logic [N-1:0]      wstrb;
  wire [N-1:0]      wstrb;
  logic              wvalid;
  wire              wvalid;
 
 
 
 
 
// --------------------------------------------------------------------
 
// synthesis translate_off
 
  clocking cb_s @(posedge aclk);
 
    input   arid;
 
    input   araddr;
 
    input   arburst;
 
    input   arcache;
 
    input   awid;
 
    input   arlen;
 
    input   arlock;
 
    input   arprot;
 
    input   arqos;
 
    output  arready;
 
    input   arregion;
 
    input   arsize;
 
    input   arvalid;
 
    input   awaddr;
 
    input   awburst;
 
    input   awcache;
 
    input   awlen;
 
    input   awlock;
 
    input   awprot;
 
    input   awqos;
 
    output  awready;
 
    input   awregion;
 
    input   awsize;
 
    input   awvalid;
 
    input   bready;
 
    output  bid;
 
    output  bresp;
 
    output  bvalid;
 
    output  rdata;
 
    output  rid;
 
    output  rlast;
 
    input   rready;
 
    output  rresp;
 
    output  rvalid;
 
    input   wdata;
 
    input   wid;
 
    input   wlast;
 
    output  wready;
 
    input   wstrb;
 
    input   wvalid;
 
    input   aresetn;
 
    input   aclk;
 
  endclocking
 
 
// --------------------------------------------------------------------
  // --------------------------------------------------------------------
//
//
 
  default clocking cb_m @(posedge aclk);
 
    output  arid;
 
    output  araddr;
 
    output  arburst;
 
    output  arcache;
 
    output  awid;
 
    output  arlen;
 
    output  arlock;
 
    output  arprot;
 
    output  arqos;
 
    input   arready;
 
    output  arregion;
 
    output  arsize;
 
    output  arvalid;
 
    output  awaddr;
 
    output  awburst;
 
    output  awcache;
 
    output  awlen;
 
    output  awlock;
 
    output  awprot;
 
    output  awqos;
 
    input   awready;
 
    output  awregion;
 
    output  awsize;
 
    output  awvalid;
 
    output  bready;
 
    input   bid;
 
    input   bresp;
 
    input   bvalid;
 
    input   rdata;
 
    input   rid;
 
    input   rlast;
 
    output  rready;
 
    input   rresp;
 
    input   rvalid;
 
    output  wdata;
 
    output  wid;
 
    output  wlast;
 
    input   wready;
 
    output  wstrb;
 
    output  wvalid;
 
    input   aresetn;
 
    input   aclk;
 
  endclocking
 
// synthesis translate_on
 
// --------------------------------------------------------------------
 
 
endinterface
 
 
 
 
  // --------------------------------------------------------------------
 
  //
 
`ifdef USE_MOD_PORTS
 
  // --------------------------------------------------------------------
 
  //
 
    modport
 
      slave
 
      (
 
// --------------------------------------------------------------------
 
// synthesis translate_off
 
        clocking  cb_s,
 
// synthesis translate_on
 
// --------------------------------------------------------------------
 
        input   arid,
 
        input   araddr,
 
        input   arburst,
 
        input   arcache,
 
        input   awid,
 
        input   arlen,
 
        input   arlock,
 
        input   arprot,
 
        input   arqos,
 
        output  arready,
 
        input   arregion,
 
        input   arsize,
 
        input   arvalid,
 
        input   awaddr,
 
        input   awburst,
 
        input   awcache,
 
        input   awlen,
 
        input   awlock,
 
        input   awprot,
 
        input   awqos,
 
        output  awready,
 
        input   awregion,
 
        input   awsize,
 
        input   awvalid,
 
        input   bready,
 
        output  bid,
 
        output  bresp,
 
        output  bvalid,
 
        output  rdata,
 
        output  rid,
 
        output  rlast,
 
        input   rready,
 
        output  rresp,
 
        output  rvalid,
 
        input   wdata,
 
        input   wid,
 
        input   wlast,
 
        output  wready,
 
        input   wstrb,
 
        input   wvalid,
 
        input   aresetn,
 
        input   aclk
 
      );
 
 
 
 
 
  // --------------------------------------------------------------------
 
  //
 
    modport
 
      master
 
      (
 
// --------------------------------------------------------------------
 
// synthesis translate_off
 
        clocking  cb_m,
 
// synthesis translate_on
 
// --------------------------------------------------------------------
 
        output  arid,
 
        output  araddr,
 
        output  arburst,
 
        output  arcache,
 
        output  awid,
 
        output  arlen,
 
        output  arlock,
 
        output  arprot,
 
        output  arqos,
 
        input   arready,
 
        output  arregion,
 
        output  arsize,
 
        output  arvalid,
 
        output  awaddr,
 
        output  awburst,
 
        output  awcache,
 
        output  awlen,
 
        output  awlock,
 
        output  awprot,
 
        output  awqos,
 
        input   awready,
 
        output  awregion,
 
        output  awsize,
 
        output  awvalid,
 
        output  bready,
 
        input   bid,
 
        input   bresp,
 
        input   bvalid,
 
        input   rdata,
 
        input   rid,
 
        input   rlast,
 
        output  rready,
 
        input   rresp,
 
        input   rvalid,
 
        output  wdata,
 
        output  wlast,
 
        input   wready,
 
        output  wstrb,
 
        output  wvalid,
 
        input   aresetn,
 
        input   aclk
 
      );
 
`endif
 
 
 
 
 
// --------------------------------------------------------------------
 
// synthesis translate_off
 
  task
 
    zero_cycle_delay;
 
 
 
    ##0;
 
 
 
  endtask: zero_cycle_delay
 
// synthesis translate_on
 
// --------------------------------------------------------------------
 
 
 
 
 
// --------------------------------------------------------------------
 
//
 
 
 
endinterface
 
 
 
 

powered by: WebSVN 2.1.0

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