2020 began tumultuously. Most of us went through a period of isolation, and InTime 3.0 was born in this whole new landscape. With the world opening up again, albeit gradually, we are delighted to share a rundown of the latest features in InTime 3.0.
Auto Pilot - Automating ML and Recipes Selection (Auto-ML)
One recurring feedback from customers, is about automating the recipes. For example, you want to run "Hot Start", followed by 3 rounds of "Default" and finally the "Placement Exploration" recipe, but only if the WNS is better than -300ps. To do so before "Auto Pilot", you would have had to write a custom Tcl script or manually work the GUI at the end of each recipe.
The new Auto Pilot gives you hands-free optimization and learning.
Auto Pilot is a new recipe whose input is a "template" file, a JSON-formatted file which describes the intended sequence of recipes to run. A template's contents are specified in a simple JSON format, like in the example below.
The benefits of this approach are:
- The user still has fine-grained control over the optimization sequence if needed.
- Hands-free learning and timing optimization.
- InTime ships with ready-made templates to get you started.
- No knowledge of Tcl APIs required.
InTime was originally designed and structured around a user workspace, meaning design data are all generated and saved within the user's folders, for example under your home folder. However, in a team setting, this makes sharing and collaboration more difficult as users have to export and import data from different users' folders to share information.
To overcome this restriction, we created a new database mode which centers around a project instead.
So if the project-based database is enabled, the InTime design database will be saved within each individual project's folder instead of being associated with a single user or a single repository.
Besides being more intuitive in grouping InTime data for each design, this enables data reuse over several revisions of a design. Another advantage of the project-based database mode is that each resulting database file can be easily “checked into” version control along with the design. This highly facilitates synchronization among different team members working on the same project.
Highlight just two improvements here:
Better Tcl Support
In the last version, InTime started supporting Tcl-based projects. Besides dealing with the different semantics of the VHDL/Verilog languages, we have to ensure compatibility with different user-defined Tcl functions. This inevitably leads to errors because any minor bug, such as a missing bracket, will cause InTime to see the build as a failure.
Such failures are especially frustrating if they happen after routing, for example, when our customers' script is analyzing the results. Because at that point, the hard work has been done yet due to unsupported syntax, the build would be marked as a failure. To accommodate such possibilities, we changed InTime to ignore such errors and instead run its own result analysis commands.
Cleaning and Re-organizing Log files
Other improvements include a clean-up of database files and re-organizing other files generated by InTime. In the past, InTime will place all the parent generated files in the project folder. Now all InTime-generated files will be in the "<project folder>/plunify.job/root" folder. This reduces the burden on diskspace and also results in a neater file structure in the project folder.
What is coming next?
Here is a quick look at what is coming later in the year. More to come in our next post! In the meantime, stay safe, stay healthy, and stay in touch!
To evaluate InTime, please proceed to https://cloud.plunify.com/ to get a copy.