Welcome viewers

In this blog you will find the following,
Several source codes in the following environments=> C, Java, SQL, Pl/SQL (Coming soon...)
Deadly essential commands often become handy in the following environment => MS DOS, UNIX.
Working with simulator (CAD TOOLS) => Tanner Tool Version 3.0 (Coming soon...)
Mini projects in different domain.
Discussion Forum (includes discussion of different debatable questions in IC Fabrication Fields.) (Coming soon...)
Essential Tips. (Coming soon...)
And lots more so keep following the blog. :)

Friday, September 9, 2011

CAD TECHNIQUE

CHAPTER-1
Introduction
VLSI Design Flow
VLSI Design Flow is the sequence of steps starting with the design idea down to the actual implementation.
Irrespective of whether the design flow is analog or digital, it has 2 major portions viz
a)      Front End Design and
b)      Back End Design
The Front End Design Flow includes the following steps:-

System Specification – A particular circuit is characterized by different performance metrics called specification, for example gain, bandwidth, noise, slew rate etc. 

Behavioral or Functional Design- In this step, main functional units of the system are identified. This also identifies the interconnect requirements between the units. The area, power, and other parameters of each unit are estimated. The behavioral aspects of the system are considered without implementation specific information. For example, it may specify that a multiplication is required, but exactly in which mode such multiplication may be executed is not specified. We may use a variety of multiplication hardware depending on the speed and word size requirements. The key idea is to specify behavior, in terms of input, output and timing of each unit, without specifying its internal structure. The outcome of functional design is usually a timing diagram or other relationships between units. This information leads to improvement of the overall design process and reduction of the complexity of subsequent phases. Functional or behavioral design provides quick emulation of the system and allows fast debugging of the full system. Behavioral design is largely a manual step with little or no automation help available.
Logic Design-In this step the control flow, word widths, register allocation, arithmetic operations, and logic operations of the design that represents the functional design are derived and tested. This description is called Register Transfer Level (RTL) description. RTL is expressed in a Hardware Description Language (HDL), such as VHDL or Verilog. This description can be used in simulation and verification. This description consists of Boolean expressions and timing information. The Boolean expressions are minimized to achieve the smallest logic design which conforms to the functional design. This logic design of the system is simulated and tested to verify its correctness. In some special cases, logic design can be automated using high level synthesis tools. These tools produce a RTL description from a behavioral description of the design.

Circuit Design-The purpose of circuit design is to develop a circuit representation based on the logic design. The Boolean expressions are converted into a circuit representation by taking into consideration the speed and power requirements of the original design. Circuit Simulation is used to verify the correctness and timing of each component. The circuit design is usually expressed in a detailed circuit diagram. This diagram shows the circuit elements (cells, macros, gates, transistors) and interconnection between these elements. This representation is also called a netlist. Tools used to manually enter such description are called schematic capture tools. In many cases, a netlist can be created automatically from logic (RTL) description by using logic synthesis tools.
Physical Design-In this step the circuit representation (or netlist) is converted into a geometric representation. As stated earlier, this geometric representation of a circuit is called a layout. Layout is created by converting each logic component (cells, macros, gates, transistors) into a geometric representation (specific shapes in multiple layers), which perform the intended logic function of the corresponding component. Connections between different components are also expressed as geometric patterns typically lines in multiple layers. The exact details of the layout also depend on design rules, which are guidelines based on the limitations of the fabrication process and the electrical properties of the fabrication materials. Physical design is a very complex process and therefore it is usually broken down into various sub-steps. Various verification and validation checks are performed on the layout during physical design. In many cases, physical design can be completely or partially automated and layout can be generated directly from netlist by Layout Synthesis tools. Most of the layout of a high performance design (such as a microprocessor) may be done using manual design, while many low to medium performance design or designs which need faster time-to-market may be done automatically. Layout synthesis tools, while fast, do have an area and performance penalty, which limit their use to some designs. Manual layout, while slow and manually intensive, does have better area and performance as compared to synthesized layout. However this advantage may dissipate as larger and larger designs may undermine human capability to comprehend and obtain globally optimized solutions.
Fabrication- After layout and verification, the design is ready for fabrication. Since layout data is typically sent to fabrication on a tape, the event of release of data is called Tape Out. Layout data is converted (or fractured) into photo-lithographic masks, one for each layer. Masks identify spaces on the wafer, where certain materials need to be deposited, diffused or even removed. Silicon crystals are grown and sliced to produce wafers. Extremely small dimensions of VLSI devices require that the wafers be polished to near perfection. The fabrication process consists of several steps involving deposition, and diffusion of various materials on the wafer. During each step one mask is used. Several dozen masks may be used to complete the fabrication process. A large wafer is 20 cm (8 inch) in diameter and can be used to produce hundreds of chips, depending of the size of the chip. Before the chip is mass produced, a prototype is made and tested. Industry is rapidly moving towards a 30 cm (12 inch) wafer allowing even more chips per wafer leading to lower cost per chip.
Packaging, Testing and Debugging-Finally, the wafer is fabricated and diced into individual chips in a fabrication facility. Each chip is then packaged and tested to ensure that it meets all the design specifications and that it functions properly. Chips used in Printed Circuit Board (PCBs) are packaged in Dual In-line Package (DIP), Pin Grid Array (PGA), Ball Grid Array (BGA), and Quad Flat Package (QFP). Chips used in Multi-Chip Modules (MCM) are not packaged, since MCMs use bare or naked chips.

UNIX COMMANDS

  • LEVEL - I
  1. List all the files and subdirectories of the directory /bin = cd bin ls bin
  2. List all the files including hidden files in your current directory = ls -a
  3. List all the files starting with letter 'r' in your current directory = ls r*
  4. List all the files having three characters in their names from your current directory. = ls ???
  5. List all the files with extension .doc in your current directory = ls *.doc
  6. List all the files having the first letter of their name within the range 'l' to , 's'  from your current directory =  ls [l-s]*
  7. Create a file text1 and read its input from keyboard = cat > text1
  8. Copy contents of file text1 to another file text2 = cp text1 text2
  9. Append the contents of file text2 to file text1 = cat >> text1 text2
  10. Count the number of files in the current directory = ls|wc -w
  11. Display the output of command ls -l to a file and on the output screen = ls -l|cat > text3 or ls -l|cat>>text2
  12. From file text1 print all lines starting from 10th line = tail +10 text1
  13. Find the number of users currently logged on to the system = who|wc -l
  14. Delete all the files with their names starting with "tmp" = rm tmp*
  • LEVEL - II
  1. Create a file FILE2 with some text in it. Increase the no. of hard links to the file FILE2 to 3 and check the inode number and link count for those names = ls -l FILE2 Fl1 Fl2|cut -d " " -f3,10
  2. Using one single command, display the output of "who" and "pwd" commands = who;pwd
  3. Display today's date = echo "Today is $(date+%a) $(date+%d) $(date+%h) $ (date+%y) "
  4. Display the text message on monitor screen "We are done!!!" = echo "We are done!!!"
  5. Display the message on monitor screen "The long listing of my home dir ----- is -----" = 'the long listing of my home dir '; pwd; echo ' is ';ls -l
  • LEVEL - III
  1. List only the directories in your current directory = find -type d|nl
  2. Display the name and count of the directories in the current directory = find -type d -print; find -type d|wc -l
  3. Find out whether the users with a pattern "itp9" in their names have logged in = who|cut -d " " -f1|fgrep itp9
  4. Find out whether a particular user "itp9" has logged in
    •  n=`who|cut -d " " -f1|fgrep ncs|wc-l`           if test $n -ne 0
                then
                      echo -e "no"
                else
                      echo -e "yes"
               fi 
  5. Assign a value "Black" to var1 and then display the following message on the terminal using this variable "Sirius Black is a true marauder."
    • Set var1 Black
    • echo "Sirius $var1 is a true marauder."
  6. Create the file employee.txt having ":" separated fields.  The fields of record are : enumber, ename, eposition, esal, edoj, edept. Now answer the following.
    1. List all the employees along with a row number = cat employee.txt|cut -d ":" -f2|nl
    2. Sort the files as per names = cat employee.txt|sort -t ":" +1 -2
    3. List top three salaried employees = cat employee.txt|sort -r -t ":" +3 -4|head -3
    4. Rmove duplicate record from the file = cat employee.txt|unique
    5. List dept. no along with no. of emplooyees working in each dept = cat employee.txt|cut -d ":" -f6, 1|unique
    6. Sort the file in descending order of salary = cat employee.txt|sort -r -t ":" +3 -4

  • LEVEL - IV
  1. Accept a file name and a number (x). Display x lines from the top of the file. Check if the file exists and is readable. The value of x should not exceed the total no. of lines in the files. Display suitable messages in case an error is encountered.
             echo 'Enter the file name'
             read file
             if test -e file
             then
                    echo 'File exists.'
                    if test -r file
                            echo 'File is readable'
                            echo 'Enter the line no.'
                            read n
                            x=`wc.. -l $file|cut -d " " -f1`
                            if test $n -lc $x
                            then
                                  head -$n $file
                           else
                                 echo 'The value exceeds total no of lines.'
                           fi
                    else
                          echo 'File is not readable'
                    fi
               else
                    echo 'File doesn't exist'
               fi

DOS

N.B Red colour indicates that the command is dangerous to use or generally not used.

DOS is a single tasking operating system
  • COMPONENTS OF DOS:
There are four components of MS DOS, viz.
  1. The bootstrap program: When the computer is switched on the ROM (read only memory), loads the bootstrap routine into the memory and execute it. The bootstrap program takes over from this point and its function is to load the other files in MS DOS.
  2. The basic input output system: This program is loaded into the memory by the bootstrap loader. This is the interface between the hardware and software of the system. The file system is IO.SYS or IBOBIM.COM.
  3. The file and disk manager: This contains the file management capability. The file name is MSDOS.SYS or IBMDOS.COM. 
  4. The command processor: This interprets the command given by the user. File name --> Command.com.
  • DOS COMMANDS :
DOS commands can be catagorized in two parts,
  1. Internal Commands : There are some commands that can be executed at system prompt without the help of the external storage source. In other words, these commands are clipped togather into a file command.com. The file is loaded into the memory along with DOS and remains in the memory till the machine is switched off. Thus the commands which form the part of Command.com are called internal command.
  2. External Commands: These commands are also executed at system prompt but requires the aid of an external source of files or commands. The commands which don't form the part of Command.com are called external commands. External commands can be executed only if they are present in the disk or floppy, otherwise the user will get an error message. These files have to have an extension of .COM or .EXE (executable file), .BAT.
  • SOME IMPORTANT INTERNAL COMMANDS :
  1. A:  Change default drive to A-drive.
  2. CD: Change directory.
  3. CD.. : Goto parent directory from subdirectory.
  4. CD\ : Go to root directory from any subdirectory.
  5. CLS : Clear Screen.
  6. COPY : Copy any file or directory from one location to another. (e.g. COPY source destination)
  7. DATE : Display and update system date.
  8. DEL : Delete file (To get confirmation i.e. Y/N option for delete, use DEL/P filename)
  9. DIR : Display directory listing of current drive of an secondary storage media (e.g. floppy or hard disk. etc).
  10. DIR/P : Directory listing pagewise.
  11. DIR/W : Directory listing widthwise.
  12. DIR/O : Directory listing in alphabetical order.
  13. DIR/B : Displays filename without any other related information (Like, size, time, date of storage etc.)
  14. DIR/S : Lists contents of subdirectories under current directory.
  15. DIR/A followed by attributes : displays files only which satisfy the mentioned attribute. The attributes are, S= System files, R= Read onlyfiles, D= Directories, H= Hiddenfiles.
  16. ATTRIB followed by + or - followed by attribute type (S, R, H) followed by filename : Set the particular attribute to the file.
  17. PATH : Displays the path of executable files.
  18. PROMPT : To change system prompt (Default prompt $P , $G).
  19. RD : Remove directory.
  20. REN : Rename any file or directory. (e.g. old filename REN new filename).
  21. TIME : Displaying or updating system time.
  22. TYPE : Display the content of any file.
  23. VER : Display version of operating system.
  24. COMMAND NAME / : Helps to display the switches of the present command.
  • SOME IMPORTANT EXTERNAL COMMANDS :
  1. CHKDSK : Check the integrety of the disk.
  2. DEFRAG : DOS is often forced to fragment files to fit them in the available space on the disk. Fragmentation doesnot affect a file but the speed of access of file decreases.
  3. DELTREE : Deletes a whole directory with all of its subdirectories and all files present in a particular subdirectory at a time.
  4. DISKCOPY : Makes a complete copy of another diskette, sector by sector.
  5. DOSKEY : This command helps in recording DOS keyboard commands, so we can recall it when necessary and then run it again. This is a TSR (Terminate and stay resident e.g. virus program) program. (It is a reusability feature).
  6. EDIT : Create and alter text files.
  7. FORMAT : Erases the existing files in a disk and devides it into section for fresh storage of files.
  8. MOVE : Moves one or more files to the location specified. (e.g. MOVE source destination)
  9. SYS : Transfer system files from one disk to another.
  10. XCOPY : Copy one or more files or one subdirectory to another. Executes faster than COPY command.
  • SOME MORE COMMANDS :
  1. MD Directory name : create or make directory.
  2. COPY CON : Copy from console (input device e.g. keyboard).
  • BATCH FILES : Special type of file, used for performing a set of tasks again and again. Extension .BAT
  • SYSTEM FILES : Basic inbuilt files, required to run an operating system.
  • SOME IMPORTANT KEYS :
  1. F7 : Displays list of commands recorded by the DOS programme.
  2. F9 : To get the line number.
OPERATING SYSTEM :


An operating system is an integral set of specialised programing that is used to manage the resources and the overall operations of our computer. It directs the flow of instructions, data and results from one part of the computer to another. It acts as a bridge in between the user and the computer hardware devices. It translates the high level language (user level language) to low level language (machine level language).


e.g. Linux, Windows, Dos, Unix etc