Home Methodologies AVM Tutorial TLM In AVM
Main Menu
Home
System Verilog
Verilog
Methodologies
    - OVM Tutorial
    - OVM Example
    - UVM
    - VMM
    - VMM RAL
    - VMM Example
    - AVM Tutorial
        -- Introduction
        -- AVM Components
        -- Analysis Port export
        -- TLM In AVM
        -- Analysis Port
        -- TLM Channels
        -- Components
        -- Transaction
        -- Transactor
        -- Environment
        -- Messaging
Open Vera
Digital Concepts
Verification Basics
Protocols
Scripting
Articles
Videos
Interview Questions
Computer Architechture
C and C++
Blog/Article
AsicGuru Blog
Tags Cloud
Ads
Usefull Sites
Know Your IP/Location
Local Information India
Buy Car/Inverter Batteries
Real Estate India
Sports Accessories India
Transaction level modelling in AVM
Share This Articale:

Transaction level Modeling in AVM

  1. Initiator puts/gets transaction to/from a target
    1. Initiator port requires an interface
    2. Target export provides the implementation of the interface
  1. Completion Model can be
    1. blocking or nonblocking
    2. Blocking methods may be tasks
    3. Nonblocking must be functions

TLM Directions :

Unidirectional Dataflow
Choose put, get or peek to move data between Verification Components
P.put(req) ; p.get(rsp); p.peek(rsp);
Bidirectional Dataflow layered on top of unidirectional
put + get for pipelined buses
transport for non pipelined
p.put( req ); OR p.transport( req , rsp );
p.get( rsp );
TLM also has equivalent non blocking APIs for speed

TLM Example :

 

// Example
Class producer;
    put_if put_port;
    task run;
        int ranval;
        for (int i=0; i<10; i++)
        begin
            randval = $random % 100;
            $display(“Producer : sending %d”, randval);
            put_port.put(randval);
        end
Endtask

endclass : producer

 

Class put_if;
    virtual task put ( int val ) ;
    endtask
Endclass : put_if

Class consumer extends put_if;
    virtual task put ( int val ) ;
        $display(“Consumer : received : %d”, val);
    endtask

endclass : consumer


This Articles is written/submitted by puneet (Puneet Aggarwal). You can also contribute to Asicguru.com. Click here to start


Prev << Analysis Port export

Next >> Analysis Port

 
Login/Register
Register
Sign In
Login with :-
gmail-yahoo-twitter-facebook
| | |  
  •  
  • Bookmark
    ADS