env yaml - kashyapp1/github_exp GitHub Wiki
Jtag environment yaml
UVMF Environment Packages
- UVMF uses a separate environment level YAML configuration file to generate the environment level classes.
- The classes for the environment, its configuration, and sequence are included in the generated environment package.
- It can optionally include predictor and scoreboard classes.
- The environment package can be reused when a block level UVMF testbench is being used as part of a subsystem/chip level testbench.
- The environment config file (JTAG_environment.yaml) is covered the more details.
Syntax:
uvmf:
environments:
env_name:
agents:
- initiator_responder: INITIATOR
name: env_name_agent_a
type: env_name_a
- initiator_responder: INITIATOR
name: env_name_agent_b
type: env_name_b
image Snippet:
Fig_1
The snippet shows the UVMF code generator to create an environment with name ‘JTAG_env_pkg’
Tells UVMF code generator to include 1 x Jtag_agent_a and 1 x Jtag_agent_b.
- name defines the instance name
- type is the name of the agent given by the user in the interface YAML configuration file
Analysis_components:
Syntax:
analysis_components:
- name: env_name_pred
parameters: []
type: env_name_predictor
analysis_exports: []
analysis_ports: []
image Snippet:
Fig_2
- Analysis_ports defines UVMF code generator to include a component of type jtag_predictor with instance name jtag_pred.
- This jtag_predictor component has not been defined yet and will be described in a separate YAML configuration file.
- These allow the user to specify analysis exports & ports to add to the environment class, typically implemented when the block level environment is to be utilized within a larger system level UVM testbench.
- We don’t need to specify anything here for the jtag testbench.
Syntax:
config_constraints: []
config_vars: []
existing_library_component: 'True'
hvl_pkg_parameters: []
non_uvmf_components: []
parameters: []
qvip_memory_agents: []
image Snippet:
Fig_3
- These allow the user to specify environment level configuration variables, configuration constraints and parameters for the environment class.
- Parameters specified here can be passed down into any of the instantiated agents or other analysis components.
- We don’t need to specify anything here for the jtag testbench.
Scoreboard
The scoreboards entry allow the user to specify any scoreboard components to be added the environment class.
Here we specify the following for jtag testbench
• Add a scoreboard component with instance name = jtag_sb
• The class type for the scoreboard = uvmf_in_order_scoreboard. This is a UVMF base library component
• We define the transaction class that the scoreboard will operate on to be jtag_transaction
The subenvs entry allows the user to import other pre-generated UVMF environments, thus creating a hierarchical environment.
Typically this is used when importing QVIP UVMF environments or creating a system level UVMF testbench that is reusing block level UVMF environments
We don’t need to specify anything here for the jtag testbench.
Syntax:
scoreboards:
- name: env_name_sb
sb_type: uvmf_in_order_scoreboard
trans_type: env_name_transaction
subenvs: []
image snippet:
Fig_4
TLM_connections
The tlm_connections entry allows the user to specify a point to point connection between 2 ports/exports
- The driver entry is the start point.
- The receiver entry is the end point.
- Validate is checking, it is optional.
Syntax:
tlm_connections:
- driver: env_name_agent_b.monitored_ap
receiver: env_name_pred.env_name_agent_b_ae
validate: 'True'
- driver: env_name_pred.env_name_sb_ap
receiver: env_name_sb.expected_analysis_export
validate: 'True'
- driver: env_name_agent_a.monitored_ap
receiver: env_name_sb.actual_analysis_export
validate: 'True'
image snippet:
Fig_5
- jtag_agent_b : instance name of agent
- monitored_ap : fixed name for analysis port on all UVMF agents
- jtag_pred : instance name of jtag predictor
- jtag_agent_b_ae : fixed name for predictor analysis export
- jtag_pred : instance name of predictor
- jtag_sb_ap : fixed name for analysis port on scoreboard [‘_ap’ added to inst name]
- jtag_sb : instance name of scoreboard
- expected_analysis_export : fixed name for scoreboard ‘expected’ analysis export
- jtag_agent_a : instance name of agent
- monitored_ap : fixed name for analysis port on all UVMF agents
- jtag_sb : instance name of jtag scoreboard
- actual_analysis_export : fixed name for scoreboard ‘actual’ analysis export