/VSD-5-DAYS-TCL-SCRIPTING-WORKSHOP

TCL Workshop: From Introduction to Advanced Scripting Techniques in Design and Synthesis

Primary LanguageVerilog

TCL Workshop: From Introduction to Advanced Scripting Techniques in Design and Synthesis

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

image

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.

Day-wise Workshop Progress

Day 1 5th July 2023

Tasks of the Day :

• 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)

Bash Script Input to Designed TCL Automation :

#!/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

Results :

Case 1) Normal Command Line Argument Passing

image

Case 2) No Command Line Argument

image

Case 3) Multiple Command Line Arguments

image

Case 4) Command Line Argument Doesn't Exist

image

Day 2 6th July 2023

Tasks of the Day :

• 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

Results

  1. Passing Inputs Path from .csv file to the Scripts :

image

  1. Checking the directories for given input path exists at respective locations or not :

image

  1. Display an Error if the directory is not found at given location :

image

Day 3 7th July 2023

Tasks of the Day :

• 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

Results

  1. Terminal Log

image

  1. Generated SDC File

image

Day 4 8th July 2023

Tasks of the Day :

• 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

Results

  1. Hierarchy Check PASS

image

  1. An Example where Hierarchy Check gets FAIL

image

  1. Generated Synthesis Script for Yosys Synthesis Tool

image

  1. Snapshot of Netlist generated by Yosys Tool

image

Day 5 9th July 2023

Tasks of the Day :

• 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

Results

  1. .conf File Input Script for OpenTimer tool

image

  1. Snapshot of generated .timing file

image

Quality of Results (QoR)

image

Conclusion

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).

Acknowledgments

  1. Mr. Kunal Ghosh, Co-Founder, VSD Corp. Pvt. Ltd.

  2. T R Visruat

  3. Geetima Kachari