Visible to Intel only — GUID: nik1412471825801
Ixiasoft
1. Introduction to Avalon Verification IP Suite
2. Clock Source BFM
3. Reset Source BFM
4. Avalon Interrupt Source and Interrupt Sink BFMs
5. Avalon-MM Master BFM
6. Avalon-MM Slave BFM
7. Avalon-MM Monitor
8. Avalon-ST Source BFM
9. Avalon-ST Sink BFM
10. Avalon-ST Monitor
11. Avalon Streaming Credit Source BFM
12. Avalon Streaming Credit Sink BFM
13. Conduit BFM
14. Tri-State Conduit BFM
15. External Memory BFM
16. Nios II Custom Instruction Master BFM
17. Nios II Custom Instruction Slave BFM
18. Avalon-ST Verilog HDL Testbench
19. Avalon-MM Verilog HDL and VHDL Testbenches
20. Document Revision History
5.4.1. event_all_transactions_complete()
5.4.2. event_command_issued()
5.4.3. event_max_command_queue_size()
5.4.4. event_min_command_queue_size()
5.4.5. event_read_response_complete()
5.4.6. event_response_complete()
5.4.7. event_write_response_complete()
5.4.8. get_command_issued_queue_size()
5.4.9. get_command_pending_queue_size()
5.4.10. get_read_response_queue_size()
5.4.11. get_response_address()
5.4.12. get_response_byte_enable()
5.4.13. get_response_burst_size()
5.4.14. get_response_data()
5.4.15. get_response_latency()
5.4.16. get_response_queue_size()
5.4.17. get_response_read_id()
5.4.18. get_response_read_response()
5.4.19. get_response_request()
5.4.20. get_response_wait_time()
5.4.21. get_response_write_id()
5.4.22. get_write_response_status()
5.4.23. get_write_response_queue_size()
5.4.24. get_version()
5.4.25. init()
5.4.26. pop_response()
5.4.27. push_command()
5.4.28. set_clken()
5.4.29. set_command_address()
5.4.30. set_command_arbiterlock()
5.4.31. set_command_byte_enable()
5.4.32. set_command_burst_count()
5.4.33. set_command_burst_size()
5.4.34. set_command_data()
5.4.35. set_command_debugaccess()
5.4.36. set_command_idle()
5.4.37. set_command_init_latency()
5.4.38. set_command_lock()
5.4.39. set_command_request()
5.4.40. set_command_timeout()
5.4.41. set_command_transaction_id()
5.4.42. set_command_write_response_request()
5.4.43. set_max_command_queue_size()
5.4.44. set_min_command_queue_size()
5.4.45. set_response_timeout()
5.4.46. signal_all_transactions_complete
5.4.47. signal_command_issued
5.4.48. signal_fatal_error
5.4.49. signal_max_command_queue_size
5.4.50. signal_min_command_queue_size
5.4.51. signal_read_response_complete
5.4.52. signal_response_complete
5.4.53. signal_write_response_complete
6.4.1. event_command_received()
6.4.2. event_response_issued()
6.4.3. event_max_response_queue_size()
6.4.4. event_min_response_queue_size()
6.4.5. get_clken()
6.4.6. get_command_address()
6.4.7. get_command_arbiterlock()
6.4.8. get_command_burst_count()
6.4.9. get_command_burst_cycle()
6.4.10. get_command_byte_enable()
6.4.11. get_command_data()
6.4.12. get_command_debugaccess()
6.4.13. get_command_queue_size()
6.4.14. get_command_lock()
6.4.15. get_command_request()
6.4.16. get_command_transaction_id()
6.4.17. get_command_write_response_request()
6.4.18. get_pending_read_latency_cycle()
6.4.19. get_pending_write_latency_cycle()
6.4.20. get_response_queue_size()
6.4.21. vget_slave_bfm_status
6.4.22. get_version()
6.4.23. init()
6.4.24. pop_command()
6.4.25. push_response()
6.4.26. set_command_transaction_mode()
6.4.27. set_interface_wait_time()
6.4.28. vset_max_response_queue_size()
6.4.29. set_min_response_queue_size()
6.4.30. set_read_response_id()
6.4.31. set_read_response_status()
6.4.32. set_response_burst_size()
6.4.33. set_response_data()
6.4.34. set_response_latency()
6.4.35. set_response_request()
6.4.36. set_response_timeout()
6.4.37. set_write_response_id()
6.4.38. set_write_response_status()
6.4.39. signal_command_received()
6.4.40. signal_error_exceed_max_pending_reads
6.4.41. signal_max_response_queue_size
6.4.42. signal_min_command_queue_size
6.4.43. signal_fatal_error
6.4.44. signal_response_issued
7.2.1. set_enable_a_address_align_with_data_width()
7.2.2. set_enable_a_beginbursttransfer_exist()
7.2.3. set_enable_a_beginbursttransfer_legal()
7.2.4. set_enable_a_beginbursttransfer_single_cycle()
7.2.5. set_enable_a_begintransfer_exist()
7.2.6. set_enable_a_begintransfer_legal()
7.2.7. set_enable_a_begintransfer_single_cycle()
7.2.8. set_enable_a_burst_legal()
7.2.9. set_enable_a_byteenable_legal()
7.2.10. set_enable_a_constant_during_burst()
7.2.11. set_enable_a_constant_during_clk_disabled()
7.2.12. set_enable_a_constant_during_waitrequest()
7.2.13. set_enable_a_exclusive_read_write()
7.2.14. set_enable_a_half_cycle_reset_legal()
7.2.15. set_enable_a_less_than_burstcount_max_size()
7.2.16. set_enable_a_less_than_maximumpendingreadtransactions()
7.2.17. set_enable_a_no_readdatavalid_during_reset()
7.2.18. set_enable_a_no_read_during_reset()
7.2.19. set_enable_a_no_write_during_reset()
7.2.20. set_enable_a_readid_sequence()
7.2.21. set_enable_a_read_response_sequence()
7.2.22. set_enable_a_read_response_timeout()
7.2.23. set_enable_a_register_incoming_signals()
7.2.24. set_enable_a_waitrequest_during_reset()
7.2.25. set_enable_a_waitrequest_timeout()
7.2.26. set_enable_a_write_burst_timeout()
7.2.27. set_enable_a_writeid_sequence()
7.2.28. Coverage Group
7.2.29. Transaction Monitoring
7.2.28.1. set_enable_c_b2b_read_read()
7.2.28.2. set_enable_c_b2b_read_write()
7.2.28.3. set_enable_c_b2b_write_read()
7.2.28.4. set_enable_c_b2b_write_write()
7.2.28.5. set_enable_c_continuous_read()
7.2.28.6. set_enable_c_continuous_readdatavalid()
7.2.28.7. set_enable_c_continuous_waitrequest()
7.2.28.8. set_enable_c_continuous_waitrequest_from_idle_to_read()
7.2.28.9. set_enable_c_continuous_waitrequest_from_idle_to_write()
7.2.28.10. set_enable_c_continuous_write()
7.2.28.11. set_enable_c_idle_before_transaction()
7.2.28.12. set_enable_c_idle_in_read_response()
7.2.28.13. set_enable_c_idle_in_write_burst()
7.2.28.14. set_enable_c_pending_read()
7.2.28.15. set_enable_c_read()
7.2.28.16. set_enable_c_read_after_reset()
7.2.28.17. set_enable_c_read_burstcount()
7.2.28.18. set_enable_c_read_byteenable()
7.2.28.19. set_enable_c_read_latency()
7.2.28.20. set_enable_c_read_response()
7.2.28.21. set_enable_c_waitrequest_in_write_burst()
7.2.28.22. set_enable_c_waitrequested_read()
7.2.28.23. set_enable_c_waitrequest_without_command()
7.2.28.24. set_enable_c_waitrequested_write()
7.2.28.25. set_enable_c_write()
7.2.28.26. set_enable_c_write_with_and_without_writeresponserequest()
7.2.28.27. set_enable_c_write_after_reset()
7.2.28.28. set_enable_c_write_burstcount()
7.2.28.29. set_enable_c_write_byteenable()
7.2.28.30. set_enable_c_write_response()
7.2.29.1. event_transaction_fifo_threshold()
7.2.29.2. event_transaction_fifo_overflow()
7.2.29.3. event_command_received()
7.2.29.4. event_read_response_complete()
7.2.29.5. event_write_response_complete()
7.2.29.6. event_response_complete()
7.2.29.7. get_clken()
7.2.29.8. get_version()
7.2.29.9. get_command_address()
7.2.29.10. get_command_arbiterlock()
7.2.29.11. get_command_burst_count()
7.2.29.12. get_command_burst_cycle()
7.2.29.13. get_command_byte_enable()
7.2.29.14. get_command_data()
7.2.29.15. get_command_debugaccess()
7.2.29.16. get_command_issued_queue_size()
7.2.29.17. get_command_queue_size()
7.2.29.18. get_command_lock()
7.2.29.19. get_command_request()
7.2.29.20. get_command_transaction_id()
7.2.29.21. get_command_write_response_request()
7.2.29.22. get_read_response_queue_size()
7.2.29.23. get_response_address()
7.2.29.24. get_response_byte_enable()
7.2.29.25. get_response_burst_size()
7.2.29.26. get_response_data()
7.2.29.27. get_response_latency()
7.2.29.28. get_response_queue_size()
7.2.29.29. get_response_read_id()
7.2.29.30. get_response_read_response()
7.2.29.31. get_response_request()
7.2.29.32. get_response_wait_time()
7.2.29.33. get_response_write_id()
7.2.29.34. get_response_write_response()
7.2.29.35. get_transaction_fifo_max()
7.2.29.36. get_transaction_fifo_threshold()
7.2.29.37. get_write_response_queue_size()
7.2.29.38. init()
7.2.29.39. pop_command()
7.2.29.40. pop_response()
7.2.29.41. set_command_transaction_mode()
7.2.29.42. set_transaction_fifo_max()
7.2.29.43. set_transaction_fifo_threshold()
7.2.29.44. signal_command_received
7.2.29.45. signal_fatal_error
7.2.29.46. signal_read_response_complete
7.2.29.47. signal_response_complete
7.2.29.48. signal_transaction_fifo_overflow
7.2.29.49. signal_transaction_fifo_threshold
7.2.29.50. signal_write_response_complete
8.4.1. event_min_transaction_queue_size()
8.4.2. event_response_done()
8.4.3. event_src_driving_transaction()
8.4.4. event_src_not_ready()
8.4.5. event_src_ready()
8.4.6. event_src_transaction_complete()
8.4.7. get_response_latency()
8.4.8. get_response_queue_size()
8.4.9. get_src_ready()
8.4.10. get_src_transaction_complete()
8.4.11. get_transaction_queue_size()
8.4.12. get_version()
8.4.13. init()
8.4.14. pop_response()
8.4.15. push_transaction()
8.4.16. set_max_transaction_queue_size()
8.4.17. set_min_transaction_queue_size()
8.4.18. set_response_timeout()
8.4.19. set_transaction_channel()
8.4.20. set_transaction_data()
8.4.21. set_transaction_idles()
8.4.22. set_transaction_eop()
8.4.23. set_transaction_empty()
8.4.24. set_transaction_error()
8.4.25. set_transaction_sop()
8.4.26. signal_fatal_error
8.4.27. signal_max_transaction_queue_size
8.4.28. signal_min_transaction_queue_size
8.4.29. signal_response_done
8.4.30. signal_src_driving_transaction
8.4.31. signal_src_not_ready
8.4.32. signal_src_ready
8.4.33. signal_src_transaction_complete
9.4.1. event_sink_ready_assert()
9.4.2. event_sink_ready_deassert()
9.4.3. get_transaction_channel()
9.4.4. get_transaction_data()
9.4.5. get_transaction_idles()
9.4.6. get_transaction_eop()
9.4.7. get_transaction_empty()
9.4.8. get_transaction_error()
9.4.9. get_transaction_queue_size()
9.4.10. get_transaction_sop()
9.4.11. get_version()
9.4.12. init()
9.4.13. pop_transaction()
9.4.14. set_ready()
9.4.15. signal_fatal_error
9.4.16. signal_sink_ready_assert
9.4.17. signal_sink_ready_deassert
9.4.18. signal_transaction_received
10.2.1. set_enable_a_empty_legal()
10.2.2. set_enable_a_less_than_max_channel()
10.2.3. set_enable_a_no_data_outside_packet()
10.2.4. set_enable_a_non_missing_endofpacket()
10.2.5. set_enable_a_non_missing_startofpacket()
10.2.6. set_enable_a_valid_legal()
10.2.7. Coverage Group
10.2.8. Transaction Monitoring
10.2.7.1. set_enable_c_all_idle_beats()
10.2.7.2. set_enable_c_all_valid_beats()
10.2.7.3. set_enable_c_b2b_data_different_channel()
10.2.7.4. set_enable_c_b2b_data_same_channel()
10.2.7.5. set_enable_c_b2b_packet_different_channel()
10.2.7.6. set_enable_c_b2b_packet_in_different_transaction()
10.2.7.7. set_enable_c_b2b_packet_same_channel()
10.2.7.8. set_enable_c_b2b_packet_within_single_cycle()
10.2.7.9. set_enable_c_channel_change_in_packet()
10.2.7.10. set_enable_c_empty()
10.2.7.11. set_enable_c_error()
10.2.7.12. set_enable_c_error_in_middle_of_packet()
10.2.7.13. set_enable_c_idle_beat_between_packet()
10.2.7.14. set_enable_c_multiple_packet_per_cycle()
10.2.7.15. set_enable_c_non_valid_ready()
10.2.7.16. set_enable_c_non_valid_non_ready()
10.2.7.17. set_enable_c_packet()
10.2.7.18. set_enable_c_packet_no_idles_no_back_pressure()
10.2.7.19. set_enable_c_packet_size()
10.2.7.20. set_enable_c_packet_with_back_pressure()
10.2.7.21. set_enable_c_packet_with_idles()
10.2.7.22. set_enable_c_partial_valid_beats()
10.2.7.23. set_enable_c_single_packet_per_cycle()
10.2.7.24. set_enable_c_transfer()
10.2.7.25. set_enable_c_transaction_after_reset()
10.2.7.26. set_enable_c_valid_non_ready()
10.2.8.1. event_transaction_fifo_threshold()
10.2.8.2. event_transaction_fifo_overflow()
10.2.8.3. get_transaction_channel()
10.2.8.4. get_transaction_data()
10.2.8.5. get_transaction_empty()
10.2.8.6. get_transaction_eop()
10.2.8.7. get_transaction_error()
10.2.8.8. get_transaction_fifo_max()
10.2.8.9. get_transaction_fifo_threshold()
10.2.8.10. get_transaction_idles()
10.2.8.11. get_transaction_queue_size()
10.2.8.12. get_transaction_sop()
10.2.8.13. get_version()
10.2.8.14. pop_transaction()
10.2.8.15. set_transaction_fifo_max()
10.2.8.16. set_transaction_fifo_threshold()
10.2.8.17. signal_fatal_error
10.2.8.18. signal_transaction_fifo_overflow
10.2.8.19. signal_transaction_fifo_threshold
10.2.8.20. signal_transaction_received
11.3.1. initialize()
11.3.2. rst()
11.3.3. get_src_transaction_complete()
11.3.4. get_outstanding_credit()
11.3.5. push_transaction()
11.3.6. set_max_transaction_queue_size()
11.3.7. set_min_transaction_queue_size()
11.3.8. set_transaction_data()
11.3.9. set_transaction_channel()
11.3.10. set_transaction_error()
11.3.11. set_transaction_idles()
11.3.12. set_transaction_sop()
11.3.13. set_transaction_eop()
11.3.14. set_transaction_empty()
11.3.15. return_credit()
11.3.16. set_user_signal_per_symbol_data()
11.3.17. push_user_signal_per_symbol_transaction()
11.3.18. set_user_signal_per_packet_data()
11.3.19. push_user_signal_per_packet_transaction()
11.3.20. signal_credit_arrived
11.3.21. signal_fatal_error
11.3.22. signal_src_transaction_complete
11.3.23. signal_src_driving_transaction
11.3.24. signal_max_transaction_queue_size
11.3.25. signal_min_transaction_queue_size
12.3.1. initialize()
12.3.2. rst()
12.3.3. get_outstanding_credit()
12.3.4. get_transaction_idles()
12.3.5. get_transaction_data()
12.3.6. get_transaction_channel()
12.3.7. get_transaction_error()
12.3.8. get_transaction_sop()
12.3.9. get_transaction_eop()
12.3.10. get_transaction_empty()
12.3.11. pop_transaction()
12.3.12. send_credit()
12.3.13. get_user_signal_per_symbol_data()
12.3.14. pop_user_signal_per_symbol_transaction()
12.3.15. get_user_signal_per_packet_data()
12.3.16. pop_user_signal_per_packet_transaction()
12.3.17. signal_fatal_error
12.3.18. signal_has_max_credits
12.3.19. signal_transaction_received
14.2.1. event_interface_granted()
14.2.2. event_grant_deasserted_while_request_remain_asserted
14.2.3. event_max_transaction_queue_size()
14.2.4. event_min_transaction_queue_size()
14.2.5. get_input_transaction_queue_size()
14.2.6. get_output_transaction_queue_size()
14.2.7. get_transaction_<role name>_in()
14.2.8. get_transaction_latency()
14.2.9. get_version()
14.2.10. pop_transaction()
14.2.11. push_transaction()
14.2.12. set_max_transaction_queue_size()
14.2.13. set_min_transaction_queue_size()
14.2.14. set_num_of_transactions()
14.2.15. set_transaction_<role name>_out()
14.2.16. set_transaction_<role name>_outen()
14.2.17. set_transaction_idles()
14.2.18. set_valid_transaction_<role name>_out()
14.2.19. signal_all_transactions_complete
14.2.20. signal_fatal_error
14.2.21. signal_grant_deasserted_while_request_remain_asserted
14.2.22. signal_interface_granted
14.2.23. signal_max_transaction_queue_size
14.2.24. signal_min_transaction_queue_size
16.2.1.1. event_unexpected_result_received()
16.2.1.2. event_instructions_completed()
16.2.1.3. event_max_instruction_queue_size()
16.2.1.4. event_min_instruction_queue_size()
16.2.1.5. event_max_result_queue_size()
16.2.1.6. event_min_result_queue_size()
16.2.1.7. get_instruction_queue_size()
16.2.1.8. get_result_delay()
16.2.1.9. get_result_queue_size()
16.2.1.10. get_result_value()
16.2.1.11. get_version()
16.2.1.12. insert_instruction()
16.2.1.13. pop_result()
16.2.1.14. push_instruction()
16.2.1.15. retrieve_result()
16.2.1.16. set_ci_clk_en()
16.2.1.17. set_clock_enable_timeout()
16.2.1.18. set_instruction_a()
16.2.1.19. set_instruction_b()
16.2.1.20. set_instruction_c()
16.2.1.21. set_instruction_dataa()
16.2.1.22. set_instruction_datab()
16.2.1.23. set_instruction_err_inject()
16.2.1.24. set_instruction_idle()
16.2.1.25. set_instruction_n()
16.2.1.26. set_instruction_readra()
16.2.1.27. set_instruction_readrb()
16.2.1.28. set_instruction_timeout()
16.2.1.29. set_instruction_writerc()
16.2.1.30. set_max_instruction_queue_size()
16.2.1.31. set_max_result_queue_size()
16.2.1.32. set_min_instruction_queue_size()
16.2.1.33. set_min_result_queue_size()
16.2.1.34. set_result_timeout()
16.2.1.35. signal_unexpected_result_received
16.2.1.36. signal_fatal_error
16.2.1.37. signal_instructions_completed
16.2.1.38. signal_instruction_start
16.2.1.39. signal_max_instruction_queue_size
16.2.1.40. signal_max_result_queue_size
16.2.1.41. signal_min_instruction_queue_size
16.2.1.42. signal_min_result_queue_size
16.2.1.43. signal_result_received
17.2.1. event_instruction_inconsistent()
17.2.2. event_instruction_unchanged()
17.2.3. event_result_driven()
17.2.4. event_result_done()
17.2.5. event_unknown_instruction_received()
17.2.6. get_ci_clk_en()
17.2.7. get_instruction_a()
17.2.8. get_instruction_b()
17.2.9. get_instruction_c()
17.2.10. get_instruction_dataa()
17.2.11. get_instruction_datab()
17.2.12. get_instruction_idle()
17.2.13. get_instruction_n()
17.2.14. get_instruction_readra()
17.2.15. get_instruction_readrb()
17.2.16. get_instruction_writerc()
17.2.17. get_version()
17.2.18. insert_result()
17.2.19. retrieve_instruction()
17.2.20. set_clock_enable_timeout()
17.2.21. set_instruction_a()
17.2.22. set_instruction_b()
17.2.23. set_instruction_c()
17.2.24. set_instruction_timeout()
17.2.25. set_result_delay()
17.2.26. set_result_err_inject()
17.2.27. set_result_value()
17.2.28. signal_fatal_error
17.2.29. signal_instructions_inconsistent
17.2.30. signal_known_instruction_received
17.2.31. signal_result_done
17.2.32. signal_result_driven
17.2.33. signal_unknown_instruction_received
Visible to Intel only — GUID: nik1412471825801
Ixiasoft
13. Conduit BFM
You can use Conduit BFMs to verify the following aspects of Avalon Conduit interfaces:
- Port compatibility and polarity
- Legal port widths
Figure 21. Conduit BFM Block Diagram
An Avalon Conduit interface can have an arbitrary number of ports. Conduit ports can have the following characteristics:
- Conduit ports can be an input, output, or bidirectional
- Conduit port widths can range from 1-1024 bits
- Conduit ports have an associated role name. This role name is an arbitrary string. Qsys uses the role name to verify conduit interconnect compatibility between components.
- A conduit port connection is legal when two conduit interconnected components have the same port role names and complementary directions. For example, when an input connects with an output, the connection is legal.
- A conduit port can also have a specific role named export. Ports with this role name are exported from the current system design module to the Conduit BFM module I/O.
The conduit API constructs or deconstructs transactions. Transactions are driven out on the physical conduit interface.
To simulating conduit interfaces, you must understand the following points:
- At the beginning of the simulation, registers that store data sent to the output ports are empty.
- The Conduit BFM drives ‘x’ to the output ports until you rewrite the registers by calling the set_<role name> API.
- Initially, bidirectional ports work as input ports. You can change conduit port functionality by calling the set_<role name>_oe API.
- The Conduit BFM prints a message when a bidirectional port changes from an input to an output, and vice versa.
- Bidirectional ports drive register values to the interface when this API is set to 1. Otherwise, bidirectional ports work as input ports.
- You can call the get_<role name> API to obtain the value coming from the input and bidirectional ports.