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

  • 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 157
Mentor VIP AE AXI3/4 User Guide, V10.2b
140
SystemVerilog Tutorials
Verifying a Slave DUT
September 2013
The read data is obtained by calling the get_data_words() function to get the data_words[0]
transaction field value. The result of the read data is compared with the expected data—and a
message displays the transcript.
Example 6-3. Read Transaction Creation and Execution
// Read data from address 1.
trans = bfm.create_read_transaction(1);
trans.set_size(AXI_BYTES_1);
trans.set_id(1);
bfm.execute_transaction(trans);
if (trans.get_data_words(0) == 32'h0000_0100)
$display ( "@ %t, master_test_program: Read correct data (1) at
address (1)", $time);
else
$display ( "@ %t master_test_program: Error: Expected data (1) at
address 1, but got %d", $time, trans.get_data_words(0));
In the complete Master Test Program, three subsequent read transactions are created and
executed in a similar manner to that shown in Example 6-3. See the SystemVerilog AXI3
Master BFM Test Program listing for details.
Write Burst Transaction Creation and Execution
The code excerpt in Example 6-4 calls the create_write_transaction() function to create a write
burst transaction, trans, by providing the start address and burst length arguments. The actual
length of the burst on the protocol signals is 7+1=8.
Note
The burst length argument passed to the create_write_transaction() function is 1 less than
the number of transfers (beats) in the burst. This aligns the burst length argument value
with the value placed on the AWLEN protocol signals.
The set_data_words() function is then called eight times to set the data_words field of the write
transaction for each beat of the data burst. For this write transaction, all data byte lanes contain
valid data on each beat of the data burst, therefore a ‘for loop’ calls the set_write_strobes()
function to set the write_strobes fields of the transaction to 4’b1111 for each beat of the burst.
Zobrazit stránku 157
1 2 ... 153 154 155 156 157 158 159 160 161 162 163 ... 782 783

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

Žádné komentáře