Add a new route to a post-route dcp

35 views
Skip to first unread message

wenchen

unread,
Oct 28, 2020, 10:57:39 PM10/28/20
to RapidWright
Hi Chris!

I'm now trying to reproduce the work of "Dynamic Voltage & Frequency Scaling with Online Slack Measurement" and I find that RapidWright is a perfect tool for it.
I'm trying to develop an automatic post-route tool to insert the proposed online slack monitor to the critical path.
However, RapidWright is completely foreign to me, so I'm seeking for help. 
The block diagram below is the original design and suppose the critical path lies in the fpmul32 module. 

1.PNG


My goal is to get a equivalant dcp in RapidWright as shown below

2.PNG


where D is the output of the combinational logic of the critical path as shown below

3.PNG



My proposed work flow is 

1. Synthesis and Impelement the original design, and get the post-route dcp file

2. Find the critical path and locate D (the input port of T) in RapidWright

3. Deconnect OSM_0/D and xlconstant_2/dout

4. Connect OSM_0/D and fpmul32_0/D

5. Route the design and generate dcp file

6. Send the dcp file back to Vivado and generate bitstream



My questions are:
1. Is my proposed work flow practical?
2. If the work flow is practical, is it going to be a lot of work?

Thank you very much!
WenChen

RapidWright

unread,
Oct 29, 2020, 2:35:37 AM10/29/20
to RapidWright
Hi WenChen,

Thanks for your question.  Yes, this is a great scenario in which RapidWright can be useful and I think the proposed plan you have described should be quite practical.  It should not be a lot of work.  There is some risk that routing the connection might be difficult, but you could mitigate that a bit by inserting a flip flop between your source constants and the input on OSM_0/D.  That way, there would be a forced route connection from another tile, whereas with GND or VCC, you may end up with a default local routing connection that may be susceptible to congestion.

Feel free to ask more questions as you go along, happy to help.

Chris

Message has been deleted

wenchen

unread,
Oct 29, 2020, 3:44:50 AM10/29/20
to RapidWright
Hi Chris,

Thank you for your quick reply.

As you mentioned above, routing the connection might be difficult. Actually, I have another solution for this project. 
In the above block diagram, the OSM/D is reserved in the original design. The OSM is only composed of a shadow register S, a XNor gate X and a common register Y.
Is it possible to add the OSM and perform P&R to the post-routed dcp rather than add the OSM before Synthesis and P&R?
4.PNG
If it is possible, will the second method make the routing more difficult? Or which solution do you prefer?

WenChen

在 2020年10月29日星期四 UTC+8下午2:35:37,RapidWright写道:

RapidWright

unread,
Oct 29, 2020, 1:19:55 PM10/29/20
to RapidWright
Hi WenChen,

Either solution can work.  Adding the OSM after will require a secondary (yet very small/fast) place and route and will add a little more work to the RapidWright code to accomplish the task, but as long as you have an open area to fit the footprint of an out-of-context OSM, it could avoid a routing problem.  

I personally would start with the first approach you mentioned and see how it goes.  If that runs into consistent routing issues.  Adding the OSM after the fact would be additive in the effort, but not by a lot.

Chris

wenchen

unread,
Oct 29, 2020, 9:01:43 PM10/29/20
to RapidWright
Thank you Chris

在 2020年10月30日星期五 UTC+8上午1:19:55,RapidWright写道:
Reply all
Reply to author
Forward
0 new messages