Here is a definition of the Custom WLM "It based on the current design timing after the placement and routing, but before the current iteration of the pre-placement synthesis".
So, what's the "pre-placement synthesis" and why it's needed?
In what cases the Custom WLM should be generated and used?
If you are using Synopsys DesignCompiler (for example) without topographical mode, it is pre-placement synthesis. In topographical mode, it will synthesize netlist and optimize it for some kind of placement. The pre-placement synthesis is faster and does not require floorplan, so you may run it on the early stages of flow.
The custom WLM may be used for any design, to get better correlation between pre-placement syntesis and real placement. The main word here is BETTER. The WLM is statistical based approach. If your design is outside of median of this statistical - you will get worse correlation.
It is building real WLM like they appear in .lib file.
The flow is like this:
1. Did real P&R
2. Did real RC extraction
3. Collect statistic and calculate some average numbers, which will be inserted into WLM table (for example, they take all nets with fanout 2 and calculate average C, then put this average C value into the WLM table)
As for the Logic Synthesis, might it be done with RC extraction from BackEnd tools or Logic Synthesizer are able to work with just WLM?
So, why Custom WLM is ever required? Why not to synthesize the design with just a Zero-WLM, then send the netlist to BackEnd tools, receive RC extraction and continue the logic synthesis with already RC extraction.
What а tool does it? Should some scripts be written for that?
Is Custom WLM a stands alone file or a part of another file? Besides the Custom WLM, should the RC extractions themselves be also passed to the Logic Synthesis tool?