beautypg.com

Synthesis optimization recommendations, Hanging nets – Achronix Synthesis User Manual

Page 8

background image

8

UG018, April 15, 2013

Synthesis Optimization Recommendations

There are several recommendations that can be implemented by the user during Synplify-Pro
synthesis. This sections covers:

Hanging Nets

Clock Constraints

Pipelining

Retiming

Memories

o Block RAM (BRAM)
o Local Ram (LRAM)

Finite State Machines

o Finite State Machine (FSM) Compiler
o Replication of States that have high fan-ins

Hanging Nets

Synplify Pro always performs optimization on the redundant or feed-through nets. At times,
the user may want to keep these nets. In order for these nets not to get optimized away
(removed), you will have to do the following:

wire net1 /* synthesis syn_keep = 1 */ ;
wire net2 ;
assign net2 = net1 ;

In this above example, the synthesis tool won’t optimize away (remove) the logic. Instead, it
will infer a buffer between the two wire statements. If it is not specified, the user may not see
the buffer insertion by the tool.

The same is true for sequential logic. If you don’t not want the sequential element optimized
away (removed), the following synthesis directive to be added:

reg net_reg1 /* synthesis syn_preserve = 1 */ ;
always @ (posedge clk)
begin

net_reg1 <= some_net

;

end