Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / siu / vera / packets / siu_dmu_packet.vr
// ========== Copyright Header Begin ==========================================
//
// OpenSPARC T2 Processor File: siu_dmu_packet.vr
// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
//
// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// For the avoidance of doubt, and except that if any non-GPL license
// choice is available it will apply instead, Sun elects to use only
// the General Public License version 2 (GPLv2) at this time for any
// software where a choice of GPL license versions is made
// available with the language indicating that GPLv2 or any later version
// may be used, or where a choice of which version of the GPL is applied is
// otherwise unspecified.
//
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// have any questions.
//
// ========== Copyright Header End ============================================
#include "siu_basic_packet.vrh"
#include "siu_delay.vrh"
class siu_dmu_packet extends siu_basic_packet {
// DMU variables
// Packet type: DMU has PIO read, DMA read, Interrupt, DMA write, Flush packet type, for comparison
// we need to simplified these to RDD, WRI, WR8, INT, FLUSH, PIO
reg read; // read bit
reg bmask; // byte mask active bit
reg target; // 1 to L2, 0 to NCU
reg [7:0] be[8]; // byte enable
integer send_delay;
task new(
Siu_Packet_Type type,
reg [15:0] id,
reg [39:0] pa,
reg bypass = 0,
reg posted,
reg target,
reg ue = 0,
reg tout = 0,
reg uce = 0, // un correctable error
reg [63:0] data0 = 64'h0,
reg [63:0] data1 = 64'h0,
reg [63:0] data2 = 64'h0,
reg [63:0] data3 = 64'h0,
reg [63:0] data4 = 64'h0,
reg [63:0] data5 = 64'h0,
reg [63:0] data6 = 64'h0,
reg [63:0] data7 = 64'h0,
reg [7:0] be0 = 8'h0,
reg [7:0] be1 = 8'h0,
reg [7:0] be2 = 8'h0,
reg [7:0] be3 = 8'h0,
reg [7:0] be4 = 8'h0,
reg [7:0] be5 = 8'h0,
reg [7:0] be6 = 8'h0,
reg [7:0] be7 = 8'h0,
integer send_delay = DMU_SEND_DELAY_DEF
);
}
MakeVeraList(siu_dmu_packet);
task siu_dmu_packet::new(
Siu_Packet_Type type,
reg [15:0] id,
reg [39:0] pa,
reg bypass = 0,
reg posted,
reg target,
reg ue = 0,
reg tout = 0,
reg uce = 0, // un correctable error
reg [63:0] data0 = 64'h0,
reg [63:0] data1 = 64'h0,
reg [63:0] data2 = 64'h0,
reg [63:0] data3 = 64'h0,
reg [63:0] data4 = 64'h0,
reg [63:0] data5 = 64'h0,
reg [63:0] data6 = 64'h0,
reg [63:0] data7 = 64'h0,
reg [7:0] be0 = 8'h0,
reg [7:0] be1 = 8'h0,
reg [7:0] be2 = 8'h0,
reg [7:0] be3 = 8'h0,
reg [7:0] be4 = 8'h0,
reg [7:0] be5 = 8'h0,
reg [7:0] be6 = 8'h0,
reg [7:0] be7 = 8'h0,
integer send_delay = DMU_SEND_DELAY_DEF
)
{
super.new(type, id, pa, bypass, posted, ue, tout, uce, data0, data1, data2, data3, data4, data5, data6, data7);
// dmu-siu variables init
this.target = target;
this.tout = tout;
this.uce = uce;
this.be[0] = be0;
this.be[1] = be1;
this.be[2] = be2;
this.be[3] = be3;
this.be[4] = be4;
this.be[5] = be5;
this.be[6] = be6;
this.be[7] = be7;
this.send_delay = send_delay;
}