Fpga Reference
Fpga Reference
Synopsys
Synplify Pro for Microchip
Reference Manual
January 2024
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
2 Synopsys Confidential Information January 2024
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys,
as set forth at
http://www.synopsys.com/Company/Pages/Trademarks.aspx.
All other product or company names may be trademarks of their respective
owners.
Third-Party Links
Any links to third-party websites included in this document are for your
convenience only. Synopsys does not endorse and is not responsible for such
websites and their practices, including privacy practices, availability, and
content.
Synopsys, Inc.
690 East Middlefield Road
Mountain View, CA 94043
www.synopsys.com
January 2024
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 3
Synopsys Statement on Inclusivity and Diversity
Synopsys is committed to creating an inclusive environment where every
employee, customer, and partner feels welcomed. We are reviewing and
removing exclusionary language from our products and supporting
customer-facing collateral. Our effort also includes internal initiatives to
remove biased language from our engineering and working environment,
including terms that are embedded in our software and IPs. At the same time,
we are working to ensure that our web content and software applications are
usable to people of varying abilities. You may still find examples of non-inclu-
sive language in our software or documentation as our IPs implement
industry-standard specifications that are currently under review to remove
exclusionary language.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
4 Synopsys Confidential Information January 2024
Contents
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 5
Using the Mouse Wheel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Project Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Analyst Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Text Editor Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
FSM Viewer Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Tools Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Keyboard Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Buttons and Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
6 Synopsys Confidential Information January 2024
Filtering and Flattening Schematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Commands That Result in Filtered Schematics . . . . . . . . . . . . . . . . . . . . . . . . 113
Combined Filtering Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Returning to The Unfiltered Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Commands That Flatten Schematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Selective Flattening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Filtering Compared to Flattening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Timing Information and Critical Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Timing Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Critical Paths and the Slack Margin Parameter . . . . . . . . . . . . . . . . . . . . . . . . 120
Examining Critical Path Schematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 7
Timing Report Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Performance Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Clock Pre-map Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Clock Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Interface Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
A synchronous Clock Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Hierarchical Area Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Constraint Checking Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
RAM Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
DSP Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
CDC Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
TMR Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
8 Synopsys Confidential Information January 2024
Microchip RAM Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
RAM for PolarFire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
RAM for RTG4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
RAM for SmartFusion2/IGLOO2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
PolarFire Asymmetric RAM support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
RAM Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Low Power RAM Inference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
URAM Inference for Sequential Shift Registers . . . . . . . . . . . . . . . . . . . . . . . . 278
Async Reset and Dynamic Offset in Seqshifts . . . . . . . . . . . . . . . . . . . . . . . . . 280
Packing of Enable Signal on the Read Address Register . . . . . . . . . . . . . . . . 280
Packing of INIT Value on LSRAM and URAM Blocks in PolarFire . . . . . . . . . . 281
PolarFire RAM Inference for ROM Support . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Write Byte-Enable Support for RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
RAMINDEX Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Microchip Constraints and Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Global Buffer Promotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
The syn_maxfan Attribute in Microchip Designs . . . . . . . . . . . . . . . . . . . . . . . 287
Radiation-tolerant Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Microchip Device Mapping Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Promote Global Buffer Threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
I/O Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Update Compile Point Timing Data Option . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Operating Condition Device Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Microchip set_option Command Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Microchip Tcl set_option Command Options . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Microchip Output Files and Forward Annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
VM Flow Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Specifying Pin Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Specifying Locations for Microchip Bus Ports . . . . . . . . . . . . . . . . . . . . . . . . . 303
Specifying Macro and Register Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Synthesis Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Integration with Microchip Tools and Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Compile Point Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Incremental Synthesis Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Using Predefined Microchip Black Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Using Smartgen Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Microchip Place-and-Route Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Microchip Attribute and Directive Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 9
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
10 Synopsys Confidential Information January 2024
CHAPTER 1
Product Overview
This document is part of a set that includes reference and procedural infor-
mation for the Synopsys® FPGA synthesis tool. The reference manual
provides additional details about the synthesis tool user interface,
commands, and features. Use this information to supplement the user guide
tasks, procedures, design flows, and result analysis.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 11
Product Overview Overview of the Synthesis Tool
Common Features
The Synopsys FPGA synthesis tool includes the following built-in features:
• The HDL Analyst® analysis and debugging environment, a graphical tool
for analysis and crossprobing. See Analyzing With the HDL Analyst Tool,
on page 272 and Analyzing With the Standard HDL Analyst Tool, on
page 336 in the User Guide.
• The Text Editor window, with a language-sensitive editor for writing and
editing HDL code. See Text Editor View, on page 45.
• The SCOPE ® (Synthesis Constraint Optimization Environment®) tool,
which provides a spreadsheet-like interface for managing timing
constraints and design attributes. See SCOPE Constraints Editor, on
page 214.
• FSM Compiler, a symbolic compiler that performs advanced finite state
machine (FSM) optimizations. See Running the FSM Compiler, on
page 425.
• Integration with the Identify Debugger.
The following features are specific to the Synplify Pro tool. For a comparison
of the features in the tools, see Synopsys FPGA Tool Features, on page 14.
• FSM Explorer, which tries different state machine optimizations before
picking the best implementation. See Running the FSM Explorer, on
page 429.
• The FSM Viewer, for viewing state transitions in detail. See Using the
FSM Viewer, on page 291.
LO
• The Tcl window, a command line interface for running TCL scripts. See
Tcl Script Window, on page 41.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
12 Synopsys Confidential Information January 2024
Overview of the Synthesis Tool Product Overview
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 13
Product Overview Synopsys FPGA Tool Features
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
14 Synopsys Confidential Information January 2024
Synopsys FPGA Tool Features Product Overview
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 15
Product Overview Synopsys FPGA Tool Features
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
16 Synopsys Confidential Information January 2024
Graphic User Interface Product Overview
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 17
Product Overview Graphic User Interface
The following table shows where you can find information about different
parts of the GUI, some of which are not shown in the above figure. For more
information, see the User Guide.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
18 Synopsys Confidential Information January 2024
Getting Help Product Overview
Getting Help
Look through the documentation for information. You can access the infor-
mation online from the Help menu, or refer to the corresponding manual. The
following table shows you how the information is organized.
Finding Information
For help with ... Refer to the ...
How to... User Guide
Flow information User Guide
FPGA Implementation Synopsys Web Page (Web->FPGA Implementation Tools menu
Tool command from within the software)
Synthesis features User Guide and Reference Manual
Language and syntax Language Support Reference Manual
Attributes and Attribute Reference Manual
directives
Tcl language Online help (Help->Tcl Help)
Synthesis Tcl Command Reference Manual or type help followed by the
commands command name in the Tcl window
Using tool-specific User Guide
features and attributes
Error and warning Click the message ID code
messages
Document Set
This document is part of a series of books included with the Synopsys FPGA
synthesis software tool. The set consists of the following books that are
packaged with the tool:
• FPGA Synthesis User Guide
• FPGA Synthesis Reference
• FPGA Synthesis Command Reference
• FPGA Synthesis Attributes and Directives Reference
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 19
Product Overview Getting Help
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
20 Synopsys Confidential Information January 2024
CHAPTER 2
This chapter presents tools and technologies that are built into the Synopsys
FPGA synthesis software to enhance your productivity.
This chapter describes the following aspects of the graphical user interface
(GUI):
• The Project View, on page 22
• The Project Results View, on page 26
• Other Windows and Views, on page 36
• Using the Mouse, on page 52
• Toolbars, on page 57
• Keyboard Shortcuts, on page 64
• Buttons and Options, on page 72
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 21
User Interface Overview The Project View
You can also use the Project Management view to manage and synthesize
hierarchical designs.
The following figure shows the main parts of the interface. Additional details
about the project view are described here:
• Project Management View, on page 24
• The Project Results View
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
22 Synopsys Confidential Information January 2024
The Project View User Interface Overview
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 23
User Interface Overview The Project View
LO
The Project Management view is on the left side of the window, and is used to
create or open projects, create new implementations, set device options, and
initiate design synthesis. The graphical user interface (GUI) lets you manage
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
24 Synopsys Confidential Information January 2024
The Project View User Interface Overview
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 25
User Interface Overview The Project Results View
To display this window, click the Project Status tab in the Project view. An
overview for the project is displayed in a spreadsheet format for each of the
following sections:
• Project Settings
• Run Status
• Reports
For details about how to access synthesis results, see Accessing Specific
Reports Quickly, on page 193.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
26 Synopsys Confidential Information January 2024
The Project Results View User Interface Overview
You can expand or collapse each section of the Project Status view by clicking
on the + or - icon in the upper left-corner of each section.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 27
User Interface Overview The Project Results View
Project Settings
Project Settings is populated with the project settings from the run_options.txt file
after a synthesis run. This section displays information, like the following:
• Project name, top-level module, and implementation name
• Project options currently specified, such as Resource Sharing, Fanout
Guide, and Disable I/O Insertion
Run Status
The Run Status table gets updated during and after a synthesis run. This
section displays job status information for the compiler, premap job, mapper,
and place-and-route runs, as needed. This section displays information
about the synthesis run:
• Job name - Jobs include Compiler Input, Premap, and Map & Optimize. The job
might have a Detailed Report link. When you click on this link, it takes you
to the corresponding report in the log file.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
28 Synopsys Confidential Information January 2024
The Project Results View User Interface Overview
• Notes, Warnings, and Errors - These columns are headed by the respective
icons and display the number of messages. The messages themselves
are displayed in the Messages tab, beside the TCL Script tab. Links are
available to the error message and the log location.
The message numbers may not match for designs with compile points.
The numbers reflect the top-level design.
• Real and CPU times, peak memory, and a timestamp
Reports
The mapper summary table generates various reports such as an
• Area Summary
• Optimization Summary
• Compile Point Summary
Click the Detailed Report link when applicable, to go to the log file and informa-
tion about the selected report. These reports are written to the synlog folder for
the active implementation.
Area Summary
For example, the Area Summary contains a resource usage count for compo-
nents such as registers, LUTs, and I/O ports in the design. Click the Detailed
report link to display the usage count information in the design for this report.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 29
User Interface Overview The Project Results View
Report Tab
Some reporting such as the Hierarchical Area Report are written to the
Report tab of the Project Results view. These reports are typically not
included in the log file; therefore, they are displayed separately.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
30 Synopsys Confidential Information January 2024
The Project Results View User Interface Overview
Vendors Technologies
Microchip • IGLOO2 family
• RTG4 family
• Smartfusion2 family
A Hierarchical Area report is generated in a Report tab that you can access
from the Project Status view. This report generates area usage for compo-
nents such as sequential and combinational logic, RAM, and DSP blocks.
You can locate the Hierarchical Area report file in the following Implementation
Directory: /synlog/report.
Use the arrow icon ( ) to get back to the main Project Status view.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 31
User Interface Overview The Project Results View
Implementation Directory
An implementation is one version of a project, run with certain parameter or
option settings. You can synthesize again, with a different set of options, to
get a different implementation. In the Project view, an implementation is
shown in the folder of its project; the active implementation is highlighted.
You can display multiple implementations in the same Project view. The
output files generated for the active implementation are displayed in the
Implementation Directory.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
32 Synopsys Confidential Information January 2024
The Project Results View User Interface Overview
Process View
As process flow jobs become more complex, the benefits of exposing the
underlying job flow is extremely valuable. The Process View gives you this
visibility to track the design progress for the synthesis and place-and-route
job flows.
Click the Process View tab on the right side of the Project Results view. This
displays the job flow hierarchy run on the active implementation and is a
function of this current implementation and its project settings.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 33
User Interface Overview The Project Results View
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
34 Synopsys Confidential Information January 2024
The Project Results View User Interface Overview
The state of a hierarchical job depends on the state of its subordinate jobs.
• If a subordinate job is out-of-date, then its parent job is out-of-date.
• If a subordinate job has an error, then its parent job terminates with
this error.
• If a subordinate job has been canceled, then its parent job is canceled as
well.
• If a subordinate job is running, then its parent job is also running.
The Process View is a hierarchical tree view. To collapse or expand the main
hierarchical tree, enable or disable the Show Hierarchy option. Use the plus or
minus icon to expand or collapse each process flow to show the details of the
jobs. The icons below are used to show the information for the state of each
process:
• Red arrow ( ) - Job is out-of-date and needs to be rerun.
• Green arrow ( ) - Job is up-to-date.
• Red Circle with! ( ) - Job encountered an error.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 35
User Interface Overview Other Windows and Views
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
36 Synopsys Confidential Information January 2024
Other Windows and Views User Interface Overview
Watch Window
The Watch window displays selected information from the log file (see Log
File, on page 157) as a spreadsheet of parameters that you select to monitor.
The values are updated when synthesis finishes.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 37
User Interface Overview Other Windows and Views
You can move the Watch window anywhere on the screen; you can make it
float in its own window (named Watch Window) or dock it at a docking area (an
edge) of the application window. Double-click in the banner to toggle between
docked and floating.
The Watch window has a special positioning popup menu that you access by
right-clicking the window border. The following commands are in the menu:
Command Description
Allow Docking A toggle: when enabled, the window can be docked.
Hide Hides the window; use View ->Watch Window to show it again.
Float in Main Window A toggle: when enabled, the window is floated (undocked).
Right-clicking the window title bar when the Watch window is floating
displays an alternative popup menu with commands Hide and Move; Move lets
you position the window using either the arrow keys or the mouse.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
38 Synopsys Confidential Information January 2024
Other Windows and Views User Interface Overview
To choose log parameters from a pull-down menu, click in the Log Parameter
section of the window. Click the pull-down arrow that appears to display the
parameter list choices:
To choose the implementations to watch, use the Log Watch Configuration dialog
box. To display this box, right-click in the Watch window, then choose
Configure Watch in the popup menu. Enable Watch Selected Implementations, then
choose the implementations you want to watch in the list Selected Implementa-
tions to watch. The other buttons let you watch only the active implementation
or all implementations.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 39
User Interface Overview Other Windows and Views
You can float the Tcl windows by clicking on a window edge while holding the
Ctrl or Shift key. You can thenLO
drag the window to float it anywhere on the
screen or dock it at an edge of the application window. Double-click in the
banner to toggle between docked and floating.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
40 Synopsys Confidential Information January 2024
Other Windows and Views User Interface Overview
Right-clicking the Tcl windows title bar when the window is floating displays a
popup menu with commands Hide and Move. Hide removes the window (use
View ->Tcl Window to redisplay the window). Move lets you position the window
using either the arrow keys or the mouse.
For more information about the Tcl windows, see Tcl Script Window, on
page 41 and Message Viewer, on page 41.
The Tcl script window also displays each command executed in the course of
running the synthesis tool, regardless of whether it was initiated from a
menu, button, or keyboard shortcut. Right-clicking inside the Tcl window
displays a popup menu with the Copy, Paste, Hide, and Help commands.
See also
• Chapter 2, Tcl Synthesis Commands, for information about the Tcl
synthesis commands.
• Generating a Job Script, on page 513 in the User Guide.
Message Viewer
To display errors, warnings, and notes after running the synthesis tool, click
the Messages tab in the Tcl Window. A spreadsheet-style interactive interface
appears.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 41
User Interface Overview Other Windows and Views
Item Description
Find Type into this field to find errors, warnings, or notes.
Filter Opens the Warning Filter dialog box. See Messages Filter , on
page 44.
Apply Filter Enable/disable the last saved filter.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
42 Synopsys Confidential Information January 2024
Other Windows and Views User Interface Overview
Item Description
Group Common Enable/disable grouping of repeated messages. Groups are
ID’s indicated by a number next to the type icon. There are two types
of groups:
• The same warning or note ID appears in multiple source files
indicated by a dash in the source files column.
• Multiple warnings or notes in the same line of source code
indicated by a bracketed number.
Type The icons indicate the type of message:
Error
Warning
Note
Advisory
A plus sign next to an icon indicates that repeated messages are
grouped together. Click the plus sign to expand and view the
various occurrences of the message.
ID This is the message ID. You can select an underlined ID to
launch help on the message.
Message The error, warning, or note message text.
Source Location The HDL source file that generated the error, warning, or note
message.
Log Location The location of the error, warning, or note message in the log
file.
Time The time that the error, warning, or note message was recorded
in the log file for the various stages of synthesis (for example:
compiler, premap, and map). If you rerun synthesis, only new
messages generate a new timestamp for this session.
Note: Once synthesis has run to completion, all the .srr files for
the different stages of synthesis are merged into one unified .srr
file. If you exit the GUI, these timestamps remain the same
when you re-open the same project in the GUI again.
Report Indicates which section of the Log File report the error appears,
for example Compiler or Mapper.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 43
User Interface Overview Other Windows and Views
Messages Filter
You filter which errors, warnings, and notes appear in the Messages panel of
the Tcl Window using match criteria for each field. The selections are combined
to produce the result. You can elect to hide or show the warnings that match
the criteria you set. See Checking Results in the Message Viewer, on page 205
in the User Guide.
Item Description
Hide Filter Matches Hides matched criteria in the Messages Panel.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
44 Synopsys Confidential Information January 2024
Other Windows and Views User Interface Overview
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 45
User Interface Overview Other Windows and Views
With the Microsoft® Windows® operating system, you can instead drag
and drop a source file from a Windows folder into the gray background
area of the GUI (not into any particular view).
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
46 Synopsys Confidential Information January 2024
Other Windows and Views User Interface Overview
Feature Description
Color coding Keywords are blue, comments green, and strings red. All
other text is black.
Editing text You can use the Edit menu or keyboard shortcuts for
basic editing operations like Cut, Copy, Paste, Find, Replace,
and Goto.
Completing keywords To complete a keyword, type enough characters to make
the string unique and then press the Esc key.
Indenting a block of text The Tab key indents a selected block of text to the right.
Shift-Tab indents text to the left.
Inserting a bookmark Click the line you want to bookmark. Choose Edit ->Toggle
Bookmark, type Ctrl-F2, or click the Toggle Bookmark icon
( ) on the Edit toolbar.
The line number is highlighted to indicate that there is a
bookmark at the beginning of the line.
Deleting a bookmark Click the line with the bookmark. Choose Edit ->Toggle
Bookmark, type Ctrl-F2, or click the Toggle Bookmark icon
( ) on the Edit toolbar.
Deleting all bookmarks Choose Edit ->Delete all Bookmarks, type Ctrl-Shift-F2, or click
the Clear All Bookmarks icon ( ) on the Edit toolbar.
Editing columns Press and hold Alt, then drag the mouse down a column of
text to select it.
Commenting out code Choose Edit ->Advanced ->Comment Code. The rest of the
current line is commented out: the appropriate comment
prefix is inserted at the current text cursor position.
Checking syntax Use Run ->Syntax Check to highlight syntax errors, such as
incorrect keywords and punctuation, in source code. If
the active window shows an HDL file, then only that file is
checked. Otherwise, the entire project is checked.
Checking synthesis Use Run ->Synthesis Check to highlight hardware-related
errors in source code, like incorrectly coded flip-flops. If
the active window shows an HDL file, then only that file is
checked. Otherwise, the entire project is checked.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 47
User Interface Overview Other Windows and Views
See also:
• Editor Options Command, on page 438, for information on setting Text
Editor preferences.
• File Menu, on page 308, for information on printing setup operations.
• Edit Menu Commands for the Text Editor, on page 314, for information on
Text Editor editing commands.
• Text Editor Popup Menu, on page 463, for information on the Text Editor
popup menu.
• Text Editor Toolbar, on page 61, for information on bookmark icons of
the Edit toolbar.
• Keyboard Shortcuts, on page 64, for information on keyboard shortcuts
that can be used in the Text Editor.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
48 Synopsys Confidential Information January 2024
Other Windows and Views User Interface Overview
When you select a construct in the left-side of the window, the online help
description for the construct is displayed. If the selected construct has this
feature enabled, the online help topic is displayed on the top of the window
and a generic code or command template for that construct is displayed at
the bottom. The Insert Template button is also enabled. When you click the
Insert Template button, the code or command shown in the template window is
inserted into your file at the location of the cursor. This allows you to easily
insert the code or constraint command and modify it for the design that you
are going to synthesize. If you want to copy only parts of the template, select
the code or constraint command you want to insert and click Copy. You can
then paste it into your file.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 49
User Interface Overview Other Windows and Views
Field/Option Description
Top Takes you to the top of the context help page for the selected
construct.
Back Takes you back to the last context help page previously
viewed.
Forward Once you have gone back to a context help page, use Forward
to return to the original context help page from where you
started.
Online Help Brings up the interactive online help for the synthesis tool.
Copy Allows you to copy selected code from the Template file and
paste it into the editor file.
Insert Template Automatically copies the code description in its entirety from
the Template file to the editor file.
2. Click the Examples button. Then click on Interactive Attribute Examples and
the Launch Interactive Attributes Wizard links.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
50 Synopsys Confidential Information January 2024
Other Windows and Views User Interface Overview
6. Click Generate Run to run synthesis for all the implementations. When
synthesis completes:
– The Technology view opens to show how the selected attribute
impacts synthesis.
– You can compare resource utilization and timing information
between implementations in the Log Watch window.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 51
User Interface Overview Using the Mouse
Term Meaning
Click Click with the left mouse button: press then release it without
moving the mouse.
Double-click Click the left mouse button twice rapidly, without moving the mouse.
Right-click Click with the right mouse button.
Drag Press the left mouse button, hold it down while moving the mouse,
then release it. Dragging an object moves the object to where the
mouse is released; then, releasing is sometimes called “dropping”.
Dragging initiated when the mouse is not over an object often traces
a selection rectangle, whose diagonal corners are at the press and
release positions.
Press Depress a mouse button; unless otherwise indicated, the left button
is implied. It is sometimes used as an abbreviation for “press
and hold”.
Hold Keep a mouse button depressed. It is sometimes used as an
abbreviation for “press and hold”.
Release Stop holding a mouse button depressed.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
52 Synopsys Confidential Information January 2024
Using the Mouse User Interface Overview
Some strokes are context sensitive. That is, the interpretation of the stroke
depends upon the window in which the stroke is started. For example, in an
HDL Analyst view, the right stroke means “Next Sheet.” In a dialog box, the
right stroke means “OK.”
For information on each of the available mouse strokes, consult the Mouse
Stroke Tutor.
The strokes you draw are interpreted on a grid of one to three rows. Some
strokes are similar, differing only in the number of columns or rows, so it may
take a little practice to draw them correctly. For example, the strokes for Redo
and Back differ in that the Redo stroke is back and forth horizontally, within a
single-row grid, while the Back stroke involves vertical movement as well.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 53
User Interface Overview Using the Mouse
The tutor displays the available strokes along with a description and a
diagram of the stroke. You can draw strokes while the tutor is displayed.
Mouse strokes are context sensitive. When viewing the Stroke Tutor, you can
choose All Strokes or Current Context to view just the strokes that apply to the
context of where you invoked the tutor. For example, if you draw the "?"
stroke in an HDL Analyst window, the Current Context option in the tutor shows
only those strokes recognized in the HDL Analyst window.
You can display the tutor while working in a window such as the HDL Analyst
view. However you cannot display the tutor while a modal dialog is displayed,
as input is restricted to the modal dialog.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
54 Synopsys Confidential Information January 2024
Using the Mouse User Interface Overview
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 55
User Interface Overview Using the Mouse
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
56 Synopsys Confidential Information January 2024
Toolbars User Interface Overview
Toolbars
Toolbars provide a quick way to access common menu commands by clicking
their icons. The following standard toolbars are available:
• Project Toolbar — Project control and file manipulation.
• Analyst Toolbar — Manipulation of compiled and mapped schematic
views.
• Text Editor Toolbar — Text editor bookmark commands.
• FSM Viewer Toolbar — Display of finite state machine (FSM) informa-
tion.
• Tools Toolbar — Opens supporting tool.
You can enable or disable the display of individual toolbars - see Toolbar
Command, on page 330.
By dragging a toolbar, you can move it anywhere on the screen: you can
make it float in its own window or dock it at a docking area (an edge) of the
application window. To move the menu bar to a docking area without docking
it there (that is, to leave it floating), press and hold the Ctrl or Shift key while
dragging it.
Right-clicking the window title bar when a toolbar is floating displays a popup
menu with commands Hide and Move. Hide removes the window. Move lets you
position the window using either the arrow keys or the mouse.
Project Toolbar
The Project toolbar provides the following icons, by default:
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 57
User Interface Overview Toolbars
The following table describes the default Project icons. Each is equivalent to a
File or Edit menu command; for more information, see the following:
• File Menu, on page 308
• Edit Menu, on page 313
Icon Description
Open Project Displays the Open Project dialog box to create a
new project or to open an existing project.
Same as File ->Open Project.
New HDL file Opens the Text Editor window with a new, empty
source file.
Same as File ->New, Verilog File or VHDL File.
New Constraint File (SCOPE) Opens the SCOPE spreadsheet with a new,
empty constraint file.
Same as File ->New, Constraint File (SCOPE).
Open Displays the Open dialog box, to open a file.
Same as File ->Open.
Save Saves the current file. If the file has not yet been
saved, this displays the Save As dialog box, where
you specify the filename. The kind of file depends
on the active view.
Same as File ->Save.
Save All Saves all files associated with the current design.
Same as File ->Save All.
Cut Cuts text or graphics from the active view,
making it available to Paste.
Same as Edit ->Cut.
Paste Pastes previously cut or copied text or graphics
to the active view.
Same as Edit ->Paste.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
58 Synopsys Confidential Information January 2024
Toolbars User Interface Overview
Icon Description
Undo Undoes the last action taken.
Same as Edit ->Undo.
Redo Performs the action undone by Undo.
Same as Edit ->Redo.
Find Finds text in the Text Editor or objects in an RTL
view or Technology view.
Same as Edit ->Find.
Analyst Toolbar
The Analyst toolbar becomes active after a design has been compiled. The
toolbar provides the following icons, by default:
The following table describes the default Analyst icons. Each is equivalent to
an HDL Analyst menu command - see HDL Analyst Menu, on page 414, for more
information.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 59
User Interface Overview Toolbars
Icon Description
RTL View Opens a new, hierarchical RTL view: a register
transfer-level schematic of the compiled design,
together with the associated Hierarchy Browser.
Same as HDL Analyst ->RTL ->Hierarchical View.
Technology View Opens a new, hierarchical Technology view: a
technology-level schematic of the mapped
(synthesized) design, together with the associated
Hierarchy Browser.
Same as HDL Analyst ->Technology ->Hierarchical View.
Timing Analyst Generates and displays a custom timing report and
view. The timing report provides more information
than the default report (specific paths or more than
five paths) or one that provides timing based on
additional analysis constraint files. See Analysis
Menu , on page 402.
Only available for certain device technologies.
Same as Analysis ->Timing Analyst.
Filter Schematic Filters your entire design to show only the selected
objects. The result is a filtered schematic.
Same as HDL Analyst ->Filter Schematic.
Show Critical Path Filters your design to show only the instances (and
their paths) whose slack times are within the slack
margin of the worst slack time of the design (see HDL
Analyst ->Set Slack Margin). The result is flat if the entire
design was already flat.
Available only in a Technology view.
Back Goes backward in displaying schematics of the current
HDL Analyst view.
Same as View ->Back.
Forward Goes forward in displaying schematics of the current
HDL Analyst view.
Same as View ->Forward.
Zoom In Zooms the view in or out. Buttons stay active until
deselected.
LO
Zoom Out Same as View ->Zoom In or View ->Zoom Out.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
60 Synopsys Confidential Information January 2024
Toolbars User Interface Overview
Icon Description
Zoom Full Zoom that reduces the active view to display the entire
design.
Same as View ->Full View.
Show Top Level Displays the schematic for the top-level view.
The following table describes the default Edit icons. Each is available in the
Text Editor, and each is equivalent to an Edit menu command there - see Edit
Menu Commands for the Text Editor, on page 314, for more information.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 61
User Interface Overview Toolbars
Icon Description
Toggle Bookmark Alternately inserts and removes a bookmark at the line
that contains the text cursor.
Same as Edit ->Toggle bookmark.
Next Bookmark Takes you to the next bookmark.
Same as Edit ->Next bookmark.
Previous Bookmark Takes you to the previous bookmark.
Same as Edit ->Previous bookmark.
Clear All Bookmarks Removes all bookmarks from the Text Editor window.
Same as Edit ->Delete all bookmarks.
The following table describes the default FSM icons. Each is available in the
FSM viewer, and each is equivalent to a View menu command available there
- see View Menu, on page 327, for more information.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
62 Synopsys Confidential Information January 2024
Toolbars User Interface Overview
Icon Description
Toggle FSM Table Toggles the display of state-and-transition tables.
Same as View->FSM Table.
Unfilter FSM Restores a filtered FSM diagram so that all the states and
transitions are showing.
Same as View->Unfilter.
Filter by outputs Hides all but the selected state(s), their output
transitions, and the destination states of those
transitions.
Same as View->Filter->By output transitions.
Tools Toolbar
The Tools Toolbar opens supporting tool.
Icon Description
Constraint Check Checks the syntax and applicability of the
timing constraints in the constraint file for your
project and generates a report
(project_name_cck.rpt).
Same as Run->Constraint Check.
Identify Instrumentor Brings up the Synopsys Identify Instrumentor
product. For more information, see Working
with the Identify Tools , on page 556of the User
Guide.
Launch Identify Debugger Launches the Synopsys Identify Debugger
product. For more information, see Working
with the Identify Tools , on page 556of the User
Guide.
VCS Simulator Configures and launches the VCS simulator.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 63
User Interface Overview Keyboard Shortcuts
Keyboard Shortcuts
Keyboard shortcuts are key sequences that you type in order to run a
command. Menus list keyboard shortcuts next to the corresponding
commands.
For example, to check syntax, you can press and hold the Shift key while you
type the F7 key, instead of using the menu command Run ->Syntax Check.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
64 Synopsys Confidential Information January 2024
Keyboard Shortcuts User Interface Overview
Keyboard Description
Shortcut
b In an RTL or Technology view, shows all logic between two or
more selected objects (instances, pins, ports). The result is a
filtered schematic. Limited to the current schematic.
Same as HDL Analyst ->Current Level ->Expand Paths (see HDL
Analyst Menu: Filtering and Flattening Commands , on
page 417).
Ctrl-++ In the FSM Viewer, hides all but the selected state(s), their
(number pad) output transitions, and the destination states of those
transitions.
Same as View ->Filter ->By output transitions.
Ctrl-+- In the FSM Viewer, hides all but the selected state(s), their input
(number pad) transitions, and the origin states of those transitions.
Same as View ->Filter ->By input transitions.
Ctrl-+* In the FSM Viewer, hides all but the selected state(s), their input
(number pad) and output transitions, and their predecessor and successor
states.
Same as View ->Filter ->By any transition.
Ctrl-1 In an RTL or Technology view, zooms the active view, when you
click, to full (normal) size. Same as View ->Normal View.
Ctrl-a Centers the window on the design. Same as View ->Pan Center.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 65
User Interface Overview Keyboard Shortcuts
Keyboard Description
Shortcut
Ctrl-e In an RTL or Technology view, expands along the paths from
selected pins or ports, according to their directions, to the
nearest objects (no farther). The result is a filtered schematic.
Operates hierarchically, on lower levels as well as the current
schematic.
Same as HDL Analyst->Hierarchical ->Expand (see HDL Analyst
Menu: Hierarchical and Current Level Submenus , on page 415).
Ctrl-Enter (Return) In the FSM Viewer, hides all but the selected state(s).
Same as View->Filter->Selected (see View Menu , on page 327).
Ctrl-f Finds the selected object. Same as Edit->Find.
Ctrl-g In the Text Editor, jumps to the specified line. Same as Edit->Goto
(see Edit Menu Commands for the Text Editor , on page 314).
In an RTL or Technology view, selects the sheet number in a
multiple-page schematic. Same as View->View Sheets (see View
Menu: RTL and Technology Views Commands , on page 328).
Ctrl-h In the Text Editor, replaces text. Same as Edit->Replace (see Edit
Menu Commands for the Text Editor , on page 314).
Ctrl-i In an RTL or Technology view, selects instances connected to the
selected net. Operates hierarchically, on lower levels as well as
the current schematic. Same as HDL Analyst->Hierarchical->Select
Net Instances (see HDL Analyst Menu: Hierarchical and Current
Level Submenus , on page 415).
Ctrl-j In an RTL or Technology view, displays the unfiltered schematic
sheet that contains the net driver for the selected net. Operates
hierarchically, on lower levels as well as the current schematic.
Same as HDL Analyst->Hierarchical->Goto Net Driver (see HDL Analyst
Menu: Hierarchical and Current Level Submenus , on page 415).
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
66 Synopsys Confidential Information January 2024
Keyboard Shortcuts User Interface Overview
Keyboard Description
Shortcut
Ctrl-l In the FSM Viewer, or an RTL or Technology view, toggles zoom
locking. When locking is enabled, if you resize the window the
displayed schematic is resized proportionately, so that it
occupies the same portion of the window.
Same as View->Zoom Lock (see View Menu Commands: All Views ,
on page 327).
Ctrl-m In an RTL or Technology view, expands inside the subdesign,
from the lower-level port that corresponds to the selected pin, to
the nearest objects (no farther). Same as HDL
Analyst->Hierarchical->Expand Inwards (see HDL Analyst Menu:
Hierarchical and Current Level Submenus , on page 415).
Ctrl-n Creates a new file or project. Same as File->New.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 67
User Interface Overview Keyboard Shortcuts
Keyboard Description
Shortcut
Ctrl-x Cuts the selected object(s), making it available to Paste. Same as
Edit ->Cut.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
68 Synopsys Confidential Information January 2024
Keyboard Shortcuts User Interface Overview
Keyboard Description
Shortcut
d In an RTL or Technology view, selects the driver for the selected
net. Limited to the current schematic.
Same as HDL Analyst ->Current Level ->Select Net Driver (see HDL
Analyst Menu , on page 414).
Delete (DEL) Removes the selected files from the project. Same as
Project->Remove Files From Project.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 69
User Interface Overview Keyboard Shortcuts
Keyboard Description
Shortcut
F12 In an RTL or Technology view, filters your entire design to show
only the selected objects.
Same as HDL Analyst->Filter Schematic - see HDL Analyst Menu:
Filtering and Flattening Commands , on page 417.
i In an RTL or Technology view, selects instances connected to the
selected net. Limited to the current schematic.
Same as HDL Analyst->Current Level->Select Net Instances (see HDL
Analyst Menu , on page 414).
j In an RTL or Technology view, displays the unfiltered schematic
sheet that contains the net driver for the selected net.
Same as HDL Analyst->Current Level->Goto Net Driver (see HDL
Analyst Menu , on page 414).
r In an RTL or Technology view, expands along the paths from
selected pins or ports, according to their directions, until
registers, ports, or black boxes are reached. The result is a
filtered schematic. Limited to the current schematic.
Same as HDL Analyst ->Current Level->Expand to Register/Port (see
HDL Analyst Menu , on page 414).
Shift-F2 In the Text Editor, takes you to the previous bookmark.
Shift-F4 Allows you to add source files to your project (Project->Add Source
Files).
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
70 Synopsys Confidential Information January 2024
Keyboard Shortcuts User Interface Overview
Keyboard Description
Shortcut
Shift-F11 Toggles zooming out.
Same as View->Zoom Out (see View Menu , on page 327).
Shift-Left Arrow Displays the previous sheet of a multiple-sheet schematic.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 71
User Interface Overview Buttons and Options
LO
The following table describes the Project View buttons and options.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
72 Synopsys Confidential Information January 2024
Buttons and Options User Interface Overview
Button/Option Action
Open Project... Opens a new or existing project.
Same as File->Open Project (see Open Project Command , on
page 313).
Close Project Closes the current project.
Same as File->Close Project (see Run Menu , on page 384).
Add File... Adds a source file to the project.
Same as Project->Add Source File (see Build Project
Command , on page 312).
Change File... Replaces one source file with another.
Same as Project ->Change File (see Change File Command ,
on page 339).
Add Implementation Creates a new implementation.
Implementation Options Displays the Implementation Options dialog box, where you
can set various options for synthesis.
Same as Project->Implementation Options (see
Implementation Options Command , on page 348).
Add P&R Creates a place-and-route implementation to control and
Implementation run place and route from within the synthesis tool. See
Add P&R Implementation Popup Menu Command , on
page 480 for a description of the dialog box, and Running
P&R Automatically after Synthesis , on page 554 in the
User Guidefor information about using this feature.
View Log Displays the log file.
Same as View->View Log File (see View Menu , on page 327).
Frequency (MHz) Sets the global frequency, which you can override locally
with attributes.
Same as enabling the Frequency (MHz) option on the
Constraints panel of the Implementation Options dialog box.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 73
User Interface Overview Buttons and Options
Button/Option Action
Auto Constrain When Auto Constrain is enabled and no clocks are
defined, the software automatically constrains the design
to achieve best possible timing by reducing periods of
individual clock and the timing of any timed I/O paths in
successive steps.
See Using Auto Constraints , on page 376 in the User
Guide for detailed information about using this option.
You can also set this option on the Constraints panel of the
Implementation Options dialog box.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
74 Synopsys Confidential Information January 2024
Buttons and Options User Interface Overview
Button/Option Action
Resource Sharing When enabled, makes the compiler use resource sharing
techniques. This option does not affect resource sharing
by the mapper.
The option is the same as the Resource Sharing option on
the Options panel of the Implementation Options dialog box.
See Sharing Resources , on page 422 in the User Guide for
usage details.
Retiming When enabled, improves the timing performance of
sequential circuits. The retiming process moves storage
devices (flip-flops) across computational elements with no
memory (gates/LUTs) to improve the performance of the
circuit. This option also adds a retiming report to the log
file.
Same as enabling the Retiming option on the Options panel
of the Implementation Options dialog box. Use the
syn_allow_retiming attribute to enable or disable retiming for
individual flip-flops. See syn_allow_retiming , on page 59
for syntax details.
Run Runs synthesis (compilation and mapping).
Same as the Run->Run command (see Run Menu , on
page 384).
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 75
User Interface Overview Buttons and Options
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
76 Synopsys Confidential Information January 2024
CHAPTER 3
The HDL Analyst tool helps you examine your design and synthesis results,
and analyze how you can improve design performance and area.
The following describe the HDL Analyst tool and the operations you can
perform with it.
• HDL Analyst Views and Commands, on page 78
• Schematic Objects and Their Display, on page 88
• Basic Operations on Schematic Objects, on page 97
• Multiple-sheet Schematics, on page 102
• Exploring Design Hierarchy, on page 105
• Filtering and Flattening Schematics, on page 113
• Timing Information and Critical Paths, on page 119
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 77
HDL Analyst Tool HDL Analyst Views and Commands
RTL View
The RTL view provides a high-level, technology-independent, graphic repre-
sentation of your design after compilation, using technology-independent
components like variable-width adders, registers, large multiplexers, and
state machines. RTL views correspond to the srs netlist files generated during
compilation. RTL views are only available after your design has been success-
fully compiled. For information about the other HDL Analyst view (the
Technology view generated after mapping), see Technology View, on page 80.
To display an RTL view, first compile or synthesize your design, then select
HDL Analyst->RTL and choose Hierarchical View or Flattened View, or click the
RTL icon ( ).
An RTL view has two panes: a Hierarchy Browser on the left and an RTL
schematic on the right. You can drag the pane divider with the mouse to
change the relative pane sizes. For more information about the Hierarchy
Browser, see Hierarchy Browser, on page 82. Your design is drawn as a set of
schematics. The schematic for a design module (or the top level) consists of
one or more sheets, only one of which is visible in a given view at any time.
The title bar of the window indicates the current hierarchical schematic level,
LO
the current sheet, and the total number of sheets for that level.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
78 Synopsys Confidential Information January 2024
HDL Analyst Views and Commands HDL Analyst Tool
The design in the RTL schematic can be hierarchical or flattened. Further, the
view can consist of the entire design or part of it. Different commands apply,
depending on the kind of RTL view.
The following table lists where to find further information about the RTL view:
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 79
HDL Analyst Tool HDL Analyst Views and Commands
Technology View
A Technology view provides a low-level, technology-specific view of your
design after mapping, using components such as look-up tables, cascade and
carry chains, multiplexers, and flip-flops. Technology views are only available
after your design has been synthesized (compiled and mapped). For informa-
tion about the other HDL Analyst view (the RTL view generated after compila-
tion), see RTL View, on page 78.
To display a Technology view, first synthesize your design, and then either
select a view from the HDL Analyst->Technology menu (Hierarchical View, Flattened
View, Flattened to Gates View, Hierarchical Critical Path, or Flattened Critical Path) or
select the Technology view icon ( ).
A Technology view has two panes: a Hierarchy Browser on the left and an RTL
schematic on the right. You can drag the pane divider with the mouse to
change the relative pane sizes. For more information about the Hierarchy
Browser, see Hierarchy Browser, on page 82. Your design is drawn as a set of
schematics at different design levels. The schematic for a design module (or
the top level) consists of one or more sheets, only one of which is visible in a
given view at any time. The title bar of the window indicates the current
schematic level, the current sheet, and the total number of sheets for that
level.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
80 Synopsys Confidential Information January 2024
HDL Analyst Views and Commands HDL Analyst Tool
The schematic design can be hierarchical or flattened. Further, the view can
consist of the entire design or a part of it. Different commands apply,
depending on the kind of view. In addition to all the features available in RTL
views, Technology views have two additional features: critical path filtering
and flattening to gates.
The following table lists where to find further information about the
Technology view:
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 81
HDL Analyst Tool HDL Analyst Views and Commands
Hierarchy Browser
The Hierarchy Browser is the left pane in the RTL and Technology views. (See
RTL View, on page 78 and Technology View, on page 80.) The Hierarchy
Browser categorizes the design objects in a series of trees, and lets you
browse the design hierarchy or select objects. Selecting an object in the
Browser selects that object in the schematic. The objects are organized as
shown in the following table, with a symbol that indicates the object type. See
Hierarchy Browser Symbols, on page 83 for common symbols.
Instances Lists all the instances and primitives in the design. In a Technology
view, it includes all technology-specific primitives.
Ports Lists all the ports in the design.
Clock Tree Lists all the instances and ports that drive clock pins in an RTL view. If
you select everything listed under Clock Tree and then use the Filter
Schematic command, you see a filtered view of all clock pin drivers in
your design. Registers are not shown in the resulting schematic,
unless they drive clocks. This view can help you determine what to
define as clocks.
You can use the keyboard arrow keys (left, right, up, down) to move between
objects in the Hierarchy Browser, or you can use the scroll bar. Use the Shift
or Ctrl keys to select multipleLO
objects. See Navigating With a Hierarchy
Browser, on page 109 for more information about using the Hierarchy
Browser for navigation and crossprobing.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
82 Synopsys Confidential Information January 2024
HDL Analyst Views and Commands HDL Analyst Tool
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 83
HDL Analyst Tool HDL Analyst Views and Commands
For the FSM Viewer to display state machine names for a Verilog design, you
must use the Verilog parameter keyword. If you specify state machine names
using the define keyword, the FSM Viewer displays the binary values for the
state machines, rather than their names.
You can toggle display of the FSM tables on and off with the Toggle FSM Table
icon ( ) on the FSM toolbar. The FSM tables are in the following panels:
• The Transitions panel describes, for each transition, the From State, To State,
and Condition of transition.
• The RTL Encodings panel describes the correlation, in the RTL view,
between the states (State) and the outputs (Register) of the FSM cell.
• The Mapped Encodings panel describes the correlation, in the Technology
view, between the states (State) and their encodings into
technology-specific registers. The information in this panel is available
only after the design has been synthesized.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
84 Synopsys Confidential Information January 2024
HDL Analyst Views and Commands HDL Analyst Tool
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 85
HDL Analyst Tool HDL Analyst Views and Commands
Filtering commands affect only the displayed schematic, not the under-
lying design. See the following topics:
• For a detailed description of filtering, see Filtering and Flattening
Schematics, on page 113.
• For procedures on using filtering, see Filtering Schematics, on page 340
in the User Guide.
For brevity, this document primarily refers to the menu method of accessing
the commands and does not list alternative access methods.
See also:
• HDL Analyst Menu, on page 414
LO
• View Menu, on page 327
• RTL and Technology Views Popup Menus, on page 485
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
86 Synopsys Confidential Information January 2024
HDL Analyst Views and Commands HDL Analyst Tool
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 87
HDL Analyst Tool Schematic Objects and Their Display
Object Information
To obtain information about specific objects, you can view object properties
with the Properties command from the right-click popup menu, or place the
pointer over the object and view the object information displayed. With the
latter method, information about the object displays in these two places until
you move the pointer away:
• The status bar at the bottom of the synthesis window displays the name
of the instance, net, port, or sheet connector and other relevant informa-
tion. If HDL Analyst->Show Timing Information is enabled, the status bar also
displays timing information for the object. Here is an example of the
status bar information for a net:
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
88 Synopsys Confidential Information January 2024
Schematic Objects and Their Display HDL Analyst Tool
Mouse pointer
Tooltip
To disable tooltip display, select View -> Toolbars and disable the Show
Tooltips option. Do this if you want to reduce clutter.
See also
• Pin and Pin Name Display for Opaque Objects, on page 94
• Standard HDL Analyst Options Command, on page 446
Sheet Connectors
When the HDL Analyst tool divides a schematic into multiple sheets, sheet
connector symbols indicate how sheets are related. A sheet connector symbol
is like a port symbol, but it has an empty diamond with sheet numbers at one
end. Use the Options->HDL Analyst Options command (see Sheet Size Panel, on
page 452) to control how the schematic is divided into multiple sheets.
Ports
If you enable the Show Sheet Connector Index option in the (Options->HDL Analyst
Options), the empty diamond becomes a hexagon with a list of the connected
sheets. You go to a connecting sheet by right-clicking a sheet connector and
choosing the sheet number from the popup menu. The menu has as many
sheet numbers as there are sheets connected to the net at that point.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 89
HDL Analyst Tool Schematic Objects and Their Display
Show
Show
See also
• Multiple-sheet Schematics, on page 102
• Standard HDL Analyst Options Command, on page 446
• RTL and Technology Views Popup Menus, on page 485
Primitive Instances
Although some primitive objects have hierarchy, the term is used here to
distinguish these objects from user-defined hierarchies. Primitive instances
include the following:
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
90 Synopsys Confidential Information January 2024
Schematic Objects and Their Display HDL Analyst Tool
Hierarchical Instances
Hierarchical instances are user-defined hierarchies; all other instances are
considered to be primitives. Hierarchical instances correspond to Verilog
modules and VHDL entities.
The Hierarchy Browser lists hierarchical instances under Instances, and uses
this symbol: . In a schematic, the display of hierarchical instances
depends on the combination of the following:
• Whether the instance is transparent or opaque. Transparent instances
show their internal details nested inside them; opaque instances do not.
You cannot directly control whether an object is transparent or opaque;
the views are automatically generated by certain commands. See Trans-
parent and Opaque Display of Hierarchical Instances, on page 91 for
details.
• Whether the instance is hidden or not. This is user-controlled, and you
can hide instances so that they are ignored by certain commands. See
Hidden Hierarchical Instances, on page 93 for more information.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 91
HDL Analyst Tool Schematic Objects and Their Display
No nested logic
See also
• Looking Inside Hierarchical Instances, on page 110
LO
• Multiple Sheets for Transparent Instance Details, on page 104
• Filtered and Unfiltered Schematic Views, on page 85
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
92 Synopsys Confidential Information January 2024
Schematic Objects and Their Display HDL Analyst Tool
Schematic Display
The HDL Analyst Options dialog box controls general properties for all HDL
Analyst views, and can determine the display of schematic object informa-
tion. Setting a display option affects all objects of the given type in all views.
Some schematic options only take effect in schematic windows opened after
the setting change; others affect existing schematic windows as well.
The following are some commonly used settings that affect the display of
schematic objects. See Standard HDL Analyst Options Command, on
page 446 for a complete list of display options.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 93
HDL Analyst Tool Schematic Objects and Their Display
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
94 Synopsys Confidential Information January 2024
Schematic Objects and Their Display HDL Analyst Tool
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 95
HDL Analyst Tool Schematic Objects and Their Display
To display pin names for the instance, enable Options->HDL Analyst Options->Text
->Show Pin Name. The software temporarily displays the pin name when you
move the cursor over a pin. To keep the pin name displayed even after you
move the cursor away, select the pin. The name remains until you select
something else.
Primitives
To display pin names for technology primitives in the Technology view, enable
Options-> HDL Analyst Options->Text->Show Pin Name. The software displays the pin
names until the option is disabled. If Show Pin Name is enabled when Options->
HDL Analyst Options->General->Show Cell Interior is also enabled, the primitive is
treated like a transparent hierarchical instance, and primitive pin names are
only displayed when the cursor moves over the pins. To keep a pin name
displayed even after you move the cursor away, select the pin. The name
remains until you select something else.
See also:
• Standard HDL Analyst Options Command, on page 446
• Controlling the Amount of Logic on a Sheet, on page 102
• Analyzing Timing in Schematic Views, on page 358 in the User Guide
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
96 Synopsys Confidential Information January 2024
Basic Operations on Schematic Objects HDL Analyst Tool
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 97
HDL Analyst Tool Basic Operations on Schematic Objects
This command selects all found objects, whether or not they are
displayed in the current schematic. Although you can search for hidden
instances, you cannot find objects that are inside hidden instances at a
lower level. Temporarily hiding an instance thus further refines the
search range by excluding the internals of a a given instance. This can
be very useful when working with transparent instances, because the
lower-level details appear at the current level, and cannot be excluded
by choosing Current Level Only. See Using Find for Hierarchical and
Restricted Searches, on page 318 in the User Guide.
• Edit -> Find command combined with filtering
Edit->Find enhances filtering. Use Find to select by name and hierarchical
level, and then filter the design to limit the display to the current selec-
tion. Unselected objects are removed. Because Find only adds to the
current selection (it never deselects anything already selected), you can
use successive searches to build up exactly the selection you need,
before filtering.
• Filtering before searching with Edit->Find
Filtering helps you to fine-tune the range of a search. You can search for
objects just within a filtered schematic by limiting the search range to
the Current Level Only.
See Filtering and Flattening Schematics, on page 113 for further informa-
tion.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
98 Synopsys Confidential Information January 2024
Basic Operations on Schematic Objects HDL Analyst Tool
The following briefly list selection methods; for a concise table of selection
procedures, see Selecting Objects in the RTL/Technology Views, on page 302
in the User Guide.
The HDL Analyst menu commands that affect selection include the following:
• Expansion commands like Expand, Expand to Register/Port, Expand Paths,
and Expand Inwards select the objects that result from the expansion. This
means that (except for Expand to Register/Port) you can perform successive
expansions and expand the set of objects selected.
• The Select All Schematic and Select All Sheet commands select all instances
or ports on the current schematic or sheet, respectively.
• The Select Net Driver and Select Net Instances commands select the appro-
priate objects according to the hierarchical level you have chosen.
• Deselect All deselects all objects in all HDL Analyst views.
See also
• Finding Schematic Objects, on page 97
• HDL Analyst Menu, on page 414
Crossprobing Objects
Crossprobing helps you diagnose where coding changes or timing constraints
might reduce area or increase performance. When you crossprobe, you select
an object in one place and it or its equivalent is automatically selected and
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 99
HDL Analyst Tool Basic Operations on Schematic Objects
highlighted in other places. For example, selecting text in the Text Editor
automatically selects the corresponding logic in all HDL Analyst views.
Whenever a net is selected, it is highlighted through all the hierarchical
instances it traverses, at all schematic levels.
The following table summarizes crossprobing to and from HDL Analyst (RTL
and Technology) views. For information about crossprobing procedures, see
Crossprobing (Standard), on page 329 in the User Guide.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
100 Synopsys Confidential Information January 2024
Basic Operations on Schematic Objects HDL Analyst Tool
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 101
HDL Analyst Tool Multiple-sheet Schematics
Multiple-sheet Schematics
When there is too much logic to display on a single sheet, the HDL Analyst
tool uses additional schematic sheets. Large designs can take several sheets.
In a hierarchical schematic, each module consists of one or more sheets.
Sheet connector symbols (Sheet Connectors, on page 89) mark logic connec-
tions from one sheet to the next.
See also:
• Standard HDL Analyst Options Command, on page 446
• Setting Schematic Preferences, on page 305 of the User Guide.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
102 Synopsys Confidential Information January 2024
Multiple-sheet Schematics HDL Analyst Tool
The title bar also indicates, for the current schematic, the number of the
displayed sheet, and the total number of sheets — for example, sheet 2 of 4. A
schematic is initially opened to its first sheet.
For details, see Working with Multisheet Schematics, on page 303 in the User
Guide.
You can navigate among different design levels by pushing and popping the
design hierarchy. Doing so adds to the display history of the View menu, so
you can retrace your push/pop steps using View -> Back and View->Forward.
After pushing down, you can either pop back up or use View->Back.
See also:
• Filtering and Flattening Schematics, on page 113
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 103
HDL Analyst Tool Multiple-sheet Schematics
See also:
• Controlling the Amount of Logic on a Sheet, on page 102
• View Menu: RTL and Technology Views Commands, on page 328
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
104 Synopsys Confidential Information January 2024
Exploring Design Hierarchy HDL Analyst Tool
Pushing and popping is best suited for traversing the hierarchy of a specific
object. If you want a more general view of your design hierarchy, use the
Hierarchy Browser instead. See Navigating With a Hierarchy Browser, on
page 109 and Looking Inside Hierarchical Instances, on page 110 for other
ways of viewing design hierarchy.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 105
HDL Analyst Tool Exploring Design Hierarchy
When you push/pop, the HDL Analyst window displays the appropriate level
of design hierarchy, except in the following cases:
• In the Synplify Pro tool, the FSM Viewer opens, with graphical informa-
tion about the FSM. See the FSM Viewer Window, on page 83, for more
information.
• When you push into an inferred ROM in an RTL view, the Text Editor
window opens and displays the ROM data table (rom.info file).
You can use the following indicators to determine whether you can push into
an object:
• The mouse pointer shape when Push/Pop mode is enabled. See How to
Push and Pop Hierarchical Levels, on page 106 for details.
• A small H symbol ( ) in the lower left corner indicates a hidden
instance, and you cannot push into it.
• The Hierarchy Browser symbols indicates the type of instance and you
can use that to determine whether you can push into an object. For
example, hierarchical instance ( ), technology-specific primitive
( ), logic primitive such as XOR ( ), or other primitive instance
( ). The browser symbol does not indicate whether or not an instance
is hidden.
• The status bar at the bottom of the main synthesis tool window reports
information about the object under the pointer, including whether or not
it is a hidden instance or a primitive.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
106 Synopsys Confidential Information January 2024
Exploring Design Hierarchy HDL Analyst Tool
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 107
HDL Analyst Tool Exploring Design Hierarchy
The following arrow mouse pointers indicate status in Push/Pop mode. For
other indicators, see Pushable Schematic Objects, on page 105.
A down arrow Indicates that you can push (descend) into the object under
the pointer and view its details at the next lower level.
An up arrow Indicates that there is a hierarchical level above the current
sheet.
A crossed-out Indicates that there is no accessible hierarchy above or below
double arrow the current pointer position. If the pointer is over the
schematic background it indicates that the current level is the
top and you cannot pop higher. If the pointer is over an object,
the object is an object you cannot push into: a
non-hierarchical instance, a hidden hierarchical instance, or a
black box.
See also:
• Hidden Hierarchical Instances, on page 93
• Transparent and Opaque Display of Hierarchical Instances, on page 91
• Using Mouse Strokes, on page 53
• Navigating With a Hierarchy Browser, on page 109
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
108 Synopsys Confidential Information January 2024
Exploring Design Hierarchy HDL Analyst Tool
The browser in the RTL view displays the hierarchy specified in the RTL
design description. The browser in the Technology view displays the
hierarchy of your design after technology mapping.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 109
HDL Analyst Tool Exploring Design Hierarchy
press Ctrl and select the objects in the browser. To select a range of schematic
objects, click an object at one end of the range, then hold the Shift key while
clicking the name of an object at the other end of the range.
See also:
• Crossprobing Objects, on page 99
• Pushing and Popping Hierarchical Levels, on page 105
• Hierarchy Browser Popup Menu Commands, on page 485
Transparent instances provide design context. They show the lower-level logic
nested within the transparent instance at the current design level, while
pushing shows the same logic a level down. The following figure compares the
same lower-level logic viewed in a transparent instance and a push operation:
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
110 Synopsys Confidential Information January 2024
Exploring Design Hierarchy HDL Analyst Tool
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 111
HDL Analyst Tool Exploring Design Hierarchy
See also:
• Pushing and Popping Hierarchical Levels, on page 105
• Navigating With a Hierarchy Browser, on page 109
• HDL Analyst Command, on page 415
• Transparent and Opaque Display of Hierarchical Instances, on page 91
• Hidden Hierarchical Instances, on page 93
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
112 Synopsys Confidential Information January 2024
Filtering and Flattening Schematics HDL Analyst Tool
All the filtering commands, except those that display critical paths, operate
on the currently selected schematic object(s). The critical path commands
operate on your entire design, regardless of what is currently selected.
All the filtering commands except Isolate Paths are accessible from the HDL
Analyst menu; Isolate Paths is in the RTL view and Technology view popup
menus (along with most of the other commands above).
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 113
HDL Analyst Tool Filtering and Flattening Schematics
See also:
• Filtered and Unfiltered Schematic Views, on page 85
• HDL Analyst Menu, on page 414 and RTL and Technology Views Popup
Menus, on page 485
2. Select Expand to expand from one of the output pins of the instance to
add its immediate successor cells to the display. See HDL Analyst Menu:
Hierarchical and Current Level Submenus, on page 415 for a description
of the command.
3. Use Select Net Driver to add the net driver of a net connected to one of the
successors. See HDL Analyst Menu: Hierarchical and Current Level
Submenus, on page 415 for a description of the command.
4. Use Isolate Paths to isolate the net driver instance, along with any of its
connecting paths that were already displayed. See HDL Analyst Menu:
Analysis Commands, on page 421 for a description of the command.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
114 Synopsys Confidential Information January 2024
Filtering and Flattening Schematics HDL Analyst Tool
There is no Unfilter command. Use Show Context to see the unfiltered schematic
containing a given instance. Use View->Back to return to the previous, unfil-
tered display after filtering an unfiltered schematic. You can go back and
forth between the original, unfiltered design and the filtered schematics,
using the commands View->Back and Forward.
See also:
• RTL and Technology Views Popup Menus, on page 485
• View Menu: RTL and Technology Views Commands, on page 328
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 115
HDL Analyst Tool Filtering and Flattening Schematics
Unflatten Schematic Undoes any flattening done by Dissolve Instances and Flatten
Current Schematic at the current schematic level. Returns to the
original schematic, as it was before flattening (and any
filtering).
All the commands are on the HDL Analyst menu except Unflatten Schematic,
which is available in a schematic popup menu.
The most versatile commands, are Dissolve Instances and Flatten Current
Schematic, which you can also use for selective flattening (Selective Flattening,
on page 116).
See also:
• Filtering Compared to Flattening, on page 117
• Selective Flattening, on page 116
Selective Flattening
By default, flattening operations are not very selective. However, you can
selectively flatten particular instances with these command (see RTL and
Technology Views Popup Menus, on page 485 for descriptions):
• Use Hide Instances to hide instances that you do not want to flatten, then
flatten the others (flattening operations do not recognize hidden
instances). After flattening, you can Unhide Instances that are hidden.
• Flatten selected hierarchical instances using one of these commands:
– If the current schematic is unfiltered, use Dissolve Instances.
– If the schematic is filtered, use Dissolve Instances, followed by Flatten
Current Schematic. In aLO
filtered schematic, Dissolve Instances makes the
selected instances transparent and Flatten Current Schematic flattens
only transparent instances.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
116 Synopsys Confidential Information January 2024
Filtering and Flattening Schematics HDL Analyst Tool
The Dissolve Instances and Flatten Current Schematic (or Flatten Schematic)
commands behave differently in filtered and unfiltered schematics as
outlined in the following table:
Although the result displayed is that of Step 2, you can view the intermediate
result of Step 1 with View->Back. This is because the display history is erased
before flattening (Step 1), and the result of Step 1 is added to the history as if
you had viewed it.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 117
HDL Analyst Tool Filtering and Flattening Schematics
See also:
• RTL and Technology Views Popup Menus, on page 485
• Selective Flattening, on page 116
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
118 Synopsys Confidential Information January 2024
Timing Information and Critical Paths HDL Analyst Tool
Timing Reports
When you synthesize a design, a default timing report is automatically
written to the log file, which you can view using View->View Log File. This report
provides a clock summary, I/O timing summary, and detailed timing infor-
mation for your design.
For certain device technologies, you can use the Analysis->Timing Analyst
command to generate a custom timing report. Use this command to specify
start and end points of paths whose timing interests you, and set a limit for
the number of paths to analyze between these points. By default, the sequen-
tial instances, input ports, and output ports that are currently selected in the
Technology views of the design are the candidates for choosing start and end
points. In addition, the start and end points of the previous Timing Analyst run
become the default start and end points for the next run. When analyzing
timing, any latches in the path are treated as level-sensitive registers.
The custom timing report is stored in a text file named resultsfile.ta, where
resultsfile is the name of the results file (see Implementation Results Panel, on
page 355). In addition, a corresponding output netlist file is generated,
named resultsfile_ta.srm. Both files are in the implementation results direc-
tory.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 119
HDL Analyst Tool Timing Information and Critical Paths
The Timing Analyst dialog box provides check boxes for viewing the text report
(Open Report) in the Text Editor and the corresponding netlist (Open Schematic)
in a Technology view. This Technology view of the timing path, labeled Timing
View in the title bar, is special in two ways:
• The Timing View shows only the paths you specify in the Timing Analyst
dialog box. It corresponds to a special design netlist that contains
critical timing data.
• The Timing Analyst and Show Critical Path commands (and equivalent icons
and shortcuts) are unavailable whenever the Timing View is active.
See also:
• Analysis Menu, on page 402
• Timing Reports, on page 162
• Log File, on page 157
After you successfully run synthesis, you can display just the critical paths of
your design using any of the following commands from the HDL Analyst menu:
• Hierarchical Critical Path
• Flattened Critical Path
• Show Critical Path
The first two commands create a new Technology view, hierarchical or
flattened, respectively. The Show Critical Path command reuses the current
Technology view. Neither the current selection nor the current sheet display
have any effect on the result. The result is flat if the entire design was already
flat; otherwise it is hierarchical. Use Show Critical Path if you want to maintain
the existing display history.
All these commands filter yourLO design to show only the instances (and their
paths) with the worst slack times. They also enable HDL Analyst -> Show Timing
Information, displaying timing information.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
120 Synopsys Confidential Information January 2024
Timing Information and Critical Paths HDL Analyst Tool
Negative slack times indicate that your design has not met its timing require-
ments. The worst (most negative) slack time indicates the amount by which
delays in the critical path cause the timing of the design to fail. You can also
obtain a range of worst slack times by setting the slack margin parameter to
control the sensitivity of the critical-path display. Instances are displayed
only if their slack times are within the slack margin of the (absolutely) worst
slack time of the design.
The slack margin is the criterion for distinguishing worst slack times. The
larger the margin, the more relaxed the measure of worst, so the greater the
number of critical-path instances displayed. If the slack margin is zero (the
default value), then only instances with the worst slack time of the design are
shown. You use HDL Analyst->Set Slack Margin to change the slack margin.
The critical-path commands do not calculate a single critical path. They filter
out instances whose slack times are not too bad (as determined by the slack
margin), then display the remaining, worst-slack instances, together with
their connecting paths.
For example, if the worst slack time of your design is -10 ns and you set a
slack margin of 4 ns, then the critical path commands display all instances
with slack times between -6 ns and -10 ns.
See also:
• HDL Analyst Menu, on page 414
• HDL Analyst Command, on page 415
• Handling Negative Slack, on page 364 of the User Guide
• Analyzing Timing in Schematic Views, on page 358 of the User Guide
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 121
HDL Analyst Tool Timing Information and Critical Paths
Also, the Show Context and Goto Net Driver commands are particularly useful
after you have done some filtering. They let you get back to the original, unfil-
tered design, putting selected objects in context.
See also:
• Returning to The Unfiltered Schematic, on page 114
• Filtering and Flattening Schematics, on page 113
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
122 Synopsys Confidential Information January 2024
CHAPTER 4
Constraint Guidelines
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 123
Constraint Guidelines Constraint Types
Constraint Types
One way to ensure the FPGA synthesis tool achieves the best quality of
results for your design is to define proper constraints. In the FPGA environ-
ment, constraints can be categorized by the following types:
Type Description
Timing Performance constraints that guide the synthesis tools to achieve optimal
results. Examples: clocks (create_clock), clock groups (set_clock_groups),
and timing exceptions like multicycle and false paths (set_multicycle_path...)
See Timing Constraints , on page 127 for information on defining these
constraints.
Design Additional design goals that enhance or guide tool optimizations.
Examples: Attributes and directives (define_attribute, define_global_attribute),
I/O standards (define_io_standard), and compile points (define_compile_point).
The easiest way to specify constraints is through the SCOPE interface. The
tool saves timing and design constraints to an FDC file that you add to your
project.
See Also
Constraint Files , on page 125 Overview of constraint files
Timing Constraints , on page 127 Overview of timing constraint definitions and
FDC file generation.
SCOPE Constraints Editor , on Information about automatic generation of
page 214 timing and design constraints.
Timing Constraints , on page 260 Timing constraint syntax
Design Constraints , on page 303 Design constraint syntax
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
124 Synopsys Confidential Information January 2024
Constraint Files Constraint Guidelines
Constraint Files
The figure below shows the files used for specifying various types of
constraints. The FDC file is the most important one and is the primary file for
both timing and non-timing design constraints. The other constraint files are
used for specific features or as input files to generate the FDC file, as
described in Timing Constraints, on page 127. The figure also indicates the
specific processes controlled by attributes and directives.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 125
Constraint Guidelines Constraint Files
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
126 Synopsys Confidential Information January 2024
Timing Constraints Constraint Guidelines
Timing Constraints
The synthesis tool has supported different timing formats in the past, and
this section describes some of the details of standardization:
• Legacy SDC and Synopsys Standard SDC, on page 127
• FDC File Generation, on page 128
• Timing Constraint Precedence in Mixed Constraint Designs, on page 128
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 127
Constraint Guidelines Timing Constraints
It is not required that you convert Synopsys standard sdc constraints as the
figure implies, because they are already in the correct format. You could have
a design with mixed constraints, with separate Synopsys standard sdc and fdc
files. The disadvantage to keeping them in the standard sdc format is that you
cannot view or edit the constraints through the SCOPE interface.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
128 Synopsys Confidential Information January 2024
Timing Constraints Constraint Guidelines
The tool reads the file order listed in the project file and any conflicting
constraint overwrites a previous constraint. This means that constraint
priority is determined by the constraint that is read last.
For the list of FPGA timing constraints (FDC) and their syntax, see Timing
Constraints, on page 260.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 129
Constraint Guidelines FDC Constraints
FDC Constraints
The FPGA design constraints (FDC) file contains constraints that the tool uses
during synthesis. This FDC file includes both timing constraints and
non-timing constraints in a single file.
• Timing constraints define performance targets to achieve optimal
results. The constraints follow the Synopsys standard format, such as
create_clock, set_input_delay, and set_false_path.
• Non-timing (or design constraints) define additional goals that help the
tool optimize results. These constraints are unique to the FPGA
synthesis tools and include constraints such as define_attribute, define_io_-
standard, and define_compile_point.
% sdc2fdc
Once defined, the FDC file can be added to your project. Double-click this file
from the Project view to launch the SCOPE editor to view and/or modify your
constraints. See Converting SDC
LO to FDC, on page 164 for details on how to
run sdc2fdc.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
130 Synopsys Confidential Information January 2024
Methods for Creating Constraints Constraint Guidelines
New Designs
For new designs, you can specify constraints using any of the following
methods:
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 131
Constraint Guidelines Methods for Creating Constraints
If there are multiple timing exception constraints on the same object, the
software uses the guidelines described in Conflict Resolution for Timing Excep-
tions, on page 256 to determine the constraint that takes precedence.
See Also
To specify the correct syntax for the timing and design commands, see:
• Chapter 4, Constraint Commands
• Attribute Reference Manual
Existing Designs
The SCOPE editor in this release does not save constraints to SDC files. For
designs prior to G-2012.09, it is recommended that you migrate your timing
constraints to FDC format to take advantage of the tool’s enhanced handling
of these types of constraints. To migrate constraints, use the sdc2fdc
command (see Converting SDC to FDC, on page 164l) on your sdc files.
Note: If you need to edit an SDC file, either use a text editor, or
double-click the file to open the legacy SCOPE editor. For infor-
mation on editing older SDC files, see Using the SCOPE Editor
(Legacy), on page 165.
See Also
To use the current SCOPE editor, see:
• Chapter 4, Constraint Commands
• Chapter 5, Specifying Constraints
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
132 Synopsys Confidential Information January 2024
Constraint Translation Constraint Guidelines
Constraint Translation
The tool includes standalone scripts to convert specific vendor constraints, as
well as functionality that includes constraint translation as part of the larger
task of generating a synthesis project from vendor files.
sdc2fdc Conversion
The sdc2fdc Tcl shell command translates legacy FPGA timing constraints to
Synopsys FPGA timing constraints. This command scans the input SDC files
and attempts to convert constraints for the implementation.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 133
Constraint Guidelines Constraint Translation
"create_clock -name {clka} {p:clka} -period 10 -rise 5 Must specify both -rise and
-clockgroup {default_clkgroup_0" -fall, or neither
Synplicity SDC source file:
D:.../clk_prior/scratch/top.sdc. Line number: 32
Fix any issues in the SDC source file and rerun the sdc2fdc command.
Batch Mode
If you run sdc2fdc -batch, then the following occurs:
• The two Clock not translated messages in the table above are not
generated.
• When the translation is successful, the SDC file is disabled and the FDC
file is enabled and saved
LOautomatically in the project file.
However, if the -batch option is not used and the translation is
successful, then the SDC file is disabled and the FDC file is enabled but
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
134 Synopsys Confidential Information January 2024
Constraint Translation Constraint Guidelines
#############################################################################
####Source SDC file to the translation:
####D:/bugs/timing_88/clk_prior/scratch/top.sdc
#############################################################################
#Legacy constraint file
#C:\Clean_Demos\Constraints_Training\top.sdc
#Written on Mon May 21 15:58:35 2012
#by Synplify Pro, Synplify Pro Scope Editor
#
#Collections
#
define_scope_collection all_grp {define_collection \
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 135
Constraint Guidelines Constraint Translation
#Clock to Clock
#
#
#Inputs/Outputs
#
define_input_delay -disable {b[7:0]} 2.00 -ref clka:r
define_input_delay -disable {c[7:0]} 0.20 -ref clkb:r
define_input_delay -disable {d[7:0]} 0.30 -ref clkb:r
define_output_delay -disable {x[7:0]} -improve 0.00 -route 0.00
define_output_delay -disable {y[7:0]} -improve 0.00 -route 0.00
#
#Registers
#
#
#Multicycle Path
#
#
#False Path
#
#
define_false_path -disable -from {i:x[1]}
#
#Path Delay
#
#
#Attributes
#
define_io_standard -default_input -delay_type input syn_pad_type {LVCMOS_33}#
#I/O standards
#
#
#Compile Points
#
#
#Other Constraints
#############################################################################
#SDC compliant constraints translated from Legacy Timing Constraints
#############################################################################
#
set_rtl_ff_names {#}
LO
create_clock -name {clka} [get_ports {clka}] -period 10 -waveform {0 5.0}
create_clock -name {clkb} [get_ports {clkb}] -period 6.666666666666667
-waveform {0 3.3333333333333335}
set_input_delay -clock [get_clocks {clka}] -clock_fall -add_delay 0.000 [all_
inputs]
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
136 Synopsys Confidential Information January 2024
Constraint Translation Constraint Guidelines
set_multicycle_path 3 -end \
-from \
[find -seq {*y*.q[*]} ]
set_clock_groups -name default_clkgroup_0 -asynchronous \
-group [get_clocks {clka dcm|clk0_derived_clock dcm|
clk2x_derived_clock dcm|clk0fx_derived_clock}]
set_clock_groups -name default_clkgroup_1 -asynchronous \
-group [get_clocks {clkb}]
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 137
Constraint Guidelines Constraint Checking
Constraint Checking
The synthesis tool has several features to help you debug and analyze design
constraints. Use the constraint checker to check the syntax and applicability
of the timing constraints in the project. The synthesis log file includes a
timing report as well as detailed reports on the compiler, mapper, and
resource usage information for the design. A standalone timing analyzer
(STA) generates a customized timing report when you need more details
about specific paths or want to modify constraints and analyze, without
resynthesizing the design. The following sections provide more information
about these features.
Constraint Checker
Check syntax and other pertinent information on your constraint files using
Run->Constraint Check or the Check Constraints button in the SCOPE editor. This
command generates a report that checks the syntax and applicability of the
timing constraints that includes the following information:
• Constraints that are not applied
• Constraints that are valid and applicable to the design
• Wildcard expansion on the constraints
• Constraints on objects that do not exist
Note: Using collections with Tcl control constructs (such as if, for,
foreach, and while) can produce unexpected synthesis results.
Avoid defining constraints for collections with control constructs,
especially since the constraint checker does not recognize these
built-in Tcl commands.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
138 Synopsys Confidential Information January 2024
Constraint Checking Constraint Guidelines
File Description
_cck.rpt Lists the results of running the constraint checker (see Constraint
Checking Report , on page 173).
_cck_fdc_rpt Lists the wildcard expansion results of running the constraint
checker for collections with the get_* and all_* object query
commands using the check_fdc_query Tcl command. See
check_fdc_query , on page 30 for more information.
_scck.rpt Lists the results of running the constraint checker for collections
with the get_* and all_* object query commands.
.ta Reports timing analysis results (see Generating Custom Timing
Reports with STA , on page 366).
.srr or .htm Reports post-synthesis timing results as part of the text or HTML
log file (see Timing Reports , on page 162 and Log File , on
page 157).
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 139
Constraint Guidelines Database Object Search
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
140 Synopsys Confidential Information January 2024
Forward Annotation Constraint Guidelines
Forward Annotation
The tool can automatically generate vendor-specific constraint files for
forward annotation to the place-and-route tools when you enable the Write
Vendor Constraints switch (on the Implementation Results tab) or use the -write_apr_-
constraint option of the set_option command.
For information about how forward annotation is handled for your target
technology, refer to the appropriate vendor chapter of the FPGA Synthesis
Reference Manual.
Auto Constraints
Auto constraints are automatically generated by the synthesis tool, however,
these do not replace regular timing constraints in the normal synthesis flow.
Auto constraints are intended as a quick first pass to evaluate the kind of
timing constraints you need to set in your design.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 141
Constraint Guidelines Auto Constraints
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
142 Synopsys Confidential Information January 2024
CHAPTER 5
This chapter describes the input and output files used by the tool.
• Input Files, on page 144
• Libraries, on page 148
• Output Files, on page 152
• Log File, on page 157
• Timing Reports, on page 162
• Hierarchical Area Report, on page 172
• Constraint Checking Report, on page 173
• RAM Report, on page 180
• DSP Report, on page 181
• CDC Report, on page 182
• TMR Report, on page 182
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 143
Input and Result Files Input Files
Input Files
The following table describes the input files used by the synthesis tool.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
144 Synopsys Confidential Information January 2024
Input Files Input and Result Files
The Synopsys FPGA synthesis tool contains built-in macro libraries for
vendor macros like gates, counters, flip-flops, and I/Os. If you use the
built-in macro libraries, you can easily instantiate vendor macros directly
into the VHDL designs, and forward-annotate them to the output netlist.
Refer to the appropriate vendor support documentation for more information.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 145
Input and Result Files Input Files
VHDL
The Synopsys FPGA synthesis tool supports a synthesizable subset of
VHDL93 (IEEE 1076), and the following IEEE library packages:
• numeric_bit
• numeric_std
• std_logic_1164
The synthesis tool also supports the following industry standards in the IEEE
libraries:
• std_logic_arith
• std_logic_signed
• std_logic_unsigned
The Synopsys FPGA synthesis tool library contains an attributes package
(installDirectory/lib/vhd/synattr.vhd) of built-in attributes and timing constraints
that you can use with VHDL designs. The package includes declarations for
timing constraints (including black-box timing constraints), vendor-specific
attributes, and synthesis attributes. To access these built-in attributes, add
the following two lines to the beginning of each of the VHDL design units that
uses them:
library synplify;
use synplify.attributes.all;
For more information about the VHDL language, and the synthesis
commands and attributes you can include, see Chapter 3, VHDL Language
Support and Chapter 4, VHDL 2008 Language Support.
Verilog
The Synopsys FPGA synthesis tool supports a synthesizable subset of Verilog
2001 and Verilog 95 (IEEE 1364) and SystemVerilog extensions. For more
information about the Verilog language, and the synthesis commands and
attributes you can include, see Chapter 1, Verilog Language Support and
Chapter 2, SystemVerilog Language Support.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
146 Synopsys Confidential Information January 2024
Input Files Input and Result Files
The Synopsys FPGA synthesis tool contains built-in macro libraries for
vendor macros like gates, counters, flip-flops, and I/Os. If you use the
built-in macro libraries, you can instantiate vendor macros directly into
Verilog designs and forward-annotate them to the output netlist. Refer to the
User Guide for more information.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 147
Input and Result Files Libraries
Libraries
You can instantiate components from a library, which can be either in Verilog
or VHDL. For example, you might have technology-specific or custom IP
components in a library, or you might have generic library components. The
installDirectory/lib directory included with the software contains some compo-
nent libraries you can use for instantiation.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
148 Synopsys Confidential Information January 2024
Libraries Input and Result Files
#in bash
export disable_synovl=1
#in csh
setenv disable_synovl 1
When the default synovl library is disabled, the following message is gener-
ated in the log file: @N::Open Verification Library which is part of tool
installation, is being disabled by option "disable_synovl".
To use components from this directory, add the library to the project by doing
either of the following:
• Add add_file -verilog "$LIB/generic_technology/gtech.v to your .prj file or type it
in the Tcl window.
• In the tool window, click the Add file button, navigate to the installDirec-
tory/lib/generic_technology directory and select the gtech.v file.
When you synthesize the design, the tool uses components from this library.
You cannot use the generic technology library together with other generic
libraries, as this could result in a conflict. If you have your own GTECH
library that you intend to use, do not use the generic technology library.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 149
Input and Result Files Libraries
However, you can use the lib2syn executable to facilitate this conversion
process. The lib2syn.exe executable generates equivalent synthesizable
Verilog/VHDL definitions for the cells defined in the input .lib file. You can
find this executable at these locations:
• Windows: installDirectory/bin/lib2syn.exe
• Linux: installDirectory/bin/lib2syn
The executable can be run as shown in these examples:
• For Verilog output: lib2syn.exe test.lib -ovm a.vm -logfile test_lib2syn.log
• For VHDL output: lib2syn.exe test.lib -ovhm a.vhm -logfile test_lib2syn.log
The tool supports the Synopsys GTECH library flow by default, so you do not
need the .lib file equivalent synthesizable Verilog/VHDL definitions for a
NETLIST mapped to a GTECH library.
Note that for the synthesis flow, the lib2syn executable does not translate cells
with state table definitions.
The synthesis tools do not read Synopsys Liberty format (.syn) files directly.
However, there are workarounds.
• If your design has instantiated ASIC cells, do the following:
– Get the Verilog functional files for the instantiated components.
– Add the functional files to your project as libraries.
• If you have an ASIC library
LO in the Liberty (.lib) or .sel format, do the
following:
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
150 Synopsys Confidential Information January 2024
Libraries Input and Result Files
– Convert the ASIC library into a Verilog functional file with the lib2syn
utility. The lib2syn command syntax is shown below:
installDirectory/bin/lib2syn.exe library.lib - ovm VerilogFunctionalFile
or
installDirectory/bin/lib2syn.exe library.sel -ovm VerilogFunctionalFile
– Add the functional file to your project as a library.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 151
Input and Result Files Output Files
Output Files
The synthesis tool generates reports about the synthesis run and files that
you can use for simulation or placement and routing. The following table
describes the output files, categorizing them as either synthesis result and
report files, or output files generated as input for other tools.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
152 Synopsys Confidential Information January 2024
Output Files Input and Result Files
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 153
Input and Result Files Output Files
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
154 Synopsys Confidential Information January 2024
Output Files Input and Result Files
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 155
Input and Result Files Output Files
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
156 Synopsys Confidential Information January 2024
Log File Input and Result Files
Log File
The log file report, located in the implementation directory, is written out in
two file formats: text (projectName.srr) and HTML with an interactive table of
contents (projectName.htm and projectName_srr.htm) where projectName is the
name of your project. Select View Log File in HTML in the Options->Project View
Options dialog box to enable viewing the log file in HTML. Select the View Log
button in the Project view (Buttons and Options, on page 72) to see the log file
report.
The log file is written each time you compile or synthesize (compile and map)
the design. When you compile a design without mapping it, the log file
contains only compiler information. As a precaution, a backup copy of the log
file (.srr) is written to the backup sub-directory in the Implementation Results
directory. Only one backup log file is updated for subsequent synthesis runs.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 157
Input and Result Files Log File
The log file contains detailed reports on the compiler, mapper, timing, and
resource usage information for your design. Errors, notes, warnings, and
messages appear in both the log file and on the Messages tab in the Tcl
window.
For further details about different sections of the log file, see the following:
Compiler Report
This report starts with the compiler version and date, and includes the
following:
• Project information: theLO
top-level module.
• Design information: HDL syntax and synthesis checks, black box
instantiations, FSM extractions and inferred RAMs/ROMs.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
158 Synopsys Confidential Information January 2024
Log File Input and Result Files
Premap Report
This report begins with the pre-mapper version and date, and reports the
following:
• File loading times and memory usage
• Clock summary - For details, see Clock Pre-map Reports, on page 165.
Mapper Report
This report begins with the mapper version and date, and reports the
following:
• Project information: the names of the constraint files, target technology,
and attributes set in the design.
• Design information such as flattened instances, extraction of counters,
FSM implementations, clock nets, buffered nets, replicated logic, HDL
optimizations, and informational or warning messages.
Clock Buffers:
Inserting Clock buffer for port clock0,TNM=clock0
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 159
Input and Result Files Log File
For more information on compile points and the compile-point synthesis flow,
see Synthesizing Compile Points, on page 455 of the User Guide.
Timing Section
A default timing report is written to the log file (projectName.srr) in the “START
OF TIMING REPORT” section. See Timing Reports, on page 162, for details.
For certain device technologies in the Synplify Pro tool, you can use the Timing
Analyst to generate additional timing reports for point-to-point analysis (see
Analysis Menu, on page 402). Their format is the same as the timing report.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
160 Synopsys Confidential Information January 2024
Log File Input and Result Files
See Checking Resource Usage, on page 201 in the User Guide for a brief
procedure on using the report to check for overutilization.
Retiming Report
Whenever retiming is enabled, a retiming report is added to the log file
(projectName.srr). It includes information about the design changes made as a
result of retiming, such as the following:
• The number of flip-flops added, removed, or modified because of
retiming. Flip-flops modified by retiming have a _ret suffix added to their
names.
• Names of the flip-flops that were moved by retiming and no longer exist
in the Technology view.
• Names of the flip-flops created as result of the retiming moves, that did
not exist in the RTL view.
• Names of the flip-flops modified by retiming; for example, flip-flops that
are in the RTL and Technology views, but have different fanouts because
of retiming.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 161
Input and Result Files Timing Reports
Timing Reports
Timing results can be written to one or more of the following files:
.srr or .htm Log file that contains a default timing report. To find this
information, after synthesis completes, open the log file
(View -> Log File), and search for START OF TIMING REPORT.
.ta Timing analysis file that contains timing information
based on the parameters you specify in the stand-alone
Timing Analyst (Analysis->Timing Analyst).
designName_async_clk Asynchronous clock report file that is generated when you
.rpt.scv enable the related option in the stand-alone Timing
Analyzer (Analysis->Timing Analyst). This report can be
displayed in a spreadsheet tool and contains information
for paths that cross between multiple clock groups. See
Asynchronous Clock Report , on page 170 for details on
this report.
The timing reports in the .srr/.htm and .ta files have the following sections:
• Timing Report Header, on page 163
• Performance Summary, on page 163
• Clock Pre-map Reports, on page 165
• Clock Relationships, on page 168
• Interface Information, on page 169
• Asynchronous Clock Report, on page 170
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
162 Synopsys Confidential Information January 2024
Timing Reports Input and Result Files
You can control the size of the timing report by choosing Project -> Implementa-
tion Options, clicking the Timing Report tab of the panel, and specifying the
number of start/end points and the number of critical paths to report. See
Timing Report Panel, on page 357, for details.
Performance Summary
The Performance Summary section of the timing report lists estimated and
requested frequencies for the clocks, with the clocks sorted by negative slack.
The timing report has a different section for detailed clock information.
The Performance Summary lists the following information for each clock in the
design:
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 163
Input and Result Files Timing Reports
The synthesis tool does not report inferred clocks that have an unreasonable
slack time. Also, a real clock might have a negative period. For example,
suppose you have a clock going to a single flip-flop, which has a single path
going to an output. If you specify an output delay of -1000 on this output,
then the synthesis tool cannot calculate the clock frequency. It reports a
negative period and no clock.
Clock Types
The synthesis timing reports include the following types of clocks:
• Declared Clocks
User-defined clocks specified in the constraint file.
• Inferred Clocks LO
These are clocks that the synthesis timing engine finds during
synthesis, but which have not been constrained by the user. The tool
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
164 Synopsys Confidential Information January 2024
Timing Reports Input and Result Files
assigns the default global frequency specified for the project to these
clocks.
• Derived Clocks
These are clocks that the synthesis tool identifies from a clock
divider/multiplier such as DCM.
• System Clock
The system clock is the delay for the combinational path. Additionally, a
system clock can be reported if there are sequential elements in the
design for a clock network that cannot be traced back to a clock. Also,
the system clock can occur for unconstrained I/O ports. You must
investigate these conditions.
Paths to/from black boxes are timed by the system clock. Add the black-box
timing constraints. See syn_black_box, on page 63 for the black box source
code directives.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 165
Input and Result Files Timing Reports
Clock Summary
Here is an example of the pre-map Clock Summary report.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
166 Synopsys Confidential Information January 2024
Timing Reports Input and Result Files
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 167
Input and Result Files Timing Reports
Clock Relationships
For each pair of clocks in the design, the Clock Relationships section of the
timing report lists both the required time (constraint) and the worst slack time
for each of the intervals rise to rise, fall to fall, rise to fall, and fall to rise. See
Cross-Clock Path Timing Analysis, on page 168 for details about cross-clock
paths.
This information is provided for the paths between related clocks (that is,
clocks in the same clock group). If there is no path at all between two clocks,
then that pair is not reported. If there is no path for a given pair of edges
between two clocks, then an entry of No paths appears.
For information about how these relationships are calculated, see Clock
Groups, on page 217. For tips on using clock groups, see Defining Other Clock
Requirements, on page 177 in the User Guide.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
168 Synopsys Confidential Information January 2024
Timing Reports Input and Result Files
The estimated frequency for a clock is the minimum frequency over all paths
that start or end on that clock, with the following exceptions:
• The tool does not consider paths between the system clock and another
clock to estimate frequency.
• It considers paths with a path delay constraint to be asynchronous, and
does not use them to estimate frequency.
• It considers paths between clocks in different domains to be asynchro-
nous, and does not use them to estimate frequency.
Interface Information
The interface section of the timing report contains information on arrival
times, required times, and slack for the top-level ports. It is divided into two
subsections, one each for Input Ports and Output Ports. Bidirectional ports are
listed under both. For each port, the interface report contains the following
information.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 169
Input and Result Files Timing Reports
Column Description
Index Path number.
Path Delay Delay value as reported in standard timing (ta) file.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
170 Synopsys Confidential Information January 2024
Timing Reports Input and Result Files
Column Description
Data Start Pin Sequential device output pin at start of path.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 171
Input and Result Files Hierarchical Area Report
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
172 Synopsys Confidential Information January 2024
Constraint Checking Report Input and Result Files
Reporting Details
This constraint checking file reports the following:
• Constraints that are not applied
• Constraints that are valid and applicable to the design
• Wildcard expansion on the constraints
• Constraints on objects that do not exist
It contains the following sections:
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 173
Input and Result Files Constraint Checking Report
Inapplicable Constraints
Refer to the following table for constraints that were not applied because
objects do not exist or the object type check was not valid:
create_clock • Ports
• Nets
• Pins
• Registers
• Instantiated buffers
create_generated_clock Clocks
define_compile_point • Region
• View
define_current_design v:view
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
174 Synopsys Confidential Information January 2024
Constraint Checking Report Input and Result Files
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 175
Input and Result Files Constraint Checking Report
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
176 Synopsys Confidential Information January 2024
Constraint Checking Report Input and Result Files
Clock Relationships
*******************
Starting Ending | rise to rise | fall to fall | rise to fall | fall to rise
------------------------------------------------------------------------------------
clk2x clk2x | 24.000 | 24.000 | 12.000 | 12.000
------------------------------------------------------------------------------------
clk2x clk | 24.000 | No paths | No paths | 12.000
clk clk2x | 24.000 | No paths | 12.000 | No paths
clk clk | 48.000 | No paths | No paths | No paths
====================================================================================
Note:
'No paths' indicates there are no paths in the design for that pair of clock edges.
'Diff grp' indicates that paths exist but the starting clock and ending clock are in
different clock groups
Inapplicable constraints
************************
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 177
Input and Result Files Constraint Checking Report
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
178 Synopsys Confidential Information January 2024
Constraint Checking Report Input and Result Files
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 179
Input and Result Files RAM Report
Library Report
**************
RAM Report
During synthesis, a report is created which contains RAM inference
information. It has details of memory inference or instantiation along with
mapped instance names, depth, width, applied attributes, read address and
output register packed inside the RAM primitive. The report also includes the
control set (enable, asynchronous/synchronous reset) extracted for packed
read address and output register. The RAM report also contains different
types of technology-specific elements i.e. LSRAM or URAM.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
180 Synopsys Confidential Information January 2024
DSP Report Input and Result Files
DSP Report
The DSP report is created during synthesis with DSP inference information. It
has details of mac structure inference or instantiation along with mapped
instance names, applied attributes and input and output register packed
inside the MAC primitive. The DSP report also includes the control set
(enable, asynchronous/synchronous reset) extracted for packed input and
output registers.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 181
Input and Result Files CDC Report
CDC Report
The CDC report is created during synthesis with information on CDC paths
in the design. The report has cross clock information with source/destination
clocks, start/end instances, type of CDC circuitry and its safe status.
The report is written to the resultFilename_cdc.csv file. You can view the file with
the log viewer or any text editor.
TMR Report
The TMR report created during synthesis contains the TMR implementation
information. The report has RTL instance name, mapped instance name,
TMR feature and status information.
The report is written to the resultFilename_tmr.rpt file. You can view the file with
the log viewer or any text editor.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
182 Synopsys Confidential Information January 2024
CHAPTER 6
This chapter provides guidelines and Verilog or VHDL examples for coding
RAMs for synthesis. It covers the following topics:
• Guidelines and Support for RAM Inference, on page 184
• Automatic RAM Inference, on page 185
• Block RAM Inference, on page 189
• Initial Values for RAMs, on page 231
• ROM Inference, on page 245
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 183
RAM and ROM Inference Guidelines and Support for RAM Inference
Limitations Limitations
Glue logic to implement the RAM might Source code is not portable because it is
result in a sub-optimal implementation technology-dependent
Can only infer synchronous RAMs Limited or no access to timing and area
No support for address wrapping data if the RAM is a black box
Pin name limitations means some pins Inter-tool access issues, if the RAM is a
are always active or inactive black box created with another tool
You must structure your source code correctly for the type of RAM you want
to infer. The following table lists the supported technology-specific RAMs that
can be generated by the synthesis tool.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
184 Synopsys Confidential Information January 2024
Automatic RAM Inference RAM and ROM Inference
Block RAM
The synthesis software can implement the block RAM it infers using different
types of block RAM and different block RAM modes.
The synthesis tool can infer the following kinds of block RAM:
• Single-port RAM
• Dual-port RAM
Based on how the read and write ports are used, dual-port RAM can be
further classified as follows:
– Simple dual-port
– Dual-port
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 185
RAM and ROM Inference Automatic RAM Inference
– True dual-port
The block RAM operating modes are described in the following table:
RAM Attributes
In addition to the automatic inference by the tool, you can specify RAM infer-
ence with the syn_ramstyle and syn_rw_conflict_logic attributes. The syn_ramstyle
attribute explicitly specifies the kind of RAM you want, while the syn_rw_con-
flict_logic attribute specifies that you want to infer a RAM, but leave it to the
synthesis tools to select the kind of RAM, as appropriate.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
186 Synopsys Confidential Information January 2024
Automatic RAM Inference RAM and ROM Inference
If you specify the syn_rw_conflict_logic attribute, the synthesis tools can infer
block RAM, depending on the design. If the tool does infer block RAM, it does
not insert bypass logic around the block RAM to account for read-write
conflicts and prevent simulation mismatches. In this way its functionality is
the same as syn_ramstyle with no_rw_check, which does not insert bypass logic
either.
SCOPE
For the syn_ramstyle attribute, set the attribute on the RAM register memory
signal, mem, as shown below. For the syn_rw_conflict_logic attribute, set it on
the instance or set it globally. The attributes are written out to a constraints
file using the syntax described in the next section.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 187
RAM and ROM Inference Automatic RAM Inference
Constraints File
In the fdc Tcl constraints file written out from the SCOPE interface, the
syn_ramstyle attribute is attached to the register mem signal of the RAM, and
the syn_rw_conflict_logic attribute is attached to the view, as shown below:
For the syn_rw_conflict_logic attribute, you can also specify it globally, as well as
on individual modules and instances:
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
188 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
1. Set up the RAM HDL code in accordance with the following guidelines:
– The RAM must be synchronous. It must not have any asynchronous
control signals connected. The synthesis tools do not infer
asynchronous block RAM.
– You must register either the read address or the output.
– The RAMs must not be too small, as the tool does not infer block RAM
for small-sized RAMs. The size threshold varies with the target
technology.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 189
RAM and ROM Inference Block RAM Inference
2. Set up the clocks and read and write ports to infer the kind of RAM you
want. The following table summarizes how to set up the RAM in the RTL:
The tool first compiles the design and infers the RAMs, which it
represents as abstract technology-independent primitives like RAM1 and
RAM2. You can view these RAMs in the RTL view, which is a graphic,
technology-independent representation of your design after compilation:
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
190 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
It is important that the compiler first infers the RAM, because the tool
only maps the inferred RAM primitives to technology-specific block RAM.
Any RAM that is not inferred is mapped to registers. You can view the
mapped RAMs in the Technology view, which is a graphic representation
of your design after synthesis, and shows the design mapped to
technology-specific resources.
The synthesis tools map SDP RAMs to RAM primitives in the architecture. A
unique set of addresses, clocks, and enable signals are used for each port.
The synthesis tool might also set the RAM_MODE property on the RAM to
indicate the RAM mode.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 191
RAM and ROM Inference Block RAM Inference
module Read_First_RAM (
read_clk,
read_address,
data_in,
write_clk,
rd_en,
wr_en,
reg_en,
write_address,
data_out);
parameter address_width = 8;
parameter data_width = 32;
parameter depth = 256;
input read_clk, write_clk;
input rd_en;
input wr_en;
input reg_en;
input [address_width-1:0] read_address, write_address;
input [data_width-1:0] data_in;
output [data_width-1:0] data_out;
//wire [data_width-1:0] data_out;
reg [data_width-1:0] mem [depth -1 : 0]/* synthesis
syn_ramstyle="no_rw_check"
*/;
reg [data_width-1:0] data_out;
always @(posedge write_clk)
if(wr_en)
mem[write_address] <= data_in;
always @(posedge read_clk)
if(rd_en)
data_out <= mem[read_address];
endmodule
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
192 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
To infer dual-port block RAM, the RAM must follow the coding rules
described below.
• The read and write addresses must be different
• The read and write clocks can be different
• The enable signals can be different
The synthesis tool also sets the RAM_MODE property on the RAM to indicate
the RAM mode.
The compiler infers TDP block RAM based on the write processes. The imple-
mentation depends on whether the write enables use one process or multiple
processes:
• When all the writes are made in one process, there are no address
conflicts, and the compiler generates an nram that is later mapped to
either true dual-port block RAM. The following coding results in an nram
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 193
RAM and ROM Inference Block RAM Inference
with two write ports, one with write address waddr0 and the other with
write address waddr1:
In the following case, the compiler infers an nram with two write ports
because the syn_ramstyle attribute is specified. The writes associated with
waddr0 and waddr1 are we1 and we2, respectively.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
194 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
ram_dp u1 (clk1, clk2, dia[7:0] , addra, wea[0], doa[7:0] , dib[7:0] , addrb, web[0],
dob[7:0]);
ram_dp u2 (clk1, clk2, dia[15:8], addra, wea[1], doa[15:8], dib[15:8], addrb,
web[1], dob[15:8]);
2. To map the true dual-port RAM into a block RAM, add the
syn_ramstyle=”block_ram" attribute to the true dual-port RAM module.
3. Run compile.
4. Run map.
After synthesis, check the resource utilization report to make sure that
two block RAMs were inferred, as specified.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 195
RAM and ROM Inference Block RAM Inference
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
196 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
RTL View
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 197
RAM and ROM Inference Block RAM Inference
RTL View
The next figure shows the RTL view of a NO_CHANGE RAM. Select the
Technology view to see that the RAM is mapped to block RAM.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
198 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
RTL View
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 199
RAM and ROM Inference Block RAM Inference
q <= mem(conv_integer(read_add));
end rtl ;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
200 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 201
RAM and ROM Inference Block RAM Inference
process(clk)
begin
if (clk'event and clk='1') then
q <= mem(a);
if (we='1') then
mem(a) <= d;
end if;
end if;
end process;
end rtl;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
202 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
Library IEEE ;
use IEEE.std_logic_1164.all ;
use IEEE.std_logic_arith.all ;
use IEEE.std_logic_unsigned.all ;
entity Dual_Port_ReadFirst is
generic (data_width: integer :=4;
address_width: integer :=10);
port (write_enable: in std_logic;
write_clk, read_clk: in std_logic;
data_in: in std_logic_vector (data_width-1 downto 0);
data_out: out std_logic_vector (data_width-1 downto 0);
write_address: in std_logic_vector (address_width-1 downto 0);
read_address: in std_logic_vector (address_width-1 downto 0)
);
end Dual_Port_ReadFirst;
architecture behavioral of Dual_Port_ReadFirst is
type memory is array (2**(address_width-1) downto 0) of
std_logic_vector (data_width-1 downto 0);
signal mem : memory;
signal reg_write_address : std_logic_vector (address_width-1 downto 0);
signal reg_write_enable: std_logic;
attribute syn_ramstyle : string;
attribute syn_ramstyle of mem : signal is "block_ram";
begin
register_enable_and_write_address:
process (write_clk,write_enable,write_address,data_in)
begin
if (rising_edge(write_clk)) then
reg_write_address <= write_address;
reg_write_enable <= write_enable;
end if;
end process;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 203
RAM and ROM Inference Block RAM Inference
write:
process (read_clk,write_enable,write_address,data_in)
begin
if (rising_edge(write_clk)) then
if (write_enable=’1’) then
mem(conv_integer(write_address))<=data_in;
end if;
end if;
end process;
read:
process (read_clk,write_enable,read_address,write_address)
begin
if (rising_edge(read_clk)) then
if (reg_write_enable=’1’) and (read_address =
reg_write_address) then data_out <= "XXXX";
else
data_out<=mem(conv_integer(read_address));
end if;
end if;
end process;
end behavioral;
There are two situations which can result in this error message:
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
204 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 205
RAM and ROM Inference Block RAM Inference
RTL View
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity one is
generic (data_width : integer := 4;
address_width :integer := 5 );
port (data_a:in std_logic_vector(data_width-1 downto 0);
data_b:in std_logic_vector(data_width-1 downto 0);
addr_a:in std_logic_vector(address_width-1 downto 0);
addr_b:in std_logic_vector(address_width-1
LO downto 0);
wren_a:in std_logic;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
206 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
wren_b:in std_logic;
clk:in std_logic;
q_a:out std_logic_vector(data_width-1 downto 0);
q_b:out std_logic_vector(data_width-1 downto 0) );
end one;
architecture rtl of one is
type mem_array is array(0 to 2**(address_width) -1) of
std_logic_vector(data_width-1 downto 0);
signal mem : mem_array;
attribute syn_ramstyle : string;
attribute syn_ramstyle of mem : signal is "no_rw_check" ;
signal addr_a_reg : std_logic_vector(address_width-1 downto 0);
signal addr_b_reg : std_logic_vector(address_width-1 downto 0);
begin
WRITE_RAM : process (clk)
begin
if rising_edge(clk) then
if (wren_a = '1') then
mem(to_integer(unsigned(addr_a))) <= data_a;
end if;
if (wren_b='1') then
mem(to_integer(unsigned(addr_b))) <= data_b;
end if;
addr_a_reg <= addr_a;
addr_b_reg <= addr_b;
end if;
end process WRITE_RAM;
q_a <= mem(to_integer(unsigned(addr_a_reg)));
q_b <= mem(to_integer(unsigned(addr_b_reg)));
end rtl;
parameter WIDTHA = 2;
parameter SIZEA = 16384;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 207
RAM and ROM Inference Block RAM Inference
input clkA;
input clkB;
input weA;
input enA;
input [ADDRWIDTHA-1:0] addrA;
input [ADDRWIDTHB-1:0] addrB;
input [WIDTHA-1:0] diA;
output reg [WIDTHB-1:0] doB;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
208 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 209
RAM and ROM Inference Block RAM Inference
endmodule
entity asymmetric_ram is
generic (
WIDTHA : integer := 2;
SIZEA : integer := 16384;
ADDRWIDTHA : integer := 14;
WIDTHB LO
: integer := 4;
SIZEB : integer := 8192;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
210 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
ADDRWIDTHB : integer := 13
);
port (
clkA : in std_logic;
clkB : in std_logic;
weA : in std_logic;
enA : in std_logic;
addrA : in std_logic_vector(ADDRWIDTHA-1 downto 0);
addrB : in std_logic_vector(ADDRWIDTHB-1 downto 0);
diA : in std_logic_vector(WIDTHA-1 downto 0);
doB : out std_logic_vector(WIDTHB-1 downto 0)
);
end asymmetric_ram;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 211
RAM and ROM Inference Block RAM Inference
begin
if L < R then
return L;
else
return R;
end if;
end;
LO
type ramType is array (0 to maxSIZE-1) of
std_logic_vector(minWIDTH-1 downto 0);
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
212 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
begin
process (clkA)
begin
if rising_edge(clkA) then
if enA = ‘1’ then
if weA = ‘1’ then
ram(conv_integer(addrA)) <= diA;
end if;
end if;
end if;
end process;
process (clkB)
begin
if rising_edge(clkB) then
for i in 0 to RATIO-1 loop
doB((i+1)*minWIDTH-1 downto i*minWIDTH) <=
ram(conv_integer(addrB_reg &
conv_std_logic_vector(i,log2(RATIO))));
addrB_reg <= addrB;
end loop;
end if;
end process;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 213
RAM and ROM Inference Block RAM Inference
end behavioral;
parameter WIDTHA = 2;
parameter SIZEA = 1024;
parameter ADDRWIDTHA = 10;
parameter WIDTHB = 8;
parameter SIZEB = 256;
parameter ADDRWIDTHB = 8;
input clkA;
input clkB;
input weA;
input enA;
input [ADDRWIDTHA-1:0] addrA;
input [ADDRWIDTHB-1:0] addrB;
input [WIDTHA-1:0] diA;
output reg [WIDTHB-1:0] doB;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
214 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
endmodule
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 215
RAM and ROM Inference Block RAM Inference
entity asymmetric_ram is
generic (
WIDTHA : integer := 2;
SIZEA : integer := 1024;
ADDRWIDTHA : integer := 10;
WIDTHB : integer := 8;
SIZEB : integer := 256;
ADDRWIDTHB : integer := 8
);
port (
clkA : in std_logic;
clkB : in std_logic;
weA : in std_logic;
enA : in std_logic;
addrA : in std_logic_vector(ADDRWIDTHA-1 downto 0);
addrB : in std_logic_vector(ADDRWIDTHB-1 downto 0);
diA : in std_logic_vector(WIDTHA-1 downto 0);
LO
doB : out std_logic_vector(WIDTHB-1 downto 0)
);
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
216 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
end asymmetric_ram;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 217
RAM and ROM Inference Block RAM Inference
begin
process (clkA)
begin
if rising_edge(clkA) then
if enA = ‘1’ then
if weA = ‘1’ then
ram(conv_integer(addrA)) <= diA;
end if;
end if;
end if;
end process;
process (clkB)
begin
if rising_edge(clkB) then
addrB_reg <= addrB;
doB(minWIDTH-1 downto 0) <=
ram(conv_integer(addrB_reg&conv_std_logic_vector(0,2)));
doB(2*minWIDTH-1 downto minWIDTH) <=
LO
ram(conv_integer(addrB_reg&conv_std_logic_vector(1,2)));
doB(3*minWIDTH-1 downto 2*minWIDTH) <=
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
218 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
ram(conv_integer(addrB_reg&conv_std_logic_vector(2,2)));
doB(4*minWIDTH-1 downto 3*minWIDTH) <=
ram(conv_integer(addrB_reg&conv_std_logic_vector(3,2)));
end if;
end process;
end behavioral;
parameter WIDTHA = 8;
parameter SIZEA = 256;
parameter ADDRWIDTHA = 8;
parameter WIDTHB = 32;
parameter SIZEB = 64;
parameter ADDRWIDTHB = 6;
input clkA;
input clkB;
input weB;
input [ADDRWIDTHA-1:0] addrA;
input [ADDRWIDTHB-1:0] addrB;
output [WIDTHA-1:0] doA;
input [WIDTHB-1:0] diB;
reg [ADDRWIDTHA-1:0] addrA_reg;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 219
RAM and ROM Inference Block RAM Inference
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
220 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
begin
addrA_reg <= addrA;
end
assign doA = RAM[addrA_reg];
endmodule
entity asymmetric_ram is
generic (
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 221
RAM and ROM Inference Block RAM Inference
WIDTHA : integer := 8;
SIZEA : integer := 256;
ADDRWIDTHA : integer := 8;
WIDTHB : integer := 32;
SIZEB : integer := 64;
ADDRWIDTHB : integer := 6 );
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
222 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
return L;
else
return R;
end if;
end;
function log2 (val: INTEGER) return natural is
variable res : natural;
begin
for i in 0 to 31 loop
if (val <= (2**i)) then
res := i;
exit;
end if;
end loop;
return res;
end function Log2;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 223
RAM and ROM Inference Block RAM Inference
begin
if rising_edge(clkA) then
addrA_reg <= addrA;
end if;
end process;
doA <= ram(conv_integer(addrA_reg));
process (clkB)
begin
if rising_edge(clkB) then
if weB = ‘1’ then
for i in 0 to RATIO-1 loop
ram(conv_integer(
addrB & conv_std_logic_vector(i,log2(RATIO))))
:= diB((i+1)*minWIDTH-1 downto i*minWIDTH);
end loop;
end if;
end if;
end process;
end behavioral;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
224 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
parameter ADDRWIDTHA = 8;
parameter WIDTHB= 16;
parameter SIZEB = 512;
parameter ADDRWIDTHB = 9;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 225
RAM and ROM Inference Block RAM Inference
begin
doB <= mux[WIDTHB-1:0];
end
end
endmodule
entity asymmetric_ram is
generic (
WIDTHA : integer := 32;
SIZEA : integer := 256;
ADDRWIDTHA : integer := 8;
WIDTHB : integer := 16;
SIZEB : integer := 512;
ADDRWIDTHB : integer := 9
);
port (
clkA : in std_logic;
clkB : in LO
std_logic;
rst : in std_logic;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
226 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
weA : in std_logic;
enA : in std_logic;
enB : in std_logic;
addrA : in std_logic_vector(ADDRWIDTHA-1 downto 0);
addrB : in std_logic_vector(ADDRWIDTHB-1 downto 0);
diA : in std_logic_vector(WIDTHA-1 downto 0);
doB : out std_logic_vector(WIDTHB-1 downto 0)
);
end asymmetric_ram;
begin
process (clkA)
begin
if rising_edge(clkA) then
if enA = ‘1’ then
if weA = ‘1’ then
ram(conv_integer(addrA)) := diA;
end if;
end if;
end if;
end process;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 227
RAM and ROM Inference Block RAM Inference
process (clkB)
variable mux : std_logic_vector(WIDTHA-1 downto 0);
begin
if rising_edge(clkB) then
if enB = ‘1’ then
if addrB(0) = ‘0’ then
mux := ram(conv_integer
(addrB(ADDRWIDTHB-1 downto 1)));
doB <= mux (WIDTHB-1 downto 0);
else
mux := ram(conv_integer(
addrB(ADDRWIDTHB-1 downto 1)));
doB <= mux(WIDTHA-1 downto WIDTHB);
end if;
end if;
end if;
end process;
end behavioral;
//synthesis translate_off
`define SIMULATION 1 LO
//synthesis translate_on
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
228 Synopsys Confidential Information January 2024
Block RAM Inference RAM and ROM Inference
`define ADDRSIZE 12
`define DATASIZE 72
`ifdef SIMULATION
`timescale 1 ps/1 ps
module rtl_ram(din, clk, we, waddr, raddr, dout);
`else
module synth_ram(din, clk, we, waddr, raddr, dout);
`endif
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 229
RAM and ROM Inference Block RAM Inference
end
raddr_reg <= raddr;
end
endmodule // top
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
230 Synopsys Confidential Information January 2024
Initial Values for RAMs RAM and ROM Inference
fileName Name of the data file that contains initial values. See
Initialization Data File , on page 234 for format examples.
memoryName The name of the memory.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 231
RAM and ROM Inference Initial Values for RAMs
//Top
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
232 Synopsys Confidential Information January 2024
Initial Values for RAMs RAM and ROM Inference
//RAM
module ram_inference (input[27:0] data, input clk, input[10:0]
addr, output[27:0] data_out);
reg[27:0] mem[0:2000] /*synthesis syn_ramstyle = “no_rw_check”*/;
reg [10:0] addr_reg;
always @(posedge clk)
begin
addr_reg <= addr;
end
always @(posedge clk)
begin
if(we)
begin
mem[addr] <= data;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 233
RAM and ROM Inference Initial Values for RAMs
end
end
assign data_out = mem[addr_reg];
endmodule
The following shows the HDL Analyst view of a RAM module that must be
accessed hierarchically to be initialized.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
234 Synopsys Confidential Information January 2024
Initial Values for RAMs RAM and ROM Inference
$readmemh task first looks in the project directory for the named file and, if
not found, searches for the file in the list of directories on the Verilog tab in
include-path order.
If the initialization data file does not contain initial values for every memory
address, the unaddressed memory locations are initialized to 0. Also, if a
width mismatch exists between an initialization value and the memory width,
loading of the memory array is terminated; any values initialized before the
mismatch is encountered are retained.
For example:
initial
begin
//$readmemh ("mem.ini", ram_bank1)
/* Initialize RAM with contents from locations 0 thru 31*/;
//$readmemh ("mem.ini", ram_bank1,0)
/* Initialize RAM with contents from locations 0 thru 31*/;
$readmemh ("mem.ini", ram_bank1, 0, 31)
/* Initialize RAM with contents from locations 0 thru 31*/;
$readmemh ("mem.ini", ram_bank2, 31, 0)
/* Initialize RAM with contents from locations 31 thru 0*/;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 235
RAM and ROM Inference Initial Values for RAMs
• Binary values for the $readmemb task, or hexadecimal values for the
$readmemh tasks
In addition, the data initialization file can include any number of hexadecimal
addresses (see Internal Address Format, on page 236).
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
236 Synopsys Confidential Information January 2024
Initial Values for RAMs RAM and ROM Inference
...
@0A7 /* memory address 137
FFFFF77 /* data for address 137*/
FFFFF7A /* data for address 138*/
...
When addressing information is specified both in the system task and in the
data file, the addresses in the data file must be within the address range
specified by the system task arguments; otherwise, an error message is
issued, and the load operation is terminated.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 237
RAM and ROM Inference Initial Values for RAMs
parameter WIDTHA = 8;
parameter SIZEA = 256;
parameter ADDRWIDTHA = 8;
parameter WIDTHB = 32;
parameter SIZEB = 64;
parameter ADDRWIDTHB = 6;
input clkA;
input clkB;
input weB;
input [ADDRWIDTHA-1:0] addrA;
input [ADDRWIDTHB-1:0] addrB;
output [WIDTHA-1:0] doA;
input [WIDTHB-1:0] diB;
reg [ADDRWIDTHA-1:0] addrA_reg;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
238 Synopsys Confidential Information January 2024
Initial Values for RAMs RAM and ROM Inference
begin
shifted = value-1;
for (res=0; shifted>0; res=res+1)
shifted = shifted>>1;
log2 = res;
end
end
endfunction
genvar i;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 239
RAM and ROM Inference Initial Values for RAMs
endgenerate
endmodule
LO is
entity asymmetric_ram_4
generic (
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
240 Synopsys Confidential Information January 2024
Initial Values for RAMs RAM and ROM Inference
WIDTHA : integer := 8;
SIZEA : integer := 256;
ADDRWIDTHA : integer := 8;
WIDTHB : integer := 32;
SIZEB : integer := 64;
ADDRWIDTHB : integer := 6
);
port (
clkA : in std_logic;
clkB : in std_logic;
reA : in std_logic;
weB : in std_logic;
addrA : in std_logic_vector(ADDRWIDTHA-1 downto 0);
addrB : in std_logic_vector(ADDRWIDTHB-1 downto 0);
diB : in std_logic_vector(WIDTHB-1 downto 0);
doA : out std_logic_vector(WIDTHA-1 downto 0)
);
end asymmetric_ram_4;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 241
RAM and ROM Inference Initial Values for RAMs
else
return R;
end if;
end;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
242 Synopsys Confidential Information January 2024
Initial Values for RAMs RAM and ROM Inference
begin
process (clkA)
begin
if rising_edge(clkA) then
if reA = ‘1’ then
doA <= ram(conv_integer(addrA));
end if;
end if;
end process;
process (clkB)
begin
if rising_edge(clkB) then
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 243
RAM and ROM Inference Initial Values for RAMs
end behavioral;
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
244 Synopsys Confidential Information January 2024
ROM Inference RAM and ROM Inference
ROM Inference
As part of BEST (Behavioral Extraction Synthesis Technology) feature, the
synthesis tool infers ROMs (read-only memories) from your HDL source code,
and generates block components for them in the RTL view.
The data contents of the ROMs are stored in a text file named rom.info. To
quickly view rom.info in read-only mode, synthesize your HDL source code,
open an RTL view, then push down into the ROM component.
Generally, the Synopsys FPGA synthesis tool infers ROMs from HDL source
code that uses case statements, or equivalent if statements, to make 16 or
more signal assignments using constant values (words). The constants must
all be the same width.
Another requirement for ROM inference is that values must be specified for at
least half of the address space. For example, if the ROM has 5 address bits,
then the address space is 32 and at least 16 of the different addresses must
be specified.
Verilog Example
module rom(z,a);
output [3:0] z;
input [4:0] a;
reg [3:0] z;
always @(a) begin
case (a)
5'b00000 : z = 4'b0001;
5'b00001 : z = 4'b0010;
5'b00010 : z = 4'b0110;
5'b00011 : z = 4'b1010;
5'b00100 : z = 4'b1000;
5'b00101 : z = 4'b1001;
5'b00110 : z = 4'b0000;
5'b00111 : z = 4'b1110;
5'b01000 : z = 4'b1111;
5'b01001 : z = 4'b1110;
5'b01010 : z = 4'b0001;
5'b01011 : z = 4'b1000;
5'b01100 : z = 4'b1110;
5'b01101 : z = 4'b0011;
5'b01110 : z = 4'b1111;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 245
RAM and ROM Inference ROM Inference
5'b01111 : z = 4'b1100;
5'b10000 : z = 4'b1000;
5'b10001 : z = 4'b0000;
5'b10010 : z = 4'b0011;
default : z = 4'b0111;
endcase
end
endmodule
VHDL Example
library ieee;
use ieee.std_logic_1164.all;
entity rom4 is
port (a : in std_logic_vector(4 downto 0);
z : out std_logic_vector(3 downto 0) );
end rom4;
architecture behave of rom4 is
begin
process(a)
begin
if a = "00000" then
z <= "0001";
elsif a = "00001" then
z <= "0010";
elsif a = "00010" then
z <= "0110";
elsif a = "00011" then
z <= "1010";
elsif a = "00100" then
z <= "1000";
elsif a = "00101" then
z <= "1001";
elsif a = "00110" then
z <= "0000";
elsif a = "00111" then
z <= "1110";
elsif a = "01000" then
z <= "1111";
elsif a = "01001" then
z <= "1110";LO
elsif a = "01010" then
z <= "0001";
elsif a = "01011" then
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
246 Synopsys Confidential Information January 2024
ROM Inference RAM and ROM Inference
z <= "1000";
elsif a = "01100" then
z <= "1110";
elsif a = "01101" then
z <= "0011";
elsif a = "01110" then
z <= "1111";
elsif a = "01111" then
z <= "1100";
elsif a = "10000" then
z <= "1000";
elsif a = "10001" then
z <= "0000";
elsif a = "10010" then
z <= "0011";
else
z <= "0111";
end if;
end process;
end behave;
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 247
RAM and ROM Inference ROM Inference
ROM work.rom4(behave)-z_1[3:0]
address width: 5
data width: 4
inputs:
0: a[0]
1: a[1]
2: a[2]
3: a[3]
4: a[4]
outputs:
0: z_1[0]
1: z_1[1]
2: z_1[2]
3: z_1[3]
data:
00000 -> 0001
00001 -> 0010
00010 -> 0110
00011 -> 1010
00100 -> 1000
00101 -> 1001
00110 -> 0000
00111 -> 1110
01000 -> 1111
01001 -> 1110
01010 -> 0001
01011 -> 1000
01100 -> 1110
01101 -> 0011
01110 -> 0010
01111 -> 0010
10000 -> 0010
10001 -> 0010
10010 -> 0010
default -> 0111
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
248 Synopsys Confidential Information January 2024
ROM Inference RAM and ROM Inference
generate
if (INIT) begin
initial
begin
$readmemb("init.hex",mem);
end
end
endgenerate
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 249
RAM and ROM Inference ROM Inference
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
250 Synopsys Confidential Information January 2024
APPENDIX H
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 251
Designing with Microchip Basic Support for Microchip Designs
Low-Power • PolarFireSoC
• PolarFire
• IGLOO2
Rad-Tolerant RTG4
New devices are added on an ongoing basis. For the most current list of
supported devices, check the Device panel of the Implementation Options
dialog box.
Netlist Format
The synthesis tool outputs EDIF or VM netlist files for use with the Microchip
place-and-route application. These files have edn and vm extensions.
After synthesis the tool generates a constraint file as well, which is forward
annotated as input into the Microchip place-and-route tool. These files have
the following extensions:
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
252 Synopsys Confidential Information January 2024
Basic Support for Microchip Designs Designing with Microchip
On the Implementation Results tab of the Implementation Options dialog box, two file
formats: edif and vm, are available depending on your design’s device family.
You can also use the project Tcl command to specify the result file format.
2. Click the Implementation Results tab, and check the output files you need.
The following table summarizes the outputs to set for the different
devices, and shows the P&R tools for which the output is intended.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 253
Designing with Microchip Basic Support for Microchip Designs
By default, Microchip constraint files are generated from the synthesis tool
constraints. You can then forward annotate these files to the place-and-route
tool. To disable this feature, deselect the Write Vendor Constraint File box (on the
Implementation Results tab of the Implementation Options dialog box).
Microchip Features
The synthesis tool contains the following Microchip-specific features:
• Direct mapping to Microchip c-modules and s-modules
• Timing-driven mapping, replication, and buffering
• Inference of counters, adders, and subtractors; module generation
• Automatic use of clock buffers for clocks and reset signals
• Automatic I/O insertion. See I/O Insertion, on page 302 for more
information.
• CDC Reporting. See CDC
LOReporting below.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
254 Synopsys Confidential Information January 2024
Basic Support for Microchip Designs Designing with Microchip
CDC Reporting
PolarFire, RTG4, SmartFusion2, IGLOO2
The tool also detects and preserves Driver FF and CDC synchronizer FFs
when the following attributes are set on the FFs:
Project options
set_option -report_preserve_cdc {1/0} enables or disables CDC reporting.
The option is ON, by default. The GUI option for enabling or disabling CDC
reports is Report CDC paths in the High Reliability Panel.
Synplify Pro adds the synchronizer attribute in the vm netlist on the FFs, as
given:
(* cdc_synchronizer = 1 *)
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 255
Designing with Microchip Basic Support for Microchip Designs
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
256 Synopsys Confidential Information January 2024
Basic Support for Microchip Designs Designing with Microchip
set_option -unsafe_cdc_netlist_property 1
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 257
Designing with Microchip Basic Support for Microchip Designs
syn_safe_cdc
Attribute syn_safe_cdc, when applied on the CDC path, ensures that the tool
doesn't add syn_preserve, syn_replicate and syn_allow_retiming attributes for
preservation of structures. See syn_safe_cdc, on page 235 in the Attribute
Reference.
The tool also reports the path as a safe path with the description
syn_safe_cdc attribute applied.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
258 Synopsys Confidential Information January 2024
Basic Support for Microchip Designs Designing with Microchip
Register Example
In the scenario below, there are 3 registers. One of them has negative slack.
When CLKINT removal is enabled, CLKINT on the async_rst net is removed.
In the figure below, there is a direct reset connection from the SLE rst11 to the
register areg. The remaining reset fanout nets with positive slack on them are
driven by CLKINT.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 259
Designing with Microchip Basic Support for Microchip Designs
DSP Example
In the scenario below, all the asynchronous reset nets have negative slacks.
With async_clkint_removal disabled, CLKINT gets inserted on all the asynchro-
nous reset nets irrespective of their slack values.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
260 Synopsys Confidential Information January 2024
Basic Support for Microchip Designs Designing with Microchip
After enabling CLKINT removal, CLKINT is removed from all the asynchro-
nous reset nets, as shown below.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 261
Designing with Microchip Basic Support for Microchip Designs
RAM Example
In the example below, the reset net for port-A has negative slack. With
async_clkint_removal disabled, CLKINT is inserted on all the async reset nets as
shown below.
After enabling CLKINT removal, CLKINT is removed from the async reset net
for port-A. In the figure below, there is no CLKINT on the path rst11 to
A_DOUT_ARST_N.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
262 Synopsys Confidential Information January 2024
Basic Support for Microchip Designs Designing with Microchip
The project option to enable register initialization on the RTG4 device is:
The initial values you specify on registers are implemented using the SLE
macro except for the two scenarios given below:
• Registers with asynchronous reset signals and initial values of 1.
• Registers with asynchronous set signals and initial values of 0.
For these scenarios, the following downgradable error is displayed:
@E:DE130: User-specified or implicit initial value 1 set for the flop instance
areg[0] is not supported by the architecture. Flops with asynchronous reset
cannot have initial value 1. Apply the correct initial value on the instance to
avoid the error.
The table below shows the summary of register implementations for different
types of registers and initial values.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 263
Designing with Microchip Basic Support for Microchip Designs
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
264 Synopsys Confidential Information January 2024
Basic Support for Microchip Designs Designing with Microchip
Output:
Error scenario.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 265
Designing with Microchip Basic Support for Microchip Designs
Output:
Error scenario.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
266 Synopsys Confidential Information January 2024
Basic Support for Microchip Designs Designing with Microchip
Output:
DSP Example
In the example below, all the input and output registers have asynchronous
reset. The registers are initialized to non-zero value habab.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 267
Designing with Microchip Basic Support for Microchip Designs
Memory Example
In the RAM scenario given below, there are 2 output registers with
asynchronous reset initialized to non-zero values.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
268 Synopsys Confidential Information January 2024
Microchip Components Designing with Microchip
Microchip Components
These topics describe how the synthesis tool handles various Microchip
components, and show you how to work with or manipulate them during
synthesis to get the results you need:
• Macros and Black Boxes in Microchip Designs, on page 270
• DSP Block Inference, on page 271
• Control Signals Extraction for Registers (SLE), on page 276
• Wide MUX Inference, on page 277
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 269
Designing with Microchip Microchip Components
LO
1. Smartgen macros now replace the ACTgen macros. ACTgen macros were available
in the previous Designer 6.x place-and-route tool.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
270 Synopsys Confidential Information January 2024
Microchip Components Designing with Microchip
SIMBUF Macro
The synthesis software supports instantiation of the SIMBUF macro. The
SIMBUF macro provides the flexibility to probe signals without using physical
locations, as possible from the Identify tool. The Resource Summary will report
the number of SIMBUF instantiations in the IO Tile section of the log file.
Below is an example RTL which infers MACC block in DOTP mode after
synthesis:
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 271
Designing with Microchip Microchip Components
By default, the synthesis software maps the multiplier to DSP blocks if all
inputs to the multiplier are more than 2-bits wide; otherwise, the multiplier is
mapped to logic. You can override this default behavior using the syn_multstyle
attribute. See syn_multstyle, on page 127 for details.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
272 Synopsys Confidential Information January 2024
Microchip Components Designing with Microchip
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 273
Designing with Microchip Microchip Components
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
274 Synopsys Confidential Information January 2024
Microchip Components Designing with Microchip
The tool supports the packing of symmetric FIR filters though the inference of
MACC_PA_BC_ROM blocks with shift chain.
DSP Limitations
Currently, DSP inferencing does not support the following functions:
• Overflow extraction
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 275
Designing with Microchip Microchip Components
Note: For more information about Microchip DSP math blocks along
with a comprehensive set of examples, see the Inferring Microchip
RTAX-DSP MATH Blocks application note on the Synopsys
website.
When the fanout limit is 12, synchronous set or reset is packed using the SLn
pin. If the fanout limit is less than 12, the tool inserts extra logic for the
synchronous set or reset.
The tool supports packing of the enable signal, which has higher priority than
the reset signal (synchronous) of the SLE.
module test
input clk,
input [7:0] a,
output [7:0] z);
reg [7:0] z_reg = 8'hf0;
reg one = 1'd1;
always@(posedge clk)
z_reg <= a + one;
assign z = z_reg;
endmodule LO
The initial value for register z_reg is specified, so the tool issues a warning
message in the synthesis log report:
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
276 Synopsys Confidential Information January 2024
Microchip Components Designing with Microchip
@W: FX1039|User-specified initial value defined for instance z_reg[7:0] is being ignored.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 277
Designing with Microchip Microchip RAM Implementations
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
278 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 279
Designing with Microchip Microchip RAM Implementations
The default criteria for specifying the macro is described in the table below for
the following RAM types.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
280 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
You can override the default behavior by applying the syn_ramstyle attribute to
control how the memory gets mapped. To map to
• RAM1K18 set syn_ramstyle = "lsram"
• RAM64X18 set syn_ramstyle = "uram"
• Registers set syn_ramstyle = "registers"
The value you set for this attribute always overrides the default behavior.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 281
Designing with Microchip Microchip RAM Implementations
always@(posedge clk)
begin
if(wrc)
mem[addrc] <= dinc;
end
always@(posedge clk)
begin
douta <= mem[addra];
end
always@(posedge clk)
begin
doutb <= mem[addrb] ;
end
endmodule
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
282 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
RTL View:
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 283
Designing with Microchip Microchip RAM Implementations
end if;
end process;
q1<= mem(conv_integer (addr1));
q2<= mem(conv_integer (addr2));
end rtl;
RTL View:
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
284 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 285
Designing with Microchip Microchip RAM Implementations
RTL View
Technology View
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
286 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 287
Designing with Microchip Microchip RAM Implementations
RTL View
Technology View
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
288 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
Attributes
RAM attributes, like syn_ramstyle, are applied to control the inference.
Limitations
• Initial value is not supported.
• Asymmetric true dual-port RAM is not supported.
• Read/write logic check creation is not supported. If the read/write check
option is enabled, then the RAM is implemented in symmetric mode.
RAM Reporting
A detailed report is generated in the {implname}_ram_rpt.txt file with details of
the LSRAM and URAMs inferred for a design. See RAM Report, on page 180.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 289
Designing with Microchip Microchip RAM Implementations
Enhanced RAM inference uses the BLK pin of the RAM for reducing power
consumption. By setting the global option low_power_ram_decomp 1 in the
project file, the tool fractures the wide RAMs on the address width, using the
BLK pin of the RAM to reduce power consumption. By default, the tool
fractures wide RAMs by splitting the data width to improve timing.
This feature is supported for single-port, simple-dual port, and true-dual port
RAM modes.
If the attribute is applied on the top-level module, the tool infers URAM for all
the seqshifts in the design using the following threshold values:
If the attribute is applied on the seqshift instance, the tool infers URAM
irrespective of the threshold values.
syn_srlstyle Values
Value Description
Registers seqshifts are inferred as registers.
URAM seqshift is inferred as RAM64X12.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
290 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
syn_srlstyle Syntax
Example
The tool infers a seqshift primitive for the following HDL:
The seqshift generated for the HDL above is shown in technology view.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 291
Designing with Microchip Microchip RAM Implementations
Limitations
Limitations include the following:
• Seqshifts with both reset and set are inferred as registers.
• Seqshifts with enable signal having higher priority than synchronous set
or synchronous reset are inferred as registers.
The tool packs the enable signal on the read address register for the
following:
• PolarFire RAM1K20 and RAM64x12 Enhancements
• RTG4 RAM64x18, RAM64x18_RT, RAM1K18_RT Enhancements
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
292 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
Use the syn_romstyle attribute to override the default behavior of the ROM
implementation with RAM or logic.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 293
Designing with Microchip Microchip RAM Implementations
Value Description
logic ROM is inferred as registers or LUTs.
uram|lsram ROM is inferred as RAM1K20 or RAM64x12. Asynchronous
ROM is mapped to RAM64x12 even if the lsram attribute is
applied.
Example 1
module test(clk,addr,dataout);
input clk;
parameter addr_width = 10;
parameter data_width = 20;
input [addr_width-1:0] addr;
output [data_width-1:0] dataout;
reg [data_width-1:0] dataout;
always @ (posedge clk )
case (addr)
10'd0 : dataout <= 20'b01000110000010001100;
10'd1 : dataout <= 20'b11100000110110011100;
10'd2 : dataout <= 20'b10110101101111011001;
10'd3 : dataout <= 20'b01111010011000000000;
10'd4 : dataout <= 20'b00110110100111111100;
10'd5 : dataout <= 20'b11110101000010001010;
10'd6 : dataout <= 20'b00010010110101000110;
10'd7 : dataout <= 20'b01001001010010100110;
10'd8 : dataout <= 20'b01110111000111111011;
10'd9 : dataout <= 20'b10010101111110111110;
…
LO
…
10'd1015 : dataout <= 20'b11011010000111111101;
10'd1016 : dataout <= 20'b11001000101001110111;
10'd1017 : dataout <= 20'b01010000111100100011;
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
294 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
The following ROM is displayed in the SRS view of the tool for the RTL above.
The tool infers RAM1K20 for the ROM below.
Example 2
module test (addr,dataout);
parameter addr_width = 8;
parameter data_width = 10;
input [addr_width - 1 : 0] addr;
output [data_width - 1 : 0] dataout;
reg [data_width - 1 : 0] mem [(2**addr_width) - 1 : 0] ;
initial $readmemh("mem256x10_hex.list", mem);
assign dataout = mem[addr];
endmodule
The following ROM is displayed in the SRS view of the tool for the RTL above.
Since this is an asynchronous ROM, the tool infers RAM64x12.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 295
Designing with Microchip Microchip RAM Implementations
Example
module ram (din, dout, addra, addrb, clk, wen1, wen2);
input [7:0] din;
input wen1;
input wen2;
input [9:0] addra;
input clk;
output reg [7:0] dout;
localparam max_depth=1024;
localparam min_width=8;
reg [9:0] taddra;
reg [min_width-1:0] mem_ram[max_depth-1:0];
always @(posedge clk)
begin
taddra<=addra;
if(wen1)
mem_ram[taddra][3:0]<=din[3:0];
if(wen2)
mem_ram[taddra][7:4]<=din[7:4];
end
always @(posedge clk)
begin
dout <= mem_ram[taddra];
end
endmodule
The compiler infers two ram1 shown in the SRS view below, which can be
combined and mapped into a single RAM1K18_RT or RAM1K20.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
296 Synopsys Confidential Information January 2024
Microchip RAM Implementations Designing with Microchip
Byte write enable packing is supported for two-port mode RAMs and true
dual port RAMs.
RAMINDEX Support
The RAMINDEX attribute is supported for all inferred RAMs of RTG4,
SmartFusion2, IGLOO2 and PolarFire devices.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 297
Designing with Microchip Microchip Constraints and Attributes
The synthesis software inserts the global buffer (CLKINT) on clock, asynchro-
nous set/reset, and data nets based on a threshold value. The supported
devices have specific threshold values that cannot be changed for the
different types of nets in the design. Inserting global buffers on nets with
fanout greater than the threshold can help reduce the route delay during
place and route.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
298 Synopsys Confidential Information January 2024
Microchip Constraints and Attributes Designing with Microchip
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 299
Designing with Microchip Microchip Constraints and Attributes
Radiation-tolerant Applications
You can specify the radiation-resistant design technique to use on an object
for a design with the syn_radhardlevel attribute. This attribute can be applied to
a module/architecture or a register output signal (inferred register in VHDL),
and is used in conjunction with the Microchip macro files supplied with the
software.
Value Description
none Standard design techniques are used.
cc Combinational cells with feedback are used to implement storage rather
than flip-flop or latch primitives.
tmr Triple module redundancy or triple voting is used to implement registers.
Each register is implemented by three flip-flops or latches that “vote” to
determine the state of the register.
TMR reporting is supported for the PolarFire family. Local TMR of the
register is reported in a file named *_tmr.rpt. See TMR Report, on page 182.
tmr_cc Triple module redundancy is used where each voting register is composed
of combinational cells with feedback rather than flip-flop or latch
primitives.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
300 Synopsys Confidential Information January 2024
Microchip Device Mapping Options Designing with Microchip
See Also
• Microchip set_option Command Options, on page 307
• Microchip Tcl set_option Command Options, on page 308
The Tcl command equivalent is set_option -globalthreshold value, where the value
refers to the minimum number of fanout loads. The default value is 1.
Only signals with fanout loads larger than the defined value are promoted to
global signals. The synthesis tool assigns the available global buffers to drive
these signals using the following priority:
1. Clock
3. Enable, data
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 301
Designing with Microchip Microchip Device Mapping Options
The threshold values for SmartFusion2 and IGLOO2 devices are the following:
Asynchronous Set/Reset 12
Data 5000
Data 5000
I/O Insertion
The Synopsys FPGA synthesis tool inserts I/O pads for inputs, outputs, and
bidirectionals in the output netlist unless you disable I/O insertion. You can
control I/O insertion with the Disable I/O Insertion option (Project->Implementation
Options->Device).
If you do not want to automatically insert any I/O pads, check the Disable I/O
Insertion box (Project->Implementation Options->Device). This is useful to see how
much area your blocks of logic take up, before synthesizing an entire FPGA. If
you disable automatic I/O insertion,
LO you will not get any I/O pads in your
design unless you manually instantiate them yourself.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
302 Synopsys Confidential Information January 2024
Microchip Device Mapping Options Designing with Microchip
If you disable I/O insertion, you can instantiate the Microchip I/O pads you
need directly. If you manually insert I/O pads, you only insert them for the
pins that require them.
The Update Compile Point Timing Data option used with the Synopsys FPGA
compile-point synthesis flow lets you break down a design into smaller
synthesis units, called compile points, making incremental synthesis
possible. See Synthesizing Compile Points, on page 455 in the User Guide.
The Update Compile Point Timing Data option controls whether or not changes to a
locked compile point force remapping of its parents, taking into account the
new timing model of the child.
Note: To simplify this description, the term child is used here to refer to
a compile point that is contained inside another; the term parent
is used to refer to the compile point that contains the child.
These terms are thus not used here in their strict sense of direct,
immediate containment: If a compile point A is nested in B,
which is nested in C, then A and B are both considered children
of C, and C is a parent of both A and B. The top level is consid-
ered the parent of all compile points.
Disabled
When the Update Compile Point Timing Data option is disabled (the default), only
(locked) compile points that have changed are remapped, and their remap-
ping does not take into account changes in the timing models of any of their
children. The old (pre-change) timing model of a child is used, instead, to
map and optimize its parents.
An exceptional case occurs when the option is disabled and the interface of a
locked compile point is changed. Such a change requires that the immediate
parent of the compile point be changed accordingly, so both are remapped. In
this exceptional case, however, the updated timing model (not the old model)
of the child is used when remapping this parent.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 303
Designing with Microchip Microchip Device Mapping Options
Enabled
When the Update Compile Point Timing Data option is enabled, locked compile-
point changes are taken into account by updating the timing model of the
compile point and resynthesizing all of its parents (at all levels), using the
updated model. This includes any compile point changes that took place prior
to enabling this option, and which have not yet been taken into account
(because the option was disabled).
The timing model of a compile point is updated when either of the following is
true:
• The compile point is remapped, and the Update Compile Point Timing Data
option is enabled.
• The interface of the compile point is changed.
The tool supports the Automatic Compile Points (ACP) flow. For details, see
The Automatic Compile Point Flow, on page 456 in the User Guide.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
304 Synopsys Confidential Information January 2024
Microchip Device Mapping Options Designing with Microchip
To set an operating condition, select the value for Operating Conditions from the
menu on the Device tab of the Implementation Options dialog box.
where value can be specified like the following typical operating conditions:
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 305
Designing with Microchip Microchip Device Mapping Options
For Example
The Microchip operating condition can contain any of the following
specifications:
• MIL—military
• COM—commercial
• IND—Industrial
• TGrade1
• TGrade2
as well as, include one of the following designations:
• WC—worst case
• BC—best case
• TC—typical case
For specific operating condition values for your required technology, see the
Device tab on the Implementation Options dialog box.
Even when a particular operating condition is valid for a family, it may not be
applicable to every part/package/speed-grade combination in that family.
Consult Microchip's documentation or software for information on valid
combinations and more information on the meaning of each operating condi-
tion.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
306 Synopsys Confidential Information January 2024
Microchip Device Mapping Options Designing with Microchip
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 307
Designing with Microchip Microchip Device Mapping Options
The table below provides information on specific options for Microchip archi-
tectures. For a complete list of options for this command, refer to set_option,
on page 111. You cannot specify a package (-package option) for some
Microchip technologies in the synthesis tool environment. You must use the
Microchip back-end tool for this.
.
Option Description
-technology keyword Sets target technology for the
implementation. Keyword must be one
of the following Microchip architecture
names:
IGLOO2, SmartFusion2, RTG4,
PolarFire
-part partName Specifies a part for the
implementation. Refer to the
Implementation Options dialog box for
available choices.
-package packageName RTG4 and PolarFire families
Specifies the package. Refer to Project->
Implementation Options->Device for
available choices.
-speed_grade value Sets speed grade for the
implementation. Refer to the
Implementation Options dialog box for
available choices.
-disable_io_insertion 1|0 Prevents (1) or allows (0) insertion of
I/O pads during synthesis. The default
LO value is false (enable I/0 pad insertion).
For additional information about
disabling I/O pads, see I/O Insertion ,
on page 302.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
308 Synopsys Confidential Information January 2024
Microchip Device Mapping Options Designing with Microchip
Option Description
-fanout_limit value Sets fanout limit guidelines for the
current project. For more information
about fanout limits, see The
syn_maxfan Attribute in Microchip
Designs , on page 299.
-globalthreshold value PolarFire, SmartFusion2, IGLOO2,
RTG4
Sets fanout threshold for synchronous
set/reset and data nets to infer
CLKINT. Default value is 5000. For
more information, see Promote Global
Buffer Threshold , on page 301.
-clock_globalthreshold value PolarFire, SmartFusion2, IGLOO2,
RTG4
Sets fanout threshold for clock nets to
infer CLKINT. Default value is 2.
-async_globalthreshold value Sets fanout threshold for
asynchronous reset/set nets to infer
CLKINT. Default value is 8 for RTG4
and 800 for PolarFire, SmartFusion2
and IGLOO2.
-opcond value PolarFire, IGLOO2
Sets operating condition for device
performance in the areas of
optimization, timing analysis, and
timing reports. Values are Default, MIL-
WC, IND-WC, COM-WC, and Automotive-
WC. See Operating Condition Device
Option , on page 304 for more
information.
-preserve_registers 1|0 When enabled, the software uses less
restrictive register optimizations
during synthesis if area is not as great
a concern for your device. The default
for this option is disabled (0).
-resolve_multiple_driver When a net is driven by a VCC or GND
1|0 and active drivers, enable this option
to connect the net to the VCC or GND
driver.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 309
Designing with Microchip Microchip Device Mapping Options
Option Description
-rw_check_on_ram 1 | 0 Enabling this option automatically
inserts bypass logic when required, to
prevent simulation mismatch in read-
during-write scenarios. For
asynchronous clocks, the tool will not
generate bypass logic which can cause
unintended CDC paths between the
clocks.
For more information about using this
option in conjunction with the
syn_ramstyle attribute, see
syn_ramstyle , on page 197.
-update_models_cp 1|0 PolarFire, IGLOO2
When set to 1, the locked compile point
changes are taken into account, by
updating the timing model of the
compile point and resynthesizing all of
its parents (at all levels), using the
updated model. See Update Compile
Point Timing Data Option , on
page 303, for details.
-low_power_ram_decomp 0 |1 PolarFire, SmartFusion2, IGLOO2,
RTG4
Enables use of BLK pins of the RAM for
reducing power consumption, by
fracturing wide RAMs on the address
width. Default value is 0.
-seqshift_to_uram 0 |1 PolarFire, SmartFusion2, IGLOO2,
RTG4
Enables inference of URAM if the
threshold is met. Default value is 1.
-disable_ramindex 0 |1 PolarFire, SmartFusion2, IGLOO2,
RTG4
Disables the generation of RAMINDEX
for RAM blocks if set to 1.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
310 Synopsys Confidential Information January 2024
Microchip Device Mapping Options Designing with Microchip
Option Description
-microsemi_enhanced_flow 0 |1 PolarFire, SmartFusion2, IGLOO2,
RTG4
Enables advanced constraint writer
flow and writes the forward annotation
constraints in Libero enhanced
constraints format, when the value is
set to 1. The default is 1.
-rep_clkint_driver 0 |1 PolarFire, SmartFusion2, IGLOO2,
RTG4
Enables replication of the register
driving a CLKINT as well as some other
loads, for which the fanout threshold is
not met. Default value is 1.
-ternary_adder_decomp value PolarFire, SmartFusion2, IGLOO2,
RTG4
Enables ternary adder implementation
with the limit of the adder output
width set by default to 66. Ternary
adder implementation can be turned
off by setting the value to 0.
-pack_uram_addr_reg {0/1} PolarFire, SmartFusion2, IGLOO2,
RTG4
Disables packing of read address
register in URAM if the option is set to
0. Default value is 1.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 311
Designing with Microchip Microchip Device Mapping Options
Option Description
-low_power_gated_clock {1/0} PolarFire
Enables inference of clock gating
macros, if set to 1. Default value is 0.
-clkint_rgclkint_limit {} PolarFire
Sets limit on the number of
RGCLKINTs inferred per CLKINT.
Default value is 1.
-async_clkint_removal 1 <default 0> Enables removal of CLKINT based on
slack value on asynchronous nets. If
the slack of an async reset pin is
negative, then CLKINT is removed
from that fanout net and applied to
the fanout nets which have positive
slack.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
312 Synopsys Confidential Information January 2024
Microchip Output Files and Forward Annotation Designing with Microchip
VM Flow Support
The tool generates a Verilog output netlist (.vm) for the PolarFire,
SmartFusion2, RTG4 and IGLOO2 devices for the P&R flow. After synthesis, the
tool:
• Writes a separate SDC file (*_vm.sdc).
• Writes a separate TCL file (*_partition_vm.tcl) to forward annotate the
timestamps on instances in an incremental compile point flow.
• Forward annotates properties like RTL attributes in the .vm netlist and
constraints in an SDC file.
By default, the tool generates a .vm netlist. You can change the netlist from
Verilog to EDIF.
The tool now supports the Libero Enhanced constraint flow by default. To
disable this flow, the following switch needs to be added in the Synplify Pro
project .prj file:
set_option -microchip_enhanced_flow 0
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 313
Designing with Microchip Microchip Output Files and Forward Annotation
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
314 Synopsys Confidential Information January 2024
Microchip Output Files and Forward Annotation Designing with Microchip
– To add the attribute from the SCOPE interface, click the Attributes tab
and specify the appropriate attribute and value.
– To add the attribute in the source files, use the appropriate attribute
and syntax. For details about the attributes in the tables, see the
Attribute Reference Manual.
1. Open the constraint file and add these attributes to the design.
2. Specify the syn_noarrayports attribute globally to bit blast all bus ports in
the design.
3. Use the alspin attribute to specify pin locations for individual bus bits.
This example shows locations specified for individual bits of bus
ADDRESS0.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 315
Designing with Microchip Microchip Output Files and Forward Annotation
Synthesis Reports
The synthesis tool generates a resource usage report, a timing report, and a
net buffering report for the Microchip designs that you synthesize.To view the
synthesis reports, click View Log.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
316 Synopsys Confidential Information January 2024
Integration with Microchip Tools and Flows Designing with Microchip
In device technologies that can take advantage of compile points, you break
down your design into smaller synthesis units or compile points, in order to
make incremental synthesis possible. A compile point is a module that is
treated as a block for incremental mapping: When your design is resynthe-
sized, compile points that have already been synthesized are not resynthe-
sized, unless you have changed:
• the HDL source code in such a way that the design logic is changed,
• the constraints applied to the compile points, or
• the device mapping options used in the design.
(For details on the conditions that necessitate resynthesis of a compile point,
see Compile Point Basics, on page 436, and Update Compile Point Timing Data
Option, on page 303.)
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 317
Designing with Microchip Integration with Microchip Tools and Flows
The synthesis tool provides timestamps for each manual compile point in the
*_partition.tcl file. You can use the timestamps to check whether the compile
point was resynthesized in an incremental run of the tool.
2. Run the standard synthesis flow. The synthesis tool writes the
timestamps for each compile point in the designName_partition.tcl file. For
example:
Check the Compile Point Summary report available in the log file.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
318 Synopsys Confidential Information January 2024
Integration with Microchip Tools and Flows Designing with Microchip
2. Add the Microchip macro library at the top of the source file list for your
synthesis project. Make sure that the library file is first in the list.
3. For VHDL, also add the appropriate library and use clauses to the top of
the files that instantiate the macros:
library family;
use family.components.all;
For details about the place-and-route tools, refer to the Microchip documen-
tation.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 319
Designing with Microchip Microchip Attribute and Directive Summary
Attribute/Directive Description
alsloc Forward annotates the relative placements of
macros and IP blocks to Microchip Designer.
alspin Assigns scalar or bus ports to Microchip I/O pin
numbers.
alspreserve Specifies that a net be preserved, and prevents it
from being removed during place-and-route
optimization.
black_box_pad_pin (D) Specifies that a pin on a black box is an I/O pad. It
is applied to a component, architecture, or module,
with a value that specifies the set of pins on the
module or entity.
black_box_tri_pins (D) Specifies that a pin on a black box is a tristate pin. It
is applied to a component, architecture, or module,
with a value that specifies the set of pins on the
module or entity.
full_case (D) Specifies that a Verilog case statement has covered
all possible cases.
loop_limit (D) Specifies a loop iteration limit for for loops.
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
320 Synopsys Confidential Information January 2024
Microchip Attribute and Directive Summary Designing with Microchip
Attribute/Directive Description
syn_enum_encoding (D) Specifies the encoding style for enumerated types
(VHDL only).
syn_hier Controls the handling of hierarchy boundaries of a
module or component during optimization and
mapping.
syn_insert_buffer Inserts a clock buffer according to the specified
value.
syn_insert_pad Removes an existing I/O buffer from a port or net
when I/O buffer insertion is enabled.
syn_isclock (D) Specifies that a black-box input port is a clock, even
if the name does not indicate it is one.
syn_keep (D) Prevents the internal signal from being removed
during synthesis and optimization.
syn_looplimit Specifies a loop iteration limit for while loops in the
design.
syn_maxfan Overrides the default fanout guide for an individual
input port, net, or register output.
syn_multstyle Determines how multipliers are implemented for
Microchip devices.
syn_netlist_hierarchy Determines whether the EDIF output netlist is flat or
hierarchical.
syn_noarrayports Prevents the ports in the EDIF output netlist from
being grouped into arrays, and leaves them as
individual signals.
syn_noclockbuf Turns off the automatic insertion of clock buffers.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 321
Designing with Microchip Microchip Attribute and Directive Summary
Attribute/Directive Description
syn_preserve (D) Prevents sequential optimizations across a flip-flop
boundary during optimization, and preserves the
signal.
syn_probe Adds probe points for testing and debugging.
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
322 Synopsys Confidential Information January 2024
Microchip Attribute and Directive Summary Designing with Microchip
Attribute/Directive Description
syn_tsu<n> (D) Specifies the timing setup delay for input pins,
relative to the clock. The n indicates a value between
1 and 10.
syn_useenables Generates clock enable pins for registers.
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 323
Designing with Microchip Microchip Attribute and Directive Summary
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
324 Synopsys Confidential Information January 2024
Index
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 313
C context of filtered schematic, displaying
114
cck.rpt file (constraint checking report) context sensitive help
152 using the F1 key 18
check boxes, Project view 72 copying
clock buffering report, log file (.srr) 159 for pasting 65
clock groups critical paths 119
Clock Relationships (timing report) 168 analyzing 120
clock pin drivers, selecting all 82 finding 120
clock relationships, timing report 168 cross-clock paths, timing analysis 168
clock report cross-hair mouse pointer 55
asynchronous 162 crossprobing 99
Clock Tree, HDL Analyst tool 82 definition 99
clocks Ctrl key
asynchronous report 170 avoiding docking 57
declared clock 164 multiple selection 54
defining 82 zooming using the mouse wheel 56
derived clock 165 cutting (for pasting) 58
inferred clock 164
system clock 165 D
color coding
Text Editor 47 declared clock 164
commenting out code (Text Editor) 47 deleting
See removing
compile points
Microchip 305 derived clock 165
updating data (Microchip) 291 design size, schematic sheet
compiler report, log file (.srr) 158 setting 102
Constraint Check command 173 device options (Microchip) 295
constraint checking report 173 directives (Microchip) 308
constraint files 125 Dissolve Instances command 117
.sdc 144 docking 38
automatic. See auto constraints avoiding 57
fdc and sdc precedence order 128 docking GUI entities
constraint files (.sdc) toolbar 57
creating 58 DSP blocks
constraint priority 128 inferencing 260
constraints dual-port RAM examples 202
auto constraints. See auto constraints
non-DC 135 E
priority 128
report file 173 editor view
styles 127 context help 48
types 124 encoding
context help editor 48 state machine
FSM Explorer 74
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
314 Synopsys Confidential Information January 2024
examples output
Interactive Attribute Examples 50 See output files
Explorer, FSM project (.prj) 144
enabling 74 RTL view (.srs) 155
srr 157
watching selected information 37
F state machine encoding (.fse) 152
failures, timing (definition) 121 Synopsys archive file (.sar) 154
synthesis output 152
fanout Technology view (.srm) 154, 155
Microchip 287 Verilog (.v) 145
fdc VHDL (.vhd) 145
constraint priority 128 files for synthesis 144
precedence over sdc 128
filtered schematic
fdc constraints 130 compared with unfiltered 85
generation process 128
filtering 113
fdc file commands 113
relationship with other constraint files compared with flattening 117
125 FSM states and transitions 85
feature comparison paths from pins or ports 121
FPGA tools 14 filtering critical paths 120
files finding
.adc 144 critical paths 120
.areasrr 152 information on synthesis tool 19
.fdc 144 GUI 18
.fse 152
.info 152 finite state machines
.ini 144 See state machines
.prj 144 Flatten Current Schematic command 117
.sar 154 Flatten Schematic command 117
.sdc 144
.srm 154, 155 flattening
.srr 157 commands 115
watching selected information 37 compared with filtering 117
.srs 155 selected instances 116
.ta 155 Float command
.v 145 Watch window popup menu 38
.vhd 145 floating
.vhm 157 toolbar 57
.vm 157
floating toolbar popup menu 57
compiler output (.srs) 155
constraint (.adc) 144 forward annotation
constraint (.sdc) 144 initial values 237
creating 58 Forward Annotation of Initial Values
customized timing report (.ta) 155 Verilog 237
design component info (.info) 152 frequency
initialization (.ini) 144 cross-clock paths 168
log (.srr) 157
watching selected information 37 Frequency (Mhz) option, Project view 73
mapper output (.srm) 154, 155 fse file 152
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 315
FSM Compiler option, Project view 74 See Analyst toolbar
FSM Compiler, enabling and disabling HDL Analyst views 78
globally See also RTL view, Technology view
with GUI 74 HDL files, creating 58
FSM encoding file (.fse) 152 header, timing report 163
FSM Explorer help
enabling 74 online
FSM Explorer option, Project view 74 accessing 18
FSM toolbar 62 hidden hierarchical instances 93
FSM Viewer 83 are not flattened 117
FSMs (finite state machines) Hide command
See state machines floating toolbar popup menu 57
Log Watch window popup menu 38
Tcl Window popup menu 41
G hierarchical area report 172
generic technology library 149 .areasrr file 172
graphical user interface (GUI), overview hierarchical instances 91
21 compared with primitive 90
GTECH library. See generic technology display in HDL Analyst 91
library hidden 93
opaque 91
gtech.v library 149
transparent 91
gui
hierarchical schematic sheet, definition
synthesis software 17 102
GUI (graphical user interface), overview hierarchy
21
flattening
compared with filtering 117
H pushing and popping 105
schematic sheets 102
HDL Analyst tool 77
accessing commands 86 Hierarchy Browser 109
analyzing critical paths 119 changing size in view 78
Clock Tree 82 Clock Tree 82
crossprobing 99 finding schematic objects 97
filtering designs 113 moving between objects 82
finding objects 97 RTL view 78
hierarchical instances. See hierarchical symbols (legend) 83
instances Technology view 80
object information 88 trees of objects 82
preferences 102
push/pop mode 105 I
ROM table viewer 245
schematic sheet size 102 I/O insertion (Microchip) 290
schematics, filtering 113 Identify Instrumentor
schematics, multiple-sheet 102 launching 63
status bar information 88
IEEE 1364 Verilog 95 standard 146
title bar information 102
Implementation Directory 32
HDL Analyst toolbar
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
316 Synopsys Confidential Information January 2024
Implementation Results 32 L
indenting a block of text 47
latches
indenting text (Text Editor) 47
in timing analysis 119
inferencing
Launch Identify Instrumentor icon 63
DSP blocks 260
legacy sdc file. See sdc files, difference
inferred clock 164 between legacy and Synopsys
info file (design component info) 152 standard
ini file 144 lib2syn
initial value data file using 150
Verilog 234 libraries
Initial Values general technology 148
forward annotation 237 macro, built-in 145
technology-independent 148
initial values VHDL
$readmemb 231 attributes and constraints 146
$readmemh 231
linkerlog file 153
initial values (Verilog)
netlist file (.srs) 237 log file (.srr) 157
watching selected information 37
initialization file (.ini) 144
log file report 157
input files 144 clock buffering 159
.adc 144 compiler 158
.ini 144 mapper 159
.sdc 144 net buffering 159
.sv 145 resource usage 160
.v 145 retiming 161
.vhd 145 summary of compile points 160
inserting timing 160
bookmarks (Text Editor) 47 Log Watch Configuration dialog box 39
instances Log Watch window 37
hierarchical Output Windows 45
dissolving 110 positioning commands 38
making transparent 110
hierarchical. See hierarchical instances
primitive. See primitive instances M
Interactive Attribute Examples 50 macros
interface information, timing report 169 libraries 145
isolating paths from pins or ports 121 Microchip 258
SIMBUF 259
K mapper output file (.srm) 154, 155
mapper report
keyboard shortcuts 64 log file (.srr) 159
arrow keys (Hierarchy Browser) 109 margin, slack 120
keyword completion, Text Editor 47 message viewer
keywords description 41
completing in Text Editor 47 Messages Tab 41
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 317
Microchip netlist file 157
ACTgen macros 307 initial values (Verilog) 237
attributes 308 netlists for different vendors 253
black boxes 258
compile point synthesis 305
compile point timing data 291 O
device options 295 object information
directives 308 status bar, HDL Analyst tool 88
features 254 viewing in HDL Analyst tool 88
I/O insertion 290
macro libraries 306 objects
macros 258 crossprobing 99
Operating Condition Device Option 292 dissolving 110
output netlist 253 making transparent 110
pin numbers for bus ports 303 objects, schematic
product families 252 See schematic objects
reports 304 Online help
SIMBUF macro 259 F1 key 18
Tcl implementation options 296
online help
Microchip implementing RAM 266 accessing 18
mouse button operations 54 opaque hierarchical instances 91
mouse operations 52 are not flattened 117
Mouse Stroke Tutor 53 options
mouse wheel operations 56 Project view 72
Frequency (Mhz) 73
Move command FSM Compiler 74
floating toolbar window 57 FSM Explorer 74
Log Watch window popup menu 38 Resource Sharing 75
Tcl window popup menu 41 Retiming 75
moving between objects in the Hierarchy options (Microchip) 296
Browser 82
output files 152
moving GUI entities
.areasrr 152
toolbar 57
.info 152
multiple-sheet schematics 102 .sar 154
multipliers .srm 154, 155
DSP blocks 260 .srr 157
multisheet schematics watching selected information 37
transparent hierarchical instances 104 .srs 155
.ta 155
.vhm 157
N .vm 157
netlist 157
navigating
See also files
among hierarchical levels
by pushing and popping 105 Output Windows 45
with the Hierarchy Browser 109 Overview of the Synopsys FPGA
among the sheets of a schematic 102 Synthesis Tools 12
nesting design details (display) 110
net buffering report, log file 159
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
318 Synopsys Confidential Information January 2024
P R
partitioning of schematics into sheets RAM implementations
102 Microchip 266
pasting 58 RAM inference 185
performance summary, timing report 163 using attributes 186
pins RAMs
displaying inferring block RAM 189
on transparent instances 95 initial values (Verilog) 231
displaying on technology-specific RAMs, inferring
primitives 96 advantages 184
isolating paths from 121
reference manual, role in document set
pointers, mouse 11
cross-hairs 55 removing
push/pop arrows 108 bookmark (Text Editor) 47
popping up design hierarchy 105 window (view) 57
popup menus reports
floating toolbar 57 constraint checking (cck.rpt) 173
Log Watch window 38, 39 hierarchical area report 172
Log Watch window positioning 38 Resource Sharing option, Project view 75
Tcl window 41
resource usage report, log file 160
precedence of constraint files 128
retiming
preferences report, log file 161
HDL Analyst tool 102
Retiming option, Project view 75
primitive instances 90
ROM inference examples 245
primitives
pin names in Technology view 96 ROM initialization
with rom.info file 248
prj file 144 with Verilog generate block 249
Process View 33 rom.info file 245
project files (.prj) 144 RTL view 78
project results displaying 60
Implementation Directory 32 file (.srs) 155
Process View 33
Project Status View 26 S
Project Results View 26
Project Status View 26 schematic objects
crossprobing 99
Project toolbar 57 definition 88
Project view 22 dissolving 110
buttons and options 72 finding 97
options 72 making transparent 110
Synplify Pro 22 status bar information 88
Project window 22 schematic sheets 102
project_name_cck.rpt file 173 hierarchical (definition) 102
navigating among 102
push/pop mode, HDL Analyst tool 105 setting size 102
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 319
schematics setting 120
configuring amount of logic on a sheet source files
102 See also files
crossprobing 99 creating 58
filtered 85
filtering commands 113 srd file 154
flattening compared with filtering 117 srm file 154, 155
flattening selectively 116 srr file 157
hierarchical (definition) 102 watching selected information 37
multiple-sheet 102
multiple-sheet. See also schematic srs file 155
sheets initial values (Verilog) 237
object information 88 standards, supported
partitioning into sheets 102 Verilog 146
sheet connectors 89 VHDL 146
sheets state machines
navigating among 102 encoding
size, setting 102 displaying 85
size in view, changing 78 FSM Explorer 74
unfiltered 85 encoding file (.fse) 152
unfiltering 114 filtering states and transitions 85
SCOPE state encoding, displaying 85
for legacy sdc 132 status bar information, HDL Analyst tool
sdc 88
fdc precedence 128 structural netlist file (.vhm) 157
SCOPE for legacy files 132
structural netlist file (.vm) 157
sdc file
summary of compile points report
difference between legacy and
Synopsys standard 127 log file (.srr) 160
sdc2fdc utility 133 supported standards
Verilog 146
selecting VHDL 146
text column (Text Editor) 47
symbols
selecting multiple objects using the Ctrl Hierarchy Browser (legend) 83
key 54
syn_maxfan
set_rtl_ff_names 135 fanout limits (Microchip) 287
sheet connectors 89 syn_noarrayports attribute
Shift key 57 use with alspin 303
shortcuts Synopsys FPGA Synthesis Tools
keyboard overview 12
See keyboard shortcuts Synopsys standard sdc file. See sdc files,
SIMBUF macro 259 difference between legacy and
single-port RAM examples 199 Synopsys standard
slack Synplify Pro tool
cross-clock paths 169 Project view 22
defined 164 user interface 17
margin Synplify tool
definition 121 user interface 17
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
320 Synopsys Confidential Information January 2024
synthesis file (.ta) 155
log file (.srr) 157 header 163
watching selected information 37 interface information 169
synthesis software performance summary 163
gui 17 timing reports
system clock 165 asynchronous clocks 170
log file (.srr) 160
SystemVerilog keywords
context help 48 title bar information, HDL Analyst tool
102
T toolbars 57
FSM 62
ta file (customized timing report) 155 moving and docking 57
Tcl commands transparent hierarchical instances 92
constraint files 131 lower-level logic on multiple sheets 104
pasting 41 operations resulting in 112
pins and pin names 95
Tcl Script window
Output Windows 45 trees of objects, Hierarchy Browser 82
Tcl shell command trees, browser, collapsing and expanding
sdc2fdc 133 82
Tcl window
popup menu commands 41 U
popup menus 41
unfiltered schematic, compared with
Technology view 80 filtered 85
displaying 60 unfiltering schematic 114
file (.srm) 154, 155
user interface
Text Editor Synplify Pro tool 17
features 47
indenting a block of text 47 user interface, overview 21
opening 46 using the mouse 52
selecting text column 47 utilities
view 45 lib2syn 150
text editor sdc2fdc 133
completing keywords 47
Text Editor view 45 V
timing analysis of critical paths (HDL
Analyst tool) 119 v file 145
timing analyst vendor technologies
cross-clock paths 168 Microchip 251
timing annotated properties (.tap) 156 vendor-specific netlists 253
timing constraints Verilog
See also FPGA timing constraints Forward Annotation of Initial Values
237
See constraints
generic technology library 149
timing failures, definition 121 initial value data file 234
timing report 162 initial values for RAMs 231
clock relationships 168 Microchip ACTgen macros 307
customized (.ta file) 155 netlist file 157
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 321
ROM inference 245
source files (.v) 145
structural netlist file (.vm) 157
supported standards 146
Verilog 2001 146
Verilog 95 146
Verilog macro libraries
Microchip 306
Verilog source file (.v) 145
vhd file 145
vhd source file 145
VHDL
libraries
attributes, supplied with synthesis
tool 146
macro libraries, Microchip 306
source files (.vhd) 145
structural netlist file (.vhm) 157
supported standards 146
VHDL source file (.vhd) 145
vhm file 157
views 36
FSM 83
Project 22
removing 57
RTL 78
Technology 80
vm file 157
W
Watch Window. See Log Watch window
window
Project 22
windows 36
closing 66
log watch 37
removing 57
Z
zoom
using the mouse wheel and Ctrl key 56
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
322 Synopsys Confidential Information January 2024
Synplify Pro for Microchip Edition Reference Manual © 2024 Synopsys, Inc.
January 2024 Synopsys Confidential Information 323
LO
© 2024 Synopsys, Inc. Synplify Pro for Microchip Edition Reference Manual
324 Synopsys Confidential Information January 2024