Configuration

What is the exact purpose of agent configuration and environment configuration? I am not able to understand the purpose of them properly. Could someone please clarify this?

Thank you.

In reply to Muthamizh:

Since the hierarchy of UVM based test bench works from uvm_test_top----> environment----> and then agent(s). If the configuration of environment(means scbd, agent coverage model are available or not) sets in uvm_test_top and similarly configuration of the agent sets in environment; then while executing the building phase(top->down), it is easy to observe, easy to debug because it is organized now. Also, the components are created only if it is required. Plus, we can also include/exclude the components as per requirement.

In reply to sunils:

ok, now i understand the purpose of env configuration. still im not clear about the purpose of agent configuration. We have input fields defined in seq items and the same input fields are in agent configuration also. But the input are given in test cases only through agent configuration. Im not able to see the connection and exact logic.

Could you please explain more clearly?

In reply to Muthamizh:

The testbench whether it is based on any language or methodology, may have different structure. First and foremost, it should correct and meaningful and organized. In the current context we are talking about UVM based bench. In this test bench try to create standard(based on UVM Syntax guidelines and UVM performance guidelines) testbench environment. If it is standard then it is organized by itself. Now, coming to the question, agent configuration sets in environment via config_db and environment configuration sets in test case via config_db. Now when run_test is called then test case configure the environment and then proceed similarly for agent.

In reply to Muthamizh:

What is the exact purpose of agent configuration and environment configuration? I am not able to understand the purpose of them properly. Could someone please clarify this?
Thank you.

Agent configuration allows you to set an agent ‘pasive’ or ‘active’ and you can set the flags ‘check_enable’ and ‘coverage_enable’ as recommended by the UVM User Guide. Of course you can set any class member specified by you.
For the environment the User Guide does not recommend any data members. But of course you can set your own data members here.

In reply to chr_sue:

ya i got it now. Thanks a lot. That was very useful.