0% found this document useful (0 votes)
9 views

ICCII 2019.03 Data Model Update Training Part4

Uploaded by

Savan Mandora
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

ICCII 2019.03 Data Model Update Training Part4

Uploaded by

Savan Mandora
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

IC Compiler II Update Training

Data Model

Version O-2018.06-SP2, O-2018.06-SP4, and P-2019.03


March, 2019
CONFIDENTIAL INFORMATION
The information contained in this presentation is the confidential and proprietary
information of Synopsys. You are not permitted to disseminate or use any of
the information provided to you in this presentation outside of Synopsys
without prior written authorization.

IMPORTANT NOTICE
In the event information in this presentation reflects Synopsys’ future plans, such plans
are as of the date of this presentation and are subject to change. Synopsys is not
obligated to update this presentation or develop the products with the features and
functionality discussed in this presentation. Additionally, Synopsys’ services and products
may only be offered and purchased pursuant to an authorized quote and purchase order
or a mutually agreed upon written contract with Synopsys.

© 2019 Synopsys, Inc. 2


Data Model Enhancements
(O-2018.06-SP2, O-2018.06-SP4, and P-2019.03)

Database Management Design and Tech Data Tcl Interfaces


• Analog Pin Related Improvement (O-2018.06-SP2) • Shaping Constraints (O-2018.06-SP2)
• Virtual Interface Blocks (VIB) for 3DIC (O-2018.06-SP2) • report_unbound Support for Missing Layers/Purpose
• Via Matrix Support (O-2018.06-SP4) (O-2018.06-SP2)
• Voltage Area Rule Hierarchy Options (O-2018.06-SP4) • Netlist Checking Enhancements (O-2018.06-SP4)
• Rule Based Name Matching (O-2018.06-SP4)
• Application Option Tcl Command Enhancements
Data Import and Export (O-2018.06-SP4)
• Instance-Specific Mask Shapes during Stream Out • Placement Attractions Support (P-2019.03)
(O-2018.06-SP2) • Supernet Enhancements (P-2019.03)
• Writing Routing Constraints (O-2018.06-SP4) • Usage Support for n-D Buses (P-2019.03)
• write_def Support for Physical Hierarchy Traversal • Message/Logfile Unification (P-2019.03)
(O-2018.06-SP4) • Label-Based Linking (P-2019.03)
• PMJ Via Ladder Support in Read/Write DEF (P-2019.03) • Identifying Computing Environment Issues (P-2019.03)
• Read/Write Verilog Support for n-D Buses (P-2019.03)

© 2019 Synopsys, Inc. 3


Design and Tech Data Tcl Interfaces (data query, editing)
• Shaping Constraints (O-2018.06-SP2) • Placement Attractions Support (P-2019.03)
• report_unbound Support for Missing Layers/Purpose • Supernet Enhancements (P-2019.03)
(O-2018.06-SP2) • Message/Logfile Unification (P-2019.03)
• Netlist Checking Enhancements (O-2018.06-SP4) • Label-Based Linking (P-2019.03)
• Rule-Based Name Matching (O-2018.06-SP4) • Identifying Computing Environment Issues
• Application Option Tcl Command Enhancements (P-2019.03)
(O-2018.06-SP4)

© 2019 Synopsys, Inc. 4


Placement Attractions Support (P-2019.03)

© 2019 Synopsys, Inc. 5


Placement Attractions
Overview

• Advanced placement technology needs to support new placement constraints using a bound-
like object that contains cells with a similar placement location.

• This project introduces a new object to model the placement attraction.


‒ The new first class object, placement_attractions, is a block-scoped object that has the
standard NDM persistency, notification, and undo/redo functionality.

© 2019 Synopsys, Inc. 6


Placement Attractions
Commands and UI

• New object: placement_attractions


• New attribute: placement_attractions in cell object type
• New commands:
‒ create_placement_attraction
‒ remove_placement_attraction
‒ get_placement_attractions
‒ report_placement_attractions
‒ add_to_placement_attraction
‒ remove_from_placement_attraction
For more detail of these commands, see the man pages.

© 2019 Synopsys, Inc. 7


Placement Attractions
Commands and UI

• Changed Commands:
⁻ get_cells
o The -of_objects option accepts the new placement_attractions object type. The command returns all cells
that are explicit members of a given placement attraction collection.
⁻ get_objects_by_location
o The command returns placement attractions that have a defined region that meets the search criteria.

© 2019 Synopsys, Inc. 8


Supernet Enhancements (P-2019.03)

© 2019 Synopsys, Inc. 9


Supernet Enhancements
Overview

• Supernets are a collection of flat nets that are connected through buffers and
inverters (repeaters)
• Starting in the P-2019.03 release, the following enhancements have been
added to support supernets:
– Supernets can now be created between two anchor points
– You can query all the transparent cells between the starting and stopping anchor using the
name of the supernet and report the list of nets, ports, and cells from the starting anchor to
the stopping anchor
– Supernet creation is enhanced to stop tracing when it hits a tied-off connection with the
following type of nets: tie_high, tie_low, power, or ground

© 2019 Synopsys, Inc. 10


Supernet Enhancements
User Interface

• To support supernet creation between two anchor points, the create_supernet command is
enhanced with the following new options:
create_supernet
[-start pin_or_port]
[-stop pin_or_port]

• The following example creates a supernet where A1 is the starting anchor and B1 is the
stopping anchor:

prompt> create_supernet -start A1 -stop B1

© 2019 Synopsys, Inc. 11


Supernet Enhancements
Example

• Supernet creation stops tracing when it encounters the following types of nets: tie_high,
tie_low, power, or ground and does not include that net in the supernet

• Currently, when creating supernets, flat nets also include


the tie_high and tie_low nets. In this example, net i2 is a
tie_high net and all other nets are signal nets.
create_supernet [get_pins u1/u20] –name SN1
{i1, u1/i1}, {u1/n1, u1/u21/i1}, {u1/u21/o1, u1/o1, o }
create_supernet [get_pins u2/u20] –name SN2
{i2, u2/i1}, {u2/n1, u2/u21/i1}, {u2/u21/o1, u2/o1, o1}
• Starting with version P-2019.03, since i2 has net type of
tie_high:
create_supernet [get_pins u2/u20] –name SN2
{u2/i1}, {u2/n1, u2/u21/i1}, {u2/u21/o1, u2/o1, o1}

© 2019 Synopsys, Inc. 12


Supernet Enhancements
Limitations

• Both the anchor nodes (start and stop) must be in the same physical hierarchy

• Supernet supports the creation of the anchor on different hierarchy and also supports saving
and restoring the data but it does not support MIB instance specific data

• In the existing block, if a child block has instantiated multiple times, the creation of a supernet
in one child block creates the anchor in all the MIB instances of that block

© 2019 Synopsys, Inc. 13


Usage Support for n-D Buses (P-2019.03)

© 2019 Synopsys, Inc. 14


Usage Support for n-D Buses
Overview and Benefits

• Starting with version P-2019.03, the tool supports multidimensional buses.

• Hole auto-fill is supported for multidimensional net buses.

© 2019 Synopsys, Inc. 15


Usage Support for n-D Buses
Commands and User Interface

• You can create, query, remove, and report multidimensional net buses using the following Tcl commands:
– create_net_bus
– report_net_buses
– remove_net_buses
– get_net_buses -of_objects
– get_nets -of_objects

• You can create, query, remove, and report multidimensional port buses using the following Tcl commands:
– create_port_bus
– report_port_buses
– remove_port_buses
– get_port_buses -of_objects
– get_ports -of_objects

© 2019 Synopsys, Inc. 16


Usage Support for n-D Buses
Example: create, query, and report multidimensional net buses
icc2_shell> create_net_bus a[0:2][0:1][2:3] -create_nets
{a}
icc2_shell> report_net_bus a -verb
****************************************
Report : report_net_buses
Design : bus
Version: P-2019.03-DEV
Date : Sat Jan 26 17:07:02 2019
****************************************
Name Start End Bit order Net
--------------------------------------------------------------------------------
a 11 0 down a[0][0][2] a[0][0][3] a[0][1][2] a[0][1][3] a[1][0][2]
a[1][0][3] a[1][1][2] a[1][1][3] a[2][0][2] a[2][0][3] a[2][1][2] a[2][1][3]

icc2_shell> get_net_buses -of_objects [get_nets a[0][0][2]]


{a}
icc2_shell> get_nets -of_objects [get_net_buses a]
{{a[0][0][2]} {a[0][0][3]} {a[0][1][2]} {a[0][1][3]} {a[1][0][2]} {a[1][0][3]} {a[1][1][2]}
{a[1][1][3]} {a[2][0][2]} {a[2][0][3]} {a[2][1][2]} {a[2][1][3]}}

© 2019 Synopsys, Inc. 17


Usage Support for n-D Buses
Example: create, query and report multidimensional port buses
icc2_shell> create_port_bus b[0:2][0:1][2:3] -create_ports
{b}
icc2_shell> report_port_bus b -verb
****************************************
Report : report_port_buses
Design : bus
Version: P-2019.03-DEV
Date : Mon Jan 28 21:20:57 2019
****************************************
Name Start End Bit order Port
--------------------------------------------------------------------------------
b 11 0 down b[0][0][2] b[0][0][3] b[0][1][2] b[0][1][3] b[1][0][2]
b[1][0][3] b[1][1][2] b[1][1][3] b[2][0][2] b[2][0][3] b[2][1][2] b[2][1][3]

icc2_shell> get_port_buses -of_objects [get_ports b[0][0][2]]


{b}
icc2_shell> get_ports -of_objects [get_port_buses b]
{{b[0][0][2]} {b[0][0][3]} {b[0][1][2]} {b[0][1][3]} {b[1][0][2]} {b[1][0][3]} {b[1][1][2]}
{b[1][1][3]} {b[2][0][2]} {b[2][0][3]} {b[2][1][2]} {b[2][1][3]}}

© 2019 Synopsys, Inc. 18


Usage Support for n-D Buses
Example: Hole auto-fill support for multidimensional net buses

• When net A[3][0] of 2-D bus A is deleted, a hole will be created in bus A. When net A[3][0] is re-created, it
will automatically fill the hole at slot [3][0] in bus A.
icc2_shell> create_net_bus A[3:0][2:0] -create_nets
Name Start End Bit order Net
--------------------------------------------------------------------------------
A 11 0 down A[3][2] A[3][1] A[3][0] A[2][2] A[2][1] A[2][0] A[1][2] A[1][1] A[1][0] A[0][2] A[0][1] A[0][0]

icc2_shell> remove_nets A[3][0]


Name Start End Bit order Net
--------------------------------------------------------------------------------
A 11 0 down A[3][2] A[3][1] A[2][2] A[2][1] A[2][0] A[1][2] A[1][1] A[1][0] A[0][2] A[0][1] A[0][0]

Icc2_shell> create_net A[3][0]

Name Start End Bit order Net


--------------------------------------------------------------------------------
A 11 0 down A[3][2] A[3][1] A[3][0] A[2][2] A[2][1] A[2][0] A[1][2] A[1][1] A[1][0] A[0][2] A[0][1] A[0][0]

icc2_shell> get_attribute [get_nets A[3][0]] is_bus_bit


true

• Note that the auto-fill feature is for net_buses only.

© 2019 Synopsys, Inc. 19


Usage Support for n-D Buses
Notes

• Auto-fill of holes in net_bus and report_net_buses support these kinds of complex structured
buses.
– inM 3 0 down inM[veri] inM[data][2] inM[data][1] inM[parity]
– out 2 0 down out.b out.l out.r

• They are not supported through create_net_bus, create_port_bus, read_verilog,


write_Verilog, etc.

© 2019 Synopsys, Inc. 20


Message/Logfile Unification (P-2019.03)

© 2019 Synopsys, Inc. 21


Message/Logfile Unification
Overview

• The project adopts the “MSG” messaging infrastructure in the IC Compiler II tool as a replacement of the
existing messaging system.

© 2019 Synopsys, Inc. 22


Message/Logfile Unification
Behavior of the Messaging System in Different Modes
• The new shell.common.message_style application option controls the messaging
style.
• Valid values: platform | legacy
• Default: platform
Commands Platform mode (default) Legacy mode
Suppress_message Suppresses error messages without the Suppresses error messages only when you
-force option use the -force option.

get_message_info Prints the number of occurrences as the Prints the number of occurrences as sum
print_message_info number of times the message is actually of the number of times the message is
printed. actually printed and the number of times it
was suppressed.
Message limit The limit on messages is applied for every Same limit across multiple source
source and mega command. For example, commands and mega commands. For
if a message limit is 2, for every source example, if a message limit is 2, the
command, the message can only be message can only be printed twice, even
printed twice. for multiple script sourcing.

© 2019 Synopsys, Inc. 23


Message/Logfile Unification
Commands and UI
• The following message-related commands work the same in version P-2019.03 as in previous
versions:
– Tcl commands for user control of messages:
– report_msg
– set_msg
– get_msg
• Commands that deal with user messages:
– get_message_info
– print_message_info
– set_message_info
– get_message_ids
– print_suppressed_messages
– suppress_message
– unsuppress_message

© 2019 Synopsys, Inc. 24


Message/Logfile Unification
MSG-3913 in Log file
• There is no difference in the log files or man pages except that the MSG-3913 prints additional information.

• MSG-3913 prints the summary of the suppressed messages at the end of every source or mega command.
It is also printed when you change the limit of a message that was suppressed.
– For example, MSG-3913 is printed out in P-2019.03 in the following circumstances:
– If the MSG-3913 is printed during the source command, as shown, the message is printed with the file information (file name and
line number):
3 out of 5 NDMUI-669 messages were not printed due to limit 2 (after 'set_message_info' at test2.tcl:21) (MSG-
3913)
– If the MSG-3913 is printed at the end of the source command, as shown, the message is printed when the sourcing is finished but
does not include file information:
3 out of 5 NDMUI-669 messages were not printed due to limit 2 (MSG-3913)

© 2019 Synopsys, Inc. 25


Label-Based Linking (P-2019.03)

© 2019 Synopsys, Inc. 26


Label-Based Linking
Overview

• In the hierarchical flow, you can save your lower-level blocks using labels (for example, subblock/pre_place
subblock/post_place) as follows:
save_block -as blockName/labelName
save_block -label labelName
• Starting with version P-2019.03, you can control which labels the tool uses when linking a top-level block to lower-
level blocks by using the new set_label_switch_list command. The command specifies a precedence-ordered list
of labels to use during linking.
For example:
set_label_switch_list {pre_place post_place cts}
set_label_switch_list –reference {mid1 mid2} {post_place}

The first example sets an ordered list of preferred labels for the current design when linking to a subblock.
The second example sets a preferred label for the resolution of references mid1 and mid2.
Note:
the tool searches for a block with the preferred label during linking.
If the requested label is not available, a warning message is issued, and the top block default label is used.

© 2019 Synopsys, Inc. 27


Label-Based Linking
Command and UI

• New Commands:
 set_label_switch_list
 get_label_switch_list

For details, see the man pages.

© 2019 Synopsys, Inc. 28


Identifying Computing Environment Issues(P-2019.03)

© 2019 Synopsys, Inc. 29


Identifying Computing Environment Issues
Overview

• You can troubleshoot issues related to the computing environment.

• The tool monitors the computing resource and network and issues warning messages when
issues are detected

• The following infrastructure issues are monitored:


– The CPU is heavily loaded with other processes
– The host is running out of memory
– Network connectivity issues
– Network congestion issues
– High network latency

© 2019 Synopsys, Inc. 30


Identifying Computing Environment Issues
User Interface

• This monitoring capability and the warning messages are off by default in IC Compiler II.

• To enable these messages, set the following environment variable before running the tool:
setenv SNPS_ICC2_SML_ENABLE 1
 These messages will be written out to icc2_sml_<timestamp>.log file by default.
 These messages can be written out to the env specified by providing log file name using
SNPS_ICC2_SML_LOGFILE variable
• For more details, see the man page for each message

© 2019 Synopsys, Inc. 31


Identifying Computing Environment Issues
Details of the Messages
Condition message Description
Low memory availability SML-001 System memory usage is 98% and above

High CPU usage SML-002 The current process is using <5% of total CPU capability, while
the host is running at >95% load.

Network congestion SML-003 The current process is running on a host where >5% of all
issue packets are being retransmitted due to loss or damage,
indicating network congestion.

Network connectivity SML-004 The current process is running on a host where >5% of all
issue packets it is sending are not being received by the recipient. It
indicates poor network connectivity.

High network latency SML-005 The current process is running on a host that has high latency
>300ms to the hosts specified in the message

© 2019 Synopsys, Inc. 32

You might also like