The Vivado Design Suite has a feature that each design can have multiple simulation sets according to your settings (AR: 64111 ). Especially, multiple test benches can be constructed for the same design. For example, one test bench provides stimulus for behavioral simulation of a complicated design and a different test bench provides stimulus for timing simulation of the implemented design.
The AXI VIP example design in the 2018.3 release has simulation sets listed in Table: Simulation Sets for AXI VIP . The sim_all_config is a comprehensive simulation set. See the AXI VIP Example Test Bench and Test section for a list of features. It shows different examples of how to use the AXI VIP in a complex method.
For ease of use, 10 additional simulation sets with simple codes are also included in the example design. Naming of these 10 simulation sets:
sim_<basic or adv>_mst_<mode>__pt_<mode>__slv_<mode>
Where mode = active, mem, passive, or combo.
• For Master VIP, it can be in active or passive mode.
° In active mode, it generates transactions and sends it out.
° In passive mode, pass-through VIP is in run-time master mode while master VIP is not active.
• For Slave VIP, it can be in mem, passive, or combo mode.
° In mem mode, it means slave VIP has a memory model.
° In passive mode, pass-through VIP is in run-time slave mode while slave VIP is not active.
° In combo mode, it means slave VIP does not have a memory model.
• For Pass-through VIP, it can be in mst, slv, passive, or mem mode.
° In mst mode, pass-through VIP is in run-time master mode.
° In slv mode, pass-through VIP is in run-time slave mode without a memory model.
° In passive mode, pass-through VIP is not active.
° In mem mode, pass-through VIP is in run-time slave mode with a memory model.
For more information, see Table: Simulation Sets for AXI VIP .
For example, sim_basic_mst_passive__pt_mst__slv_comb means this simulation set is performing a basic feature of the AXI VIP when the AXI master VIP is in passive mode. The AXI pass-through VIP is in the runtime master mode and communicates to the AXI slave VIP which does not include the memory model.
For the 10 simulation set test benches, it includes three files which are generic_tb , master stimulus , and slave stimulus .
• The generic_tb performs a simple self-checking of the master side (can be AXI master VIP or AXI pass-through VIP in runtime master mode) against the slave side (can be AXI slave VIP or AXI pass-through VIP in runtime slave mode).
• Master stimulus is generated by the AXI master VIP or AXI pass-through VIP in the runtime master mode.
• Slave stimulus is generated by the AXI slave VIP or AXI pass-through VIP in the runtime slave mode with/without the memory model. The slave mem stimulus file is included and you can access the file to check the AXI slave VIP with the memory model.
The difference between basic and advanced simulation sets is that the basic simulation set shows the code snippets which are needed in the test bench to use the AXI VIP . Advanced simulation set adds more APIs such as user-configured READY signals which are optional. For more information, see the example design in the Vivado Design Suite and for usage of APIs, see the AXI VIP API Documentation [Ref 12] .
The following shows how to generate a transaction for each mode:
1. To generate a transaction for the AXI master VIP, see the mst_stimulus.sv from any of the 10 simulation sets in Table: Simulation Sets for AXI VIP .
2. To generate a transaction response for a basic AXI slave VIP, see the slv_basic_stimulus.sv from any of the 10 simulation sets in Table: Simulation Sets for AXI VIP . For memory model requirements, see the mem_basic_stimulus.sv .
3. To generate a transaction response for an advanced AXI slave VIP, see the slv_stimulus.sv from any of the 10 simulation sets in Table: Simulation Sets for AXI VIP . For memory model requirements, see the mem_stimulus.sv .
4. To generate a transaction for the AXI pass-through VIP, see the passthrough_mst_stimulus.sv from any of the simulation sets in Table: Simulation Sets for AXI VIP .
5. To generate a transaction response for a basic AXI pass-through VIP, see the passthrough_slv_basic_stimulus.sv from any of the simulation sets in Table: Simulation Sets for AXI VIP . For memory model requirements, see the passthrough_mem_basic_stimulus.sv .
6. To generate a transaction response for an advanced AXI pass-through VIP, see the passthrough_slv_stimulus.sv from any of the simulation sets in Table: Simulation Sets for AXI VIP . For memory model requirements, see the passthrough_mem_stimulus.sv .
7. When you open the AXI VIP example design under the Sources window, it shows 11 simulation sets. You can choose any simulation sets and run simulation or view the source codes of each test bench.
This Figure to This Figure show the basic, advanced, and all configured simulation sets for AXI VIP .
This Figure shows a simulation configuration example in Vivado IDE.