Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

how to deal with high fanout net?

Status
Not open for further replies.

nicolas_pellissier

Newbie level 4
Joined
Mar 17, 2009
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,311
Hello,

How to deal with high fanout nets in synthesis with DC?


Warning: Design '' contains 5 high-fanout nets. A fanout number of 1000 will be used for delay calculations involving these nets. (TIM-134)
Net 'i_ahbram/n2858': 2110 load(s), 1 driver(s)
Net 'i_cortexm0ds_wrapper/u_CORTEXM0DS/u_logic/htrans_o[0]': 1666 load(s), 1 driver(s)
Net 'i_ve_reggen/APB/ambacom_amba3_apb_rtl_r2p0_0_inst/po_core_if_rst_n': 1206 load(s), 0 driver(s), 20 inout(s)
Net 'i_ARC_wrapper/i_DW_arc_4m_cpu_top/u_cpu/u_pd1_domain/u_core/u_pipe/u_execute/u_regfile_2r2w/n1438': 1024 load(s), 1 driver(s)
Net 'i_ARC_wrapper/i_DW_arc_4m_cpu_top/u_cpu/u_clock_ctrl/u_clkgate3/clk_in': 2007 load(s), 0 driver(s), 78 inout(s)


What happen in term of timing on this HFN ?

If I tell the synthesis tool by saying a command called as "set_ideal_net <net>". this way the synthesis tool knows the specified net as a high fanout net and does not buffer them .
What happen in term of timing ?


BR
Nicolas
 
Last edited by a moderator:

The Commando

Newbie level 5
Joined
Sep 30, 2011
Messages
10
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Location
Alexandria, Egypt
Activity points
1,347
There is a section in Synopsys DC compiler manual about the max_fanout variable, I am not sure how to set it though ... I've tried "set max_fanout <value>" before and it didn't work well with me.
 

ThisIsNotSam

Advanced Member level 5
Joined
Apr 6, 2016
Messages
2,179
Helped
382
Reputation
764
Reaction score
396
Trophy points
83
Activity points
11,135
There is a section in Synopsys DC compiler manual about the max_fanout variable, I am not sure how to set it though ... I've tried "set max_fanout <value>" before and it didn't work well with me.

this is not the same thing. you are telling the synthesis how to deal with one cell that connects to many cells. max_fanout determines the number of "many cells". what the OP is referring to are nets that connect to lots of points in your design. clock and reset are the typical cases, but other bus-like nets might behave as so.

in my experience, synthesis cannot handle these too well. you can let it add buffers if it thinks they are necessary, and then get physical synthesis to remove all of them later with optimization.
 

slutarius

Full Member level 5
Joined
Oct 30, 2015
Messages
248
Helped
37
Reputation
74
Reaction score
36
Trophy points
28
Activity points
1,540
Hello,

How to deal with high fanout nets in synthesis with DC?

What happen in term of timing on this HFN ?

If I tell the synthesis tool by saying a command called as "set_ideal_net <net>". this way the synthesis tool knows the specified net as a high fanout net and does not buffer them .
What happen in term of timing ?


BR
Nicolas

This can lead to very bad timing results because big delay of cells which drive the HFN.
This cause longer runtime and not good optimization in general.
Most of tools ussually focus on the worst timing path optimization, that why they make less on the others portions.

For synthesis, you can tell the tool to ignore this HFN by set_ideal_net command to make sure the rest regions are optimized also.
Later, in layout (Back-End), HFN can be solved by adding buffers and additional optimization.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top