This repository consists of four homeworks associated with the course "CAD Algorithms". This course is a part of the undergraduate studies of University of Thessally - Electrical and Computer Engineering (ECE) Department located in Volos, Greece.
Link to the Department's official site: https://www.e-ce.uth.gr/?lang=en
My name is Panagiotis Anastasiadis and these projects were assigned to me during the time of my undergraduate studies and the enrollment of the course "CAD Algorithms".
If there are any sights of bad practices or ambiguities regarding the file structure, code quality, the general development of the projects or the entire repo management, please mind that this work attempt to strictly focus on the course nature and fit the requirements for the assignments set by it. Also, consider the lack of expertise or experience that comes along during the time of undergraduate studies.
In any case, these projects do not represent professional work, rather an avocation with CAD Algorithms, Logical-Synthesis and the TCL C API.
The four homeworks function properly as standalone programs, but as a whole they compose the development of a bigger project, which started from assignment one and the creation of a TCL Shell, continued with homeworks 2 and 3, where new features were added to the shell and reached its final form in homework 4 and the last requested features that were integrated to project. All these features are commands that implement CAD algorithms and are mostly related to Logical-Synthesis topic.
Implementation of a TCL shell in C language with the following features:
1. Tab completion
2. History
3. Basic os commands like ls, less
Addition of the following cube notation operations as commands to the existing TCL shell from homework 1:
1. Cube intersect
2. Supercube
3. Distance
4. Cube cover
5. Sharp
6. Sharp between a cube and a function.
7. OFF calculation.
Implementation of Static Timing Analysis by integrating the Longest Path Algorithm for a given graph as a command-feature into the shell. To achieve graphical illustration of the graph, a 3rd-party tool was used, named TCL graphiz.
Addition of the R_KERNELS (Recursive Kernels) and the Algebric Division algorithms as commands-feautures to the TCL Shell.