TCL scripting plays a crucial role in the field of VLSI design and verification, making it an indispensable tool for semiconductor engineers. VLSI projects involve complex tasks such as chip design, simulation, verification, and manufacturing, and TCL scripting provides an efficient and flexible way to automate these processes. With TCL, engineers can write scripts to automate design tasks, perform simulations, analyze data, and generate reports, significantly reducing the time and effort required for repetitive tasks. TCL also offers excellent integration capabilities, allowing seamless interaction with other EDA tools and languages. Moreover, TCL scripting provides a high level of control and customization, enabling engineers to create complex workflows and implement design methodologies specific to their requirements. Overall, TCL scripting empowers VLSI engineers to enhance productivity, streamline workflows, and accelerate the development and verification of advanced integrated circuits.
- Workshop Details & Agenda
- Day-wise Workshop Progress
- Quality of Results (QoR)
- Conclusion
- Acknowledgements
VLSI System Design Corp. Pvt. Ltd. had proposed this 5 days workshop entitled as "TCL Workshop: From Introduction to Advanced Scripting Techniques in Design and Synthesis " from 5th July 2023 to 9the July 2023 with the guidance of Mr. Kunal Ghosh, Co-Founder, VSD Corp. Pvt. Ltd. and Ms. Geetima Kachari who had been working as the Teaching Assistant throughout the entire workshop. The agenda for the workshop is as follows :
Day 1 (5th July 2023) : Serving as the foundation, introduction to the core concepts and tasks of TCL.
Days 2 & 3 (6th & 7th July 2023): Immersing in the art of variable creation and processing constraints.
Day 4 (8th July 2023) : Introduction to Yosys synthesis tool, understanding memory module RTL descriptions, and mastering gate level netlist descriptions.
Day 5 (9th July 2023) : Quality of Results (QOR) generation, optimization to precise WNS and FEP analysis.
• Create & Execute the Bash Script
• Invoke TCL Command by accepting command line arguments
• Deal with issues to pass command line argument to TCL Script (Eg. No Argument, Multiple Arguments, Argument doesn't exist)
#!/bin/tcsh -f
echo "\n\n\n\n\t\t\t\t\t\tSYNTHIA\n\n"
echo "\t\tAn automation created by Akash Ambekar for the Synthesis using TCL Scripting"
echo "\t\t\t\tDuring the 5-Days Workshop entiled as :"
echo "\tTCL Workshop: From Introduction to Advanced Scripting Techniques in Design and Synthesis"
echo "\t\t\torganized By: VLSI System Design Corp. Pvt. Ltd."
echo
echo
echo
if ($#argv != 1) then
echo "SYNTHIA Info: Please provide a proper the csv file" exit 1
endif
if (!-f $argv[1]) then
echo "SYNTHIA Error: Cannot find csv file $argv[1] in Directory. Exiting the Flow..."
exit 1
else
tclsh synthia.tcl $argv[1]
endif
Case 1) Normal Command Line Argument Passing
Case 2) No Command Line Argument
Case 3) Multiple Command Line Arguments
Case 4) Command Line Argument Doesn't Exist
• Auto Variable Creation
• Checking if provided directories exist at respective locations, display an error if not found.....
• Convert the inputs into a format that can be passed to Yosys Synthesis Tool
- Passing Inputs Path from .csv file to the Scripts :
- Checking the directories for given input path exists at respective locations or not :
- Display an Error if the directory is not found at given location :
• Read the Clock, Input & Output Constraints from the file and create Synopsys Design Constraints (SDC) Format .sdc file
• Take care of the bus port to create SDC file
• Verify the generated .sdc file
- Terminal Log
- Generated SDC File
• Create a synthesis script that can be passed as an argument to Yosys Synthesis Tool
• Run the hierarchy check to verify if all RTL modules are correctly present or not, raise an error if not.
• Observe the generated netlist and remove the redundant part from it
- Hierarchy Check PASS
- An Example where Hierarchy Check gets FAIL
- Generated Synthesis Script for Yosys Synthesis Tool
- Snapshot of Netlist generated by Yosys Tool
• Create a constraint .timing file from the .sdc file which can be applied to OpenTimer tool
• Take care of all bits of the bus while creating the .timing file
• Create a .conf file input script for the OpenTimer tool
• Quality of Results (QoR) Generation
- .conf File Input Script for OpenTimer tool
- Snapshot of generated .timing file
An Automation called "SYNTHIA" has been successfully created using TCL scripting which will take the input from the user as RTL Verilog Code files and library paths and will synthesize the equivalent hardware for it, will run the static timing analysis (STA) and will display the Quality of Results (QoR).
-
Mr. Kunal Ghosh, Co-Founder, VSD Corp. Pvt. Ltd.
-
T R Visruat
-
Geetima Kachari