Video and Image Processing Suite User Guide

ID 683416
Date 4/04/2022
Public
Document Table of Contents

A.3.12. av_mm_slave_bfm_`SLAVE_NAME

The declaration for the av_mm_slave_bfm_`SLAVE_NAME class:
`define IF_NAME(name)`"name`"
`define create_classname(__prefix, __suffix) __prefix``__suffix
`define AV_MM_SLAVE_CLASSNAME `create_classname(av_mm_slave_bfm_, `SLAVE_NAME)
class `AV_MM_SLAVE_CLASSNAME  #(int ADDR_WIDTH = 32, int BYTE_WIDTH = 4, bit USE_BYTE_ENABLE = 1'b0 );  
Table 110.  Method Calls for av_mm_slave_bfm_`SLAVE_NAME Class
Method Call Description
function new(mailbox #(av_mm_transaction #(ADDR_WIDTH, BYTE_WIDTH, USE_BYTE_ENABLE)) mbox_transaction_out, mailbox #(av_mm_transaction #(ADDR_WIDTH, BYTE_WIDTH, USE_BYTE_ENABLE)) mbox_read_reply_in); Constructor.
function mailbox #(av_mm_transaction #(ADDR_WIDTH, BYTE_WIDTH, USE_BYTE_ENABLE)) get_transaction_mbox_handle(); Returns the transaction_in_mailbox handle, to allow transactions to be sent to the master.
function mailbox #(av_mm_transaction #(ADDR_WIDTH, BYTE_WIDTH, USE_BYTE_ENABLE)) get_read_reply_mbox_handle(); Returns the read_reply_out_mailbox handle, to allow transaction read replies to be returned from the master.
function void set_response_timeout(input int new_response_timeout);
task start(); Starts polling the read_reply_in_mailbox for read data (which is then transferred from the BFM), and then starts polling the BFM command queue for pending commands, which are then posted in the transaction_out_mailbox.
Table 111.  Members of av_mm_slave_bfm_`SLAVE_NAME Class
Member Description
mailbox #(av_mm_transaction #(ADDR_WIDTH, BYTE_WIDTH, USE_BYTE_ENABLE)) transaction_out_mailbox;
mailbox #(av_mm_transaction #(ADDR_WIDTH, BYTE_WIDTH, USE_BYTE_ENABLE)) read_reply_in_mailbox;