Workspace Hierarchy

Each IPV in the workspace must be connected through the resources field of a higher level IPV in the workspace up to the top IP that was used to create the workspace via the pi ip load command. When a workspace is updated or edited new IPVs and their sub-hierarchies can be introduced or removed from the original workspace, which changes the IPV hierarchy in the workspace versus the hierarchy that was originally loaded.

Normally it isn't necessary to focus too closely on the IP Hierarchy underlying the workspace, but in some cases it is helpful to directly view the state of the workspace from an IP Hierarchy perspective.

Workspace Hierarchy Overview

The IP Hierarchy in any given workspace will frequently be different than the IP Hierarchy of the release from which the workspace was originally created. Workspace edits, updates, and new releases of the top or sub IPs in the workspace can all result in a new workspace hierarchy.

An example Workspace IP Hierarchy is shown below.

IP Hierarchy (CIPB) Example
> pi ws tree
tutorial.tutorial@6.TRUNK
├─ ARM.cortex@1.TRUNK
├─ tutorial.CADenv@GOLD.TRUNK [@1]
├─ tutorial.digital_top@2.TRUNK
│ ├─ tutorial.aes512@1.TRUNK
│ ├─ tutorial.clk_mux@1.TRUNK
│ │ └─ tutorial.rxtx@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK
│ ├─ tutorial.cpu@LATEST.TRUNK [@3]
│ │ ├─ tutorial.bist_sram@1.TRUNK
│ │ │ └─ tutorial.gen_dig@1.TRUNK
│ │ ├─ tutorial.gen_dig@1.TRUNK
│ │ └─ tutorial.proj_tech@1.TRUNK
│ ├─ tutorial.dbuf@1.TRUNK
│ │ ├─ tutorial.bist_sram@1.TRUNK
│ │ │ └─ tutorial.gen_dig@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK
│ ├─ tutorial.events_if@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK
│ ├─ tutorial.rxtx@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK
│ ├─ tutorial.sys_bus@1.TRUNK
│ │ ├─ tutorial.gen_dig@1.TRUNK
│ │ └─ tutorial.rxtx@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK
│ ├─ tutorial.t0@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK
│ ├─ tutorial.t1@1.TRUNK
│ │ ├─ tutorial.bist_sram@1.TRUNK
│ │ │ └─ tutorial.gen_dig@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK
│ ├─ tutorial.timers@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK
│ └─ tutorial.tool_cert@LATEST.TRUNK [@0]
│ └─ certification.ibm_rqm@0.RQM_6_0_5
├─ tutorial.fusa@LATEST.TRUNK [@0]
│ ├─ tutorial.tutorial_IEC61508@1.TRUNK
│ └─ tutorial.tutorial_ISO26262@1.TRUNK
├─ tutorial.padring@3.TRUNK
│ ├─ tutorial.MS90G@1.TRUNK
│ ├─ tutorial.io5v@1.TRUNK
│ └─ tutorial.io_tsmc18@1.TRUNK
└─ tutorial.verif_config@1.TRUNK

Viewing Workspace IP Hierarchy on IPLM CLI

The current Workspace IP Hierarchy can be reported using the 'pi ws tree' command.

Command Line

The Workspace IP Hierarchy can be viewed in IPLM CLI using the 'pi ws tree' command.

pi ip tree Command
> pi ws tree -h
Usage: pi workspace tree [-h] [--format {tree,json}]
                         [--wsdir WSDIR | --id uuid] [--list-new]
                         [identifier]

Description: Display the hierarchy of the specified IPV.

Positional arguments:
    identifier            Optional Identifier of the IPV. Default is the
                          workspace top IPV

Optional arguments:
    --format {tree,json}   Return the results in the specified format. Default is
                           tree.
    --id uuid, -id uuid    UUID of the Workspace to be used.
    --list-new             For each resource, list aliased IPVs newer than the
                           version used in the workspace tree.
    --wsdir WSDIR, -ws WSDIR
                           The Workspace directory. If not specified, the current
                           directory should be a Workspace directory.
    -h, --help Show this help message and exit

Configuring the Output Format

Perforce IPLM can display the tree output in different formats

Command Option Format Description
--format tree The default format option, a hierarchical display of the workspace hierarchy in tree format.
json Display the workspace tree in json format. Note that the Perforce IPLM API should be used for scripting purposes.

Choosing the Workspace tree to display

If the command is run from inside a workspace directory, the current workspace is assumed. From outside a workspace, a particular workspace can be selected by UUID or directory.

Command Option Description
--id uuid The uuid of the workspace for which the tree should be displayed
--wsdir WSDIR The directory (WSDIR) of the workspace for which the tree should be displayed 

Finding new Resource Versions 

Command Option Description
--list-new

Display a focused version of the workspace IPV hierarchy showing aliased IPV resources that are newer than the versions in the released hierarchy.

Pi WS Tree --list-new Example

'pi ws tree --list-new' output:

pi ip tree --list-new Example
> pi ws tree --list-new
tutorial.tutorial@6.TRUNK
├─ ARM.cortex@1.TRUNK → @5 [GOLD], @6 [LATEST]
├─ tutorial.CADenv@GOLD.TRUNK [@1] → @3 [LATEST]
├─ tutorial.digital_top@2.TRUNK
│ ├─ tutorial.clk_mux@1.TRUNK
│ │ └─ tutorial.rxtx@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST]
│ ├─ tutorial.cpu@LATEST.TRUNK [@3]
│ │ ├─ tutorial.bist_sram@1.TRUNK
│ │ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST]
│ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST]
│ ├─ tutorial.dbuf@1.TRUNK
│ │ ├─ tutorial.bist_sram@1.TRUNK
│ │ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST]
│ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST]
│ ├─ tutorial.events_if@1.TRUNK
│ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST]
│ └─ tutorial.flash@1.TRUNK
│   └─ tutorial.flash_if@1.TRUNK → @2 [LATEST]
│     └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST]
├─ tutorial.padring@3.TRUNK → @6 [LATEST]
│ ├─ tutorial.io5v@1.TRUNK → @5 [LATEST]
│ └─ tutorial.io_tsmc18@1.TRUNK → @5 [LATEST]
└─ tutorial.verif_config@1.TRUNK → @5 [LATEST]

The --list-new argument of 'pi ws tree' displays aliased versions of workspace IP resources that are at a later version than those currently in the workspace. This is a key method to find new versions that might be candidates for inclusion in new releases of the top level tree. These new, aliased versions of existing resources can either be added directly to the tree via server side edit commands (via IPLM Web or IPLM CLI), updated into workspaces or edited into the workspace, and then verified before making a new release.

This command is frequently used by Integrators and users looking for the latest qualified versions of the IPVs in their workspaces.