Synthesis User Guide (UG018) - Achronix

2y ago
25 Views
2 Downloads
834.68 KB
37 Pages
Last View : 27d ago
Last Download : 3m ago
Upload by : Baylee Stein
Transcription

Synthesis User Guide(UG018)All Achronix Deviceswww.achronix.com

Synthesis User Guide (UG018)Copyrights, Trademarks and DisclaimersCopyright 2019 Achronix Semiconductor Corporation. All rights reserved. Achronix, Speedcore, Speedster,and ACE are trademarks of Achronix Semiconductor Corporation in the U.S. and/or other countries All othertrademarks are the property of their respective owners. All specifications subject to change without notice.NOTICE of DISCLAIMER: The information given in this document is believed to be accurate and reliable.However, Achronix Semiconductor Corporation does not give any representations or warranties as to thecompleteness or accuracy of such information and shall have no liability for the use of the information containedherein. Achronix Semiconductor Corporation reserves the right to make changes to this document and theinformation contained herein at any time and without notice. All Achronix trademarks, registered trademarks,disclaimers and patents are listed at http://www.achronix.com/legal.Achronix Semiconductor Corporation2903 Bunker Hill LaneSanta Clara, CA 95054USAWebsite: www.achronix.comE-mail : info@achronix.comwww.achronix.com2

Synthesis User Guide (UG018)Table of ContentsChapter - 1: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Chapter - 2: Synplify Pro Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Creating and Setting up a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Adding the Synthesis Library Include File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Adding Source Files to the Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Implementation Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Place and Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Timing Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Implementation Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Running Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Chapter - 3: Synthesis Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Timing Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17create clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17create generated clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18set clock groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19set false path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19set input delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19set output delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20set max delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20set multicycle path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20set clock latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21set clock uncertainty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Non-timing Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Compile Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Constraint Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Chapter - 4: Synthesis Optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Preventing Objects from Being Optimized Away . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Dangling Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24www.achronix.com3

Synthesis User Guide (UG018)Dangling Sequential Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Unconnected Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Prevent ACE Optimizing Objects Away . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Pipelining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Retiming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Forward Annotation of RTL Attributes to Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Example 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Example 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Example 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Example 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Example 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Compile Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Finite State Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Generating Better Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Debugging the State Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32FSM Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Replication of States with High Fan-ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Chapter - 5: Example Synplify-Pro Project File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37www.achronix.com4

Synthesis User Guide (UG018)www.achronix.com5

Synthesis User Guide (UG018)Chapter - 1: OverviewThis user guide describes how to use Synplify Pro from Synopsys to synthesize a design and generate a netlistfor implementation in an Achronix Speedcore instance. Suggested optimization techniques are also included.Synplify-Pro reads in standard RTL and outputs a mapped netlist ( .vm) which is used by the ACE tool suite. Ahigh-level overview of the Achronix design flow is shown in figure below.Figure 1: Achronix Synthesis Design Flowwww.achronix.com6

Synthesis User Guide (UG018)Chapter - 2: Synplify Pro IntroductionThis guide assumes that Synplify Pro is installed with the synplify pro command added to the PATH. Theexamples in this guide uses the Linux version of the software; the Windows version of Synplify Pro has the sameoptions.Creating and Setting up a ProjectIn a Linux command shell type synplify pro to invoke the Synplify Pro Synthesis tool. When invoked, thefollowing window will be displayed:Figure 2: Synplify Pro Invoked from the Command ShellClick the Open Project button on the left side to open the open project dialog-box:.www.achronix.com7

Synthesis User Guide (UG018)Figure 3: Dialog Box to Select the New ProjectClick the New Project button to open the following window:Figure 4: Starting a New ProjectAdding the Synthesis Library IncludeFilewww.achronix.com8

Synthesis User Guide (UG018)Adding the Synthesis Library Include FileAfter selecting and saving the project file inside the desired directory path, add the appropriate synthesis libraryinclude file. The file to be included varies according to the target device technology; the respective files are listedin Synthesis library include files table (see page 9) below. All the synthesis library includes files are located inthe directory ACE INSTALL DIR /libraries/device models/.Table 1: Synthesis Library Include FilesTechnologyLibrary fileHD1000 22nm22i synplify.vSpeedcore 16t16t synplify.vSpeedster 7t7t synplify.vSpeedcore 7t7t synplify.vAdding Source Files to the ProjectThere are two ways to add RTL source files. One is using the Add File button in the left menu bar, and the otherone is to right-click on the project file and select Add Source File. Selecting either option directs the user to adialog box listing available RTL files (see the figure below). The same procedure is followed for adding bothsource and constraint files.In the examples that follow, the Speedcore 16t technology has been selected, so the file 16t synplify.v isused. From this dialog box, select the desired RTL file(s) and then click Add followed by OK. The Verilog/VHDLfile(s) will now be added to the project for synthesis.www.achronix.com9

Synthesis User Guide (UG018)Figure 5: Add Files to ProjectImplementation OptionsAfter adding the RTL files and constraint files, the next step is to set the implementation options. ClickImplementation Options to open the window. shown below. This dialog box shows the default options. Forexample the "Fanout Guide" defaults to 10,000, but can be overwritten by the user.www.achronix.com10

Synthesis User Guide (UG018)Figure 6: Implementation OptionsNoteIf using a Speedcore device, ensure the Disable I/O Insertion option is checked as shown. If using aSpeedster device, then this option must be disabled.In the "Implementation Options" dialog box, the "Device" tab is selected by default. Each tab presentationadditional options that can be set according to user's needs. Below are some guidelines for these options.VerilogUnder this tab, the user may designate the top-level design module name. The user can also provide the namesof any parameters existing in the design along with associated values. If parameters are defined in this manner,Synplify Pro propagates this value throughout the design. In this tab, the user must include the path to neededlibraries under "Include Path Order." Click on the file icon to add the directory path and select from theACE installation path as shown below.Note"Library Directories or Files" box can be left empty.www.achronix.com11

Synthesis User Guide (UG018)Figure 7: Implementation Options: Include Path Order.Place and RouteThis tab is not presently utilized by the Achronix back-end tool (ACE).Timing ReportIn the Timing report tab, the number of critical paths and number of start and end points can be specified toappear in the timing report. Default timing report is available in the synthesis report ( .srr) file. The two availableoptions are:Number of Critical paths – sets the number of critical paths for the tool to report.Number of Start/End points – specifies the number of start and end points to see reported in the criticalpath sections.www.achronix.com12

Synthesis User Guide (UG018)Figure 8: Implementation Options: Timing ReportImplementation ResultsUsers may set their own implementation name in this tab; the default name is rev 1. The next box is the "ResultsDirectory," specifying where users want to save the synthesized netlist file. The third box is "Results File Name,"which sets the synthesized netlist file name.www.achronix.com13

Synthesis User Guide (UG018)Figure 9: Implementation Options: Implementation ResultsConstraintsThe Constraints tab is used to add synthesis constraint files if they were not added after adding source RTL files.This tab is also used to set the default clock speed of the design. Achronix highly recommends that a suitableconstraint file be created for the synthesis project, specifying all of the clocks in the design. For details of how toadd constraint files and their syntax see Synthesis Constraints (see page 17).In addition the default frequency should be set to the match the most common system clock frequency (bydefault it is set to 200 MHz).www.achronix.com14

Synthesis User Guide (UG018)Figure 10: Implementation Options: ConstraintsOptionsThe Options tab sets the following optimization switches: FSM Compiler, Resource Sharing, Pipelining andRetiming — all are enabled by default. Users may change these optimization options according to design needs.For example, with resource sharing enabled, the software uses the same arithmetic operators for mutuallyexclusive statements as in branches of a case statement and hence area is optimized. Conversely, timing can beimproved by disabling resource sharing, but at the expense of increased area.www.achronix.com15

Synthesis User Guide (UG018)Figure 11: Implementation Options: OptionsRunning SynthesisAfter selecting all the options according to the users design, click OK. The user is returned to the Synplify Promain window to run the synthesis. From this main window, click RUN button to start synthesis.www.achronix.com16

Synthesis User Guide (UG018)Chapter - 3: Synthesis ConstraintsSynplify constraints can be specified in two file types:Synopsys design constraints (SDC) – normally used for timing (clock) constraints. A second SDC filewould be required for any non-timing constraints.FPGA design constraints (FDC) – usually used for non-timing constraints; however, can contain timingconstraints as well.SDC files are usually edited using a text editor, either as part of Synplify Pro or an external editor. FDC files canbe edited in both a text editor or using the Scope editor within Synplify Pro. When using Synplify Pro to edit FDCfiles, an assistant tab is available which provides details of available FDC commands and their format.Timing ConstraintsIt is highly recommended that the user defines all clocks in the design, using an SDC file. If the design hasmultiple clocks, clock constraints should be set accordingly, defining either appropriate clock groups or falsepaths between asynchronous clocks. In addition, if required the user can specify specific duty cycles for anyparticular clock.Use the create clock timing constraint to define each input clock signal. Use thecreate generated clock timing constraint to define a clock signal output from clock divider logic. The clockname (set with the -name option) will be applied to the output signal name of the source register instance. Whenconstraining a differential clock, the user only needs to constrain the positive input.For any clock signal that is not defined, Synplify Pro uses a default global frequency, which can be set with theset option -frequency Tcl command in the Synplify project file. However, Achronix recommends definingeach clock in the design rather than relying on using this default frequency for undefined clocks.A list of SDC commands are given below with examples. Refer to fpga reference.pdf available in SynplifyPro Tool Help PDF documents for the description of the various options of the remaining SDC commandslisted here.create clockThis command creates a clock object and defines its waveform in the current design. The options forcreate clock are described in the table following.Syntaxcreate clock -name clockName [-add] {objectList} -period {Value} [-waveform {riseValuefallValue}] [-disable] [-comment commentString]Command Examplescreate clockcreate clockcreate clockcreate -period-period-period-period10 [get ports {inclk1}]20 [get nets {divclk}]5 -add [get ports {inclk1}]20 [get ports {inclk1 inclk2 inclk3}] -waveform { 10 15 }www.achronix.com17

Synthesis User Guide (UG018)Table 2: Option Description for create clockOptionDescriptionsSpecifies the name for the clock being created, enclosed in quotation marks or curly braces. Ifthis option is not used, the clock is given the name of the first clock source specified in theobjectList option. If the objectList option is not specified, the -name option must also be used,-name clockName which creates a virtual clock not associated with a port, pin, or net. Both the -name and objectListoptions can be used to give the clock a more descriptive name than the first source pin, port, ornet. If specifying the -add option, the -name option must be used, and clocks with the samesource must have different names.-addSpecifies whether to add this clock to the existing clock or to overwrite it. Use this option whenmultiple clocks must be specified on the same source for simultaneous analysis with differentwaveforms. When this option is specified, the -name option must also be used.-period ValueSpecifies the clock period in nanoseconds (ns). The value type must be greater than zero.-waveformriseValuefallValueSpecifies the rise and fall times for the clock in nanoseconds with respect to the clock period.The first value is a rising transition, typically the first rising transition after time zero.There mustbe two edges, and they are assumed to be a rise followed by a fall. The edges must bemonotonically increasing. If this option is not specified, a default timing is assumed which has arising edge of 0.0 and a falling edge of periodValue/2objectListClocks can be defined on the following objects: pins, ports, and nets.-disableDisables the constraint.-commenttextStringAllows the command to accept a comment string.create generated clockThis command creates a generated clock object.Syntaxcreate generated clock -name {clockName} [-add] -source {masterPin} -divide by integerCommand Examplescreate generated clock -name divclk -source [get ports {inclk}] -divide by 2 [get nets {divclk}]create generated clock -name clk div2 -source [get pins {iPLL.ddr3 pll.iACX PLL/ogg gm clk[0]}] \-divide by 2 \[get pins {i ddr3xN phy w ctrl core.ddr3 inst\.i ddr3 macro.x ddr3.i ddr3xN phy w controller.i ddr3xN phy.i phy sd clkdiv/clkout}]The period (.) is used as a separator between levels of hierarchy and instances. The backslash (\) is only usedwhen referencing what is inside a generate block name. For example, the RTL appears as follows:www.achronix.com18

Synthesis User Guide (UG018)generatebegin: ddr3 instddr3 macro i ddr3 macro (.)set clock groupsSpecifies clock groups that are mutually exclusive or asynchronous with each other in a design.Syntaxset clock groups -asynchronous -name clockGroupname -group{clockList}Command Exampleset clock groups -asynchronous -group {clk1 clk2} -group {clk3 clk4} -name clkgroupset false pathThis command removes timing constraints from particular paths.Syntaxset false path [-setup] [-from -rise from -fall from]fall to] value {objectList}[-through][-to -rise to -Command Examplesset false pathset false pathoutput port)set false pathset false pathset false pathregister)set false pathis a RAM-from [get clocks inclk1] -to [get clocks inclk2]-from temp2 -to out#(where temp2 is a register and out is an-from in-from temp1 -to temp2-from in -to temp1#(where in is an input port )#(where temp1 and temp2 are registers)#(where in is an input port and temp1 is a-from {i:temp2[*]} -to {mem mem 0 0}#(where temp is register bus and mem mem 0 0set input delaySets input delay on pins or input ports relative to a clock signal.Syntaxset input delay [-clock {clockName}] [-clock fall] [-rise] [-fall] [-min] [-max] [-add delay]{delayValue} {portPinList}www.achronix.com19

Synthesis User Guide (UG018)Command Examplesset input delayset input delayset input delayset input delayset input delayset input delayset input delayset input delayset input delay1.00 -clock clk {at} -max{1.00} -clock [get clocks {clk}] -max [get ports {at}]2.00 -clock clk {bt} -min1.00 -clock clk -min -add delay {bt}3.00 -clock clk {st}4.00 -clock clk -add delay {st}1.00 -clock clk {din2} -clock fall1.50 -clock clk {din1 din2}2.00 -clock clk [all inputs]set output delaySets output delay on pins or output ports relative to a clock signal.Syntaxset output delay [-clock clockName [-clock fall]] [-rise [-fall] [-min -max] [-add delay]delayValue {portPinList} [-disable] [-comment commentString]Command Examplesset output delay 1.00 -clock clk {o1} -maxset output delay 3.00 -clock clk -max -add delay {o1}set output delay 2.00 -clock clk {o2} -minset max delaySpecifies a maximum delay target for paths in the current design.Syntaxset max delay [-from -rise from -fall from] [-through] [-to -rise to -fall to]{delay value}Command Examplesset max delay 2 -from {a b } -to {o1}set max delay -rise from {clk} {1}set max delay -through {{n:dout1}} {1}set max delay 1 -fall to {clk1}set multicycle pathModifies single-cycle timing relationship of a constrained path.www.achronix.com20

Synthesis User Guide (UG018)Syntaxset multicycle path [-start -end] [-from {objectList}] [-through {objectList} [-through{objectList} .] ] [-to {objectList}] pathMultiplier [-disable] [-comment commentString]Command Examplesset multicycle path 2 -from [get clocks inclk1] -to [get clocks inclk2]set multicycle path 4 -from temp2 -to outset clock latencySpecifies clock network latency.Syntaxset clock latency -source [-clock {clockList}] delayValue {objectList}Command Exampleset clock latency 0.2 -source [get ports clk] -clock [get clocks {clk}]set clock uncertaintySpecifies the uncertainty or skew of the specified clock networks.Syntaxset clock uncertainty {objectList} -from fromClock -rise from riseFromClock -fall fromfallFromClock -to toClock -rise to riseToClock -fall to fallToClock valueCommand Exampleset clock uncertainty 0.4 [get clocks clk]Below is an example of clock constraint commands for a multiple clock domain design.NoteMost timing engines only use up to three decimal places of accuracy; therefore, it is normal to truncatenon-rational values to this level.www.achronix.com21

Synthesis User Guide (UG018)# Clock definitionscreate clock -period 10{pll refclk p}pll refclk pcreate clock -period 100[ get ports] -name[ get ports{tck}] -name tckcreate clock -period 1.527 [ get pins {i clock generator.i PLL EN.SW APLL 0 pll en clk APLL.iACX PLL/ogg gm clk[0]}] -name en mac ref clkcreate clock -period 3.175 [ get pins {i clock generator.i PLL FF.SW APLL 1 pll ff clk APLL.iACX PLL/ogg gm clk[0]}] -name ff clkcreate clock -period 3.448 [ get pins {i clock generator.i PLL SYS.SW APLL 2 pll sys clk APLL.iACX PLL/ogg gm clk[0]} ] -name sys clkcreate clock -period 62.5 [ get pins {i clock generator.i PLL DCC.SW APLL 3 pll dcc clk APLL.iACX PLL/ogg gm clk[0]} ] -name sbus clk# By specifying clock group, each of the above clocks will be determined to be asynchronous toall other clocksset clock groups -asynchronous -name clk grp1 -group-group-group-group-group-group{sbus clk}{en mac ref clk}{pll refclk p}{sys clk}{ff clk}{tck}\\\\\Non-timing ConstraintsAn FDC file is used to specify non-timing constraints, which can be either attributes on an object (global or local),using the define attribute statement, or compile points.Compile PointsTo implement compile points, they are specified in the FDC file as follows.NoteFor a detailed explanation of compile points how and when to use them, see Compile Points (see page30).To set a single compile point, enter:define compile point{v:work.pac ddr3 ip} -type {locked}To find every instance of a module and set as a compile point, enter:Compile Point syntaxforeach inst [c list [find -hier -view pac ddr3 ip*]] {define compile point inst -type {locked}}Attributeswww.achronix.com22

Synthesis User Guide (UG018)AttributesAttributes can be defined both globally and also applied to individual instances.Enable a wide MUX option in Speedster16t technology, enter:define global attribute{syn acx mux41 opt} {1}To override the number of available resources in a device, enter the following command. This command can beused to limit the mapping to certain resources.define global attribute syn allowed resources {blockrams 1000}To synthesize all ROMs using logic, enter:define global attribute{syn romstyle} {logic}To ensure that RAMs are only inferred for sufficiently large register sets, enter:define global attribute{syn max memsize reg} {2048}Constraint CheckSynplify Pro provides a constraint checker, which runs the preliminary stages of synthesis, and then checks theproject constraint files against the objects in the design. It will report if any constraints cannot be successfullyapplied. It is highly recommended that Constraint Check is run, to ensure that all constraints the user requires tobe applied to the design are in fact being applied.Constraint Check is launched using Run Constraint Check.www.achronix.com23

Synthesis User Guide (UG018)Chapter - 4: Synthesis OptimizationsThere are several optimizations that can be performed by the user during Synplify Pro synthesis. This sectionscovers recommendations for:Hanging netsPipeliningRetimingForward annotation of RTL attributes to netlistCompile pointsFinite state machinesPreventing Objects from Being Optimized AwayDangling NetsSynplify Pro always performs optimization on redundant or feed-through nets. At times, the user may want tokeep these nets. In order for these nets not to get optimized away (removed), add the following directive to theRTL, In this example, the synthesis tool does not optimize away (remove) the logic. Instead, it infers a bufferbetween the two wire statements. If it is not specified, the user may not see the buffer insertion by the tool.wire net1 /* synthesis syn keep 1 */ ;wire net2 ;assign net2 net1 ;Dangling Sequential LogicFor sequential logic the syn preserve attribute is used.reg net reg1 /* synthesis syn preserve 1 */ ;always @ (posedge clk)net reg1 some net;Unconnected InstancesFor input instances when their output pins are unconnected, the syn noprune attribute is used. The followingexamples show how to apply this attribute to both Speedster I/O pads and Speedcore boundary pins.Speedster Output PadPADIN ipad ( .padin(in[0]) ) /* synthesis syn noprune 1 */;www.achronix.com24

Synthesis User Guide (UG018)Speedcore Output PinIPIN ipin ( .din(in[0]) ) /* synthesis syn noprune 1 */;Prevent ACE Optimizing Objects AwayIn the above examples, Synplify Pro does not remove the unconnected entity, ensuring that the Synplify Pronetlist retains these e

Synplify constraints can be specified in two file types: Synopsys design constraints (SDC) – normally used for timing (clock) constraints. A second SDC file would be required for any non-timing constraints. FPGA design constraints (FDC) – usually used for non-timing constraints; however,

Related Documents:

Milli-Q Synthesis/Synthesis A10 1 Chapter 1 INTRODUCTION 1-1 USING THIS MANUAL MATCHING THIS MANUAL WITH YOUR MILLI-Q This manual is intended for use with a Millipore Milli-Q Synthesis or Milli-Q Synthesis A10 Water Purification System. This Owner s Manual is a guide for use during the in

and this is still in the form of a PID controller but now the settings are: 2Ip W p c W T p c p K K, W W, and W T 1 Dp. . Colorado School of Mines CHEN403 Direct Synthesis Controller Tuning Direct Synthesis - Direct Synthesis - Direct Synthesis - Colorado School of Mines CHEN403 Direct Synthesis Controller Tuning File Size: 822KB

Organic Synthesis What are the Essentials in Synthesis? 5 Since organic synthesis is applied organic chemistry, to stand a realistic chance of succeeding in any synthesis, the student ought to have a good knowledge-base of organic chemistry in the following areas: Protecting group chemistry Asymmetric synthesis

the advantages of microwave assisted synthesis in com-parison to conventional heating. First, we will discuss the microwave synthesis of 2-pyridones. In the second part, microwave assisted synthesis of 2-quionolones will be given. At the end of the review, examples of microwave synthesis of ring fused N-substituted 2-pyri-dones will be discussed.

Technical Terms ! Organic Synthesis-means the same as synthetic organic chemistry ! Total Synthesis: The chemical synthesis of a molecule from a relatively simpler starting materials ! Semisynthesis: the synthesis of

Reaction 9. Anschutz Anthracene Synthesis 10. Appel Reaction 11. Arndt-Eistert Synthesis 12. Aston-Greenburg Rearrangement 13. Aza-Claisen Rearrangement 14. Baeyer Indole Synthesis 15. Baeyer Oxindole Synthesis 16. Baeyer Pyridine Synthesis 17. Baeyer-Villiger Oxidation 18. Baltz-Schiemann Reac

3.1.2.9 Synthesis of Propoxylated Bisphenol A dimethacrylate 57 3.1.2.10 Purification of Propoxylated Bisphenol A dimethacrylate 60 3.1.2.11 Synthesis of Propoxylated 6F dimethacrylate 60 3.1.2.12 Synthesis of Ethoxylated Bisphenol A dimethacrylate 61 3.1.2.13 Synthesis of Ethoxyla

Accounting theory also includes the reporting of account-ing and financial information. There has been and will continue to be exten - sive discussion and argumentation as to what these basic assumptions, definitions, principles, and concepts should be; thus, accounting theory is never a final and finished product. Dialogue always continues, particularly as new issues and problems arise. As .