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

Subversion Repositories uart2bus_testbench

[/] [uart2bus_testbench/] [trunk/] [tb/] [agent/] [uart_agent.svh] - Blame information for rev 10

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

Line No. Rev Author Line
1 3 HanySalah
//-------------------------------------------------------------------------------------------------
2 2 HanySalah
//
3
//                             UART2BUS VERIFICATION
4
//
5 3 HanySalah
//-------------------------------------------------------------------------------------------------
6 2 HanySalah
// CREATOR    : HANY SALAH
7
// PROJECT    : UART2BUS UVM TEST BENCH
8
// UNIT       : AGENT
9 3 HanySalah
//-------------------------------------------------------------------------------------------------
10 2 HanySalah
// TITLE      : UART AGENT
11
// DESCRIPTION: This
12 3 HanySalah
//-------------------------------------------------------------------------------------------------
13 2 HanySalah
// LOG DETAILS
14
//-------------
15
// VERSION      NAME        DATE        DESCRIPTION
16
//    1       HANY SALAH    10012016    FILE CREATION
17 3 HanySalah
//    2       HANY SALAH    09022016    ADD COVERAGE BLOCK
18
//    3       HANY SALAH    11022016    IMPROVE BLOCK DESCRIPTION & ADD COMMENTS
19
//-------------------------------------------------------------------------------------------------
20
// ALL COPYRIGHTS ARE RESERVED FOR THE PRODUCER ONLY .THIS FILE IS PRODUCED FOR OPENCORES MEMBERS
21
// ONLY AND IT IS PROHIBTED TO USE THIS MATERIAL WITHOUT THE CREATOR'S PERMISSION
22
//-------------------------------------------------------------------------------------------------
23 2 HanySalah
 
24
class uart_agent extends uvm_agent;
25
 
26 3 HanySalah
  // UART Driver
27 2 HanySalah
  uart_driver           _drv;
28
 
29 3 HanySalah
  // UART Sequencer
30 2 HanySalah
  uvm_sequencer#(uart_transaction) _seq;
31
 
32 3 HanySalah
  // UART Monitor
33 2 HanySalah
  uart_monitor          _mon;
34
 
35 3 HanySalah
  // UART Coverage block
36
  uart_coverage         _cov;
37
 
38
  // TLM analysis port that is linked to driver tlm analysis port.
39 2 HanySalah
  uvm_analysis_port #(uart_transaction) drv_port;
40
 
41 3 HanySalah
  // TLM analysis port that is linked to monitor tlm analysis port.
42 2 HanySalah
  uvm_analysis_port #(uart_transaction) mon_port;
43
 
44
  `uvm_component_utils(uart_agent)
45
 
46
  function new (string name,uvm_component parent);
47
    super.new(name,parent);
48
  endfunction:new
49
 
50
 
51
  extern function void build_phase (uvm_phase phase);
52
 
53
  extern function void connect_phase (uvm_phase phase);
54
endclass:uart_agent
55
 
56
function void uart_agent::build_phase (uvm_phase phase);
57
  super.build_phase(phase);
58
  _drv = uart_driver::type_id::create("_drv",this);
59
  _seq = uvm_sequencer#(uart_transaction)::type_id::create("_seq",this);
60
  _mon = uart_monitor::type_id::create("_mon",this);
61 3 HanySalah
  _cov = uart_coverage::type_id::create("_cov",this);
62 2 HanySalah
 
63
  drv_port = new ("drv_port",this);
64
  mon_port = new ("mon_port",this);
65
endfunction:build_phase
66
 
67
function void uart_agent::connect_phase (uvm_phase phase);
68
  super.connect_phase(phase);
69
  _drv.seq_item_port.connect(_seq.seq_item_export);
70
 
71
  _drv.drv_scbd_cov.connect(drv_port);
72
 
73
  _mon.mon_scbd.connect(mon_port);
74 3 HanySalah
  _mon.mon_scbd.connect(_cov.cov_mon);
75 2 HanySalah
endfunction:connect_phase

powered by: WebSVN 2.1.0

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