3

Regarding Yosys QWP command to measure wire lengths.
I tried the QWP command however I do need more info, I did not find documentation on it.
I hope you can help me:

 QWP gives the following statistics:      
 Number of edges: 94380    
 Total edge length:20053.402364    
 Total weighted edge length:993.197173    
 Histogram over edge length:  `enter code here` 
:  
:  
::::. .  
::::::::::::....  
::::::::::::::::::::.......,,,,,,,,,,,,,,,,,,,,,,,  
0.000000                                  1.094405  

Histogram over weighted edge lengths:  
:  
:  
:  
:.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,_,,_,____,_____,,,,  
0.000000                                   0.522485  

is Total edge length:20053.402364 means that the sum of vertical edge lengths is 20053 and horizontal edges 402364 or is it just some sort of precision length?

What are weighted edge length?
How to understand 993.197173 total weighted edge length?
How do you read the Histograms?

Initially QWP crashed and we had to reduce memory sizes of the circuit to get QWP work, is it possible to adapt it to work for larger circuits?

In your prevous answer you said that:
(3) because "qwp" always places all cells in a rectangle of area 1, you'd have to scale the "total edge length" accordingly when comparing designs with a different number of cells.

What do you mean by a need to scale and how should it be done?

thank you
Yosi

1 Answers1

0

20053.402364 means that the sum of vertical edge lengths is 20053 and horizontal edges 402364 or is it just some sort of precision length?

The '.' is just a decimal point. That is sum of the euclidean distance.

What are weighted edge length?

The wire length for each net is weighted by the reciprocal of the number of sinks for that net. E.g. a reset signal that goes to a lot of different cells has a very low weight. This "simulates" the reduction of wire length achieved in routing because of the use of steiner trees instead of running individual wires from the source to each and every sink.

Initially QWP crashed and we had to reduce memory sizes of the circuit to get QWP work, is it possible to adapt it to work for larger circuits?

I guess so. The connectivity matrix must be stored in sparse form and the dense, exact linear solver must be replaced with a sparse iterative solver.

because "qwp" always places all cells in a rectangle of area 1, you'd have to scale the "total edge length" accordingly when comparing designs with a different number of cells.

You have to scale the wire length by 1/sqrt(N) to correct for that, if you have N cells and they all approximately have the same size. (Otherwise 1/sqrt(A) for the total cell area A. Note that the stat command can use cell descriptions from a liberty file to calculate the area of a design.)

How do you read the Histograms?

:  
:  
::::. .  
::::::::::::....  
::::::::::::::::::::.......,,,,,,,,,,,,,,,,,,,,,,,  
0.000000                                  1.094405

Wire lengths in this example range from 0 to 1.09. The x-axis is linear. So almost all wires in your example seem to have a length < 0.3. A , char in the bottom line represents a value smaller than the value represented by a single ., but larger than 0. (The character _ is used to denote a histogram bucket that is completely empty.)

CliffordVienna
  • 7,995
  • 1
  • 37
  • 57