-
Notifications
You must be signed in to change notification settings - Fork 411
Interactive Path Analysis Feature Integration #2526
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…re), except draw_basic.cpp/h changes, will be updated separately due to conflict with layered draw ability
…int for calling such function in draw.cpp
…he end of the report (will be used in parser on client side)
… namespace with static function
…ks and GateIO::moveTasksToSendQueue
thank you, i am going to fix them, on Friday(tomorrow) or on this weekend as latest option |
… of just std::size_t, where first bool in pair signalize about search status
…ing_size_to_truncate
… not lose precision
…in commconstants.h
…r comm::TelegramHeader construct_from_data
@vaughnbetz @soheilshahrouz @AlexandreSinger |
Thank you @w0lek ! And thanks to @soheilshahrouz and @AlexandreSinger for the detailed reviews. |
Summary
Added the ability to operate the VPR Viewer in server mode and accept and reply to requests from third-party applications (clients) via socket.
Change log from iteration 1 PR: #2483
which was canceled. This PR is accumulative, it contains all changes from PR 2483#
Description
Implemented the ability to run the VPr Viewer in server mode by specifying a few new command-line arguments: --server and --port_num N. Once the server mode is activated, the VPp Viewer waits for a single client connection to be established.
Currently there two requests are supported:
get n critical path report
example:
{"CMD":"0","JOB_ID":"1","OPTIONS":"int:path_num:100;string:path_type:setup;string:details_level:netlist;bool:is_flat_routing:0"}
hight light critical path elements
example:
{"CMD":"1","JOB_ID":"3","OPTIONS":"string:path_elements:0#1,2;string:high_light_mode:crit path flylines delays;bool:draw_path_contour:1"}
Motivation and Context
The VPR Viewer server mode enables an extended integration with third-party applications, enhancing the debugging process of FPGA designs. This mode allows parsing reports on the third-party side and brings interactivity to it. Users are able to select paths and path elements freely, and see the result of their selection in the VPR Viewer.
How Has This Been Tested?
The changes are utilized in the Aurora package, where Aurora acts as a client app(in a sense of Interactive Path Analysis Tool), wrapping the execution of the VPR Viewer. Furthermore, these changes have been integrated into FOEDAG already, making them potentially useful for any software component based on FOEDAG.
Aurora v2.6 packages already contains VPR with such functionality.

The package also contains docs/Aurora_Quick_Start_Guide.pdf where in chapter 3.7 there is full feature description with example how to use it.
As long as the command-line argument --server is not specified, the workflow remains unchanged. However, when the --server command-line argument is specified, additional control via socket is enabled, overriding events coming from the UI.
Types of changes
Checklist: