Ver código fonte

Upload files to ''

main
pooja_das 4 meses atrás
pai
commit
d62e5948b5
3 arquivos alterados com 75 adições e 0 exclusões
  1. +22
    -0
      axi_agent.sv
  2. +12
    -0
      axi_env.sv
  3. +41
    -0
      top.sv

+ 22
- 0
axi_agent.sv Ver arquivo

@@ -0,0 +1,22 @@
class axi_agent extends uvm_agent;
axi_drv drv;
axi_sqr sqr;
axi_mon mon;
axi_cov cov;
`uvm_component_utils_begin(axi_agent)// factory registration
`NEW_COMP
function void build_phase(uvm_phase phase);
super.build_phase(phase);
mon = axi_mon::type_id::create("mon", this);
drv =axi_drv::type_id::create("drv", this);// creating from factory
sqr = axi_sqr::type_id::create("sqr", this);
cov = axi_cov::type_id::create("cov", this);
end
endfunction
function void connect_phase(uvm_phase phase);
drv.seq_item_port.connect(sqr.seq_item_export);
mon.ap_port.connect(cov.analysis_export);
end
endfunction
endclass

+ 12
- 0
axi_env.sv Ver arquivo

@@ -0,0 +1,12 @@
class axi_env extends uvm_env;
axi_agent magent;
`uvm_component_utils(axi_env);// factory registration
`NEW_COMP
function void build_phase(uvm_phase phase);
super.build_phase(phase);
magent = axi_agent::type_id::create("magent", this);
uvm_config_db#(int)::set(this, "magent", "mst_slv_f", `MSTR);
endfunction
endclass

+ 41
- 0
top.sv Ver arquivo

@@ -0,0 +1,41 @@
`include "uvm_pkg.sv"
import uvm_pkg ::*;
`include "uvm_macros.svh"
`define WIDTH 32
`define DEPTH 64
`define ADDR_WIDTH $clog2(`DEPTH)
`include "axi_tx.sv"
`include "axi_seq_lib.sv"
`include "axi_sqr.sv"
`include "axi_drv.sv"
`include "axi_mon.sv"
`include "axi_cov.sv"
`include "axi_agent.sv"
`include "axi_env.sv"
module top;
reg clk, rst;
axi_intf pif(clk,rst);
axi_env env = new();
initial begin
clk = 0;
forever #5 clk = ~clk;
end
initial begin
rst = 1;
repeat(2) @(posedge clk);
rst = 0;
// #1000;
// $finish;
end
initial begin
run_test("axi_wr_rd_test");
end
//initial begin
// $dumpvars();
// $dumpfile("1.vcd");
//end
endmodule

Carregando…
Cancelar
Salvar