blob: 99f0f061ca360eef82554eec1828b2c1df8ab3fe [file] [log] [blame] [edit]
////////////////////////////////////////////////
////s~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~s////
////s www.testbench.in s////
////s s////
////s UVM Tutorial s////
////s s////
////s gopi@testbench.in s////
////s~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~s////
////////////////////////////////////////////////
`ifndef GUARD_INTERFACE
`define GUARD_INTERFACE
//////////////////////////////////////////
// Interface declaration for the memory///
//////////////////////////////////////////
interface mem_interface(input bit clock);
parameter setup_time = 5ns;
parameter hold_time = 3ns;
wire [7:0] mem_data;
wire [1:0] mem_add;
wire mem_en;
wire mem_rd_wr;
clocking cb@(posedge clock);
default input #setup_time output #hold_time;
output mem_data;
output mem_add;
output mem_en;
output mem_rd_wr;
endclocking:cb
modport MEM(clocking cb,input clock);
endinterface :mem_interface
////////////////////////////////////////////
// Interface for the input side of switch.//
// Reset signal is also passed hear. //
////////////////////////////////////////////
interface input_interface(input bit clock);
parameter setup_time = 5ns;
parameter hold_time = 3ns;
wire data_status;
wire [7:0] data_in;
reg reset;
clocking cb@(posedge clock);
default input #setup_time output #hold_time;
output data_status;
output data_in;
endclocking:cb
modport IP(clocking cb,output reset,input clock);
endinterface:input_interface
/////////////////////////////////////////////////
// Interface for the output side of the switch.//
// output_interface is for only one output port//
/////////////////////////////////////////////////
interface output_interface(input bit clock);
parameter setup_time = 5ns;
parameter hold_time = 3ns;
wire [7:0] data_out;
wire ready;
wire read;
clocking cb@(posedge clock);
default input #setup_time output #hold_time;
input data_out;
input ready;
output read;
endclocking:cb
modport OP(clocking cb,input clock);
endinterface:output_interface
//////////////////////////////////////////////////
`endif