Altera Mentor Verification IP Altera Edition AMBA AXI3/4T Uživatelský manuál Strana 67

  • Stažení
  • Přidat do mých příruček
  • Tisk
  • Strana
    / 783
  • Tabulka s obsahem
  • KNIHY
  • Hodnocené. / 5. Na základě hodnocení zákazníků
Zobrazit stránku 66
SystemVerilog AXI3 and AXI4 Master BFMs
execute_transaction()
Mentor VIP AE AXI3/4 User Guide, V10.2b
49
September 2013
execute_transaction()
This task executes a master transaction previously created by the create_write_transaction(), or
create_read_transaction(), functions. The transaction can be blocking (default) or non-
blocking, defined by the transaction record operation_mode field.
The results of execute_transaction() for write transactions varies based on how write transaction
fields are set. If the gen_write_strobes transaction field is set, execute_transaction()
automatically corrects any previously set write_strobes. However, if the gen_write_strobes
field is not set, then any previously assigned write_strobes will be passed through onto the
WSTRB protocol signals, which can result in a protocol violation if not correctly set. Refer to
“Automatic Correction of Byte Lane Strobes” on page 197 for more details.
If a write transaction write_data_mode field is set to *_DATA_WITH_ADDRESS,
execute_transaction() calls the execute_write_addr_phase() and execute_write_data_burst()
tasks simultaneously, otherwise execute_write_data_burst() will be called after
execute_write_addr_phase() so that the write data burst occurs after the write address phase
(default). It will then call the get_write_response_phase() task to complete the write transaction.
For a read transaction, execute_transaction() calls the execute_read_addr_phase() task
followed by the get_read_data_burst() task to complete the read transaction.
AXI3 Example
// Declare a local variable to hold the transaction record.
axi_transaction read_trans;
// Create a read transaction with start address of 0 and assign
// it to the local read_trans variable.
read_trans = bfm.create_read_transaction(0);
....
// Execute the read_trans transaction.
bfm.execute_transaction(read_trans);
Prototype
// * = axi | axi4
task automatic execute_transaction
(
*_transaction trans
);
Arguments trans The *_transaction record.
Returns
None
Zobrazit stránku 66
1 2 ... 62 63 64 65 66 67 68 69 70 71 72 ... 782 783

Komentáře k této Příručce

Žádné komentáře