Properties and Property Sets

This training page describes how to add Properties and Property Sets and how to set the value of a new Property on an IP.

Properties and Property Sets

Properties are typed fields that can be used to extend the IP data model beyond the built in fields that all IPs track (name, resources, etc). Property Sets are groups of properties that can be added or removed from IPs. Once a Property is added to an IP via a Property set its value can be set and tracked with the IP.

Properties and Property Sets are created by administrators, Property Sets can be attached to IPs by users with owner permissions, and property values can be set by users with write Permission. 

Typical examples of values tracked with Properties include licensing information, process node, IP lifecycle state, product numbers, and business group information. Other examples are power dissipation targets, area estimates, configurable parameters etc. 

Detailed information on Properties and Property Sets is available on the Properties page in the User Guide.

Creating a new Property

Let's go through the process of creating a Property and adding it to an IP via a Property Set.

Administrator Status

Only administrators can create and configure Properties and Property Sets. Owners can attach Property Sets to an IP, Write permission is required to set the Property values on the IP.

First we need to create the Property

Creating a Property
> pi prop add offset

 
and fill out the resulting template:
 
[PROPERTY]
# The name of the property may be any Unicode string and is required.
name = offset

# The type of the property value may be any one of string, integer, float,
# boolean, datetime or choice. The type field is required.
value_type = float

# The type of object the property may be applied to. Must be either IP or IPV.
target_type = IPV 

# An optional description of the property.
description = offset of IP 

# The Icon is optional.
icon = 

# The units of the property value e.g. W, A, m, J, Ω. To ensure consistency with
# other definitions, use the standard symbol for SI units, not the name (e.g.
# use "T", not "tesla"). Required for dimensional numerical properties, blank
# for dimensionless ones.
suffix = 

# Normally IPV properties do not propagate from version to version. If this
# is an IPV property and you would like its value to propagate then set the
# following to True. If left unset then it is assumed to be False.
propagate_value = True

# The default value of the property.
default_value = 

# A space separated list of choices for type=choice is required, prohibited
# otherwise. If any choices contain spaces then they must all be quoted, e.g.
# choices = "Choice one" "Choice two" "Last Choice"# Lists may be continued on to multiple lines if the continuation lines begin
# with a space.
choice_values = 

# Allow selection of multiple values. Applicable to "Choice" type only. Default is "false"multi_choice = 

Successfully created Property 'offset'.

Now we can list the Properties in the system

Listing Properties in the System
> pi prop list 
┌──────────────┬────────┬─────────┬───────────┬────────────────┐
│ NAME         │ TARGET │ TYPE    │ SUFFIX    │ DESCRIPTION    │
╞══════════════╪════════╪═════════╪═══════════╪════════════════╡
│ coverage     │ IPV    │ float   │ %         │ Coverage       │
│ jitter       │ IPV    │ float   │           │ Jitter         │
│ loop_bw      │ IPV    │ float   │ Hz        │ Loop bandwidth │
│ offset       │ IPV    │ float   │           │ offset of IP   │
│ power        │ IPV    │ float   │ mW        │ Measured power │
│ regr         │ IPV    │ integer │ /2000     │ Regressions    │
│ settle_time  │ IPV    │ float   │ micro-sec │ Settle time    │
│ size         │ IPV    │ float   │ sq-mm     │ Measured size  │
│ target_power │ IP     │ float   │ mW        │ Target power   │
│ target_size  │ IP     │ float   │ sq-mm     │ Target size    │
└──────────────┴────────┴─────────┴───────────┴────────────────┘
Found 10 matching object(s).

Add a Property to a Property Set

Now that we've created the Property we need to assign it to a Property Set. Lets use the built-in Property Set "global", which is automatically attached to all IPs in Perforce IPLM.

Adding the Property Set Global
> pi propset edit global
 
[PROPERTY_SET]
# The name of the property set may be any Unicode string and is required.
name = global

# An optional description of the property set.
description = Globally applied properties

# The Icon is optional.
icon = 

# A space separated list of property names to include in the property set.
# The list may be continued on to multiple lines if the continuation lines begin
# with a space. IP and IPV Properties can be mixed.
properties = target_power
             power
             regr
             target_size
             coverage
             size
             offset


Successfully edited Property Set 'global'

We could alternatively have created or edited a custom Property Set using "pi propset create <propset_name>"

Set a Property value

Now we can assign the power Property a value and a chose IPV

Assigning a Property Value and Choosing an IPV
> pi ip prop tutorial.t1@1.TRUNK
 
# Properties for IP tutorial.t1
[IP_PROPERTIES]
# Target power
# Default value: 0.5
# Suffix: mW
target_power = 

# Target size
# Default value: 1.0
# Suffix: sq-mm
target_size = 

# Properties for IPV tutorial.t1@1.TRUNK
[IPV_PROPERTIES]
# offset of IP
offset = 1.2

# Measured power
# Default value: 1.0
# Suffix: mW
power = 

# Regressions
# Default value: 100
# Suffix: /2000
regr = 

# Coverage
# Default value: 22.0
# Suffix: %
coverage = 

# Measured size
# Default value: 1.0
# Suffix: sq-mm
size = 
 
Successfully edited IPV 'tutorial.t1@1.TRUNK

Now we can filter the list of IPVs in the system system using a query

Filtering a List of IPVs in the System
> pi ip list -q 'offset < 1.3'
┌─────────────────────┬────┬─────────────┬────────────┬───────────────────────────────┬─────────────────┐
│ NAME                │ DM │ ALIASES     │ CREATED BY │ CREATED ON                    │ VERSION MESSAGE │
╞═════════════════════╪════╪═════════════╪════════════╪═══════════════════════════════╪═════════════════╡
│ tutorial.t1@1.TRUNK │ P4 │ HEAD LATEST │ admin      │ 2020-06-19 10:14:16 -0400 EDT │ hier release    │
└─────────────────────┴────┴─────────────┴────────────┴───────────────────────────────┴─────────────────┘
Found 1 matching object(s).

Managing properties on IPLM Web

Properties and property sets can also be added, configured, and deleted from IPLM Web under the Administration pull down (as an admin user):