Home
Afdeling der Elektrotechniek Technische Hooeschool Eindhoven
Contents
1. to their predecessor The other groups shift along with the first groups but afterwards they will still have a certain amount of freedom in their placement There is still a lot of work to be done before the com paction program will function as described The fol towing pieces of the program are realized datas tructure 15 set up for dividing the elements in groups and for setting up the graph For the division of the elements a program is written that will make list with all connections a certain element has with other elements Interactive Layout Editor Compactor PAGE 25 Chapter 7 Conclusions Interactive Layout Editor Compactor PAGE 26 An interactive layout editor has been made It can be improved in the following ways making it possible to define macro s in that way introducing hierarchy into the program By making it possible to indicate line f i when deleting it on every point of its Lengths not only on its anchorpoint By making it possible to define a linepiece on the border of the box to be a terminal instead of just one point The first two problems are already solved by K Delhij 5 The last one remains for the future Although the editor isn t perfect yet it is possible to enter a symbolic circuit into the computer in a sim ple and fast way The second programs the design rule checkers has been implemented and initial tests show good result It detects violatio
2. NXTCONCCONPT1 CONPT1 is the pointer to be updated NXTCON updates the connection pointer The value of will be its old value plus 1 plus the number of connections Subroutine This subrcutine checks all pairs of elements if they are overlapping then if they overlaps CNECT calls su broutine DRCHCK to see if this overlapping is allowed If not an error message is displayed In the case it was allowed one of the elements is a line subrou tine LINCLO will be called to fill in the pointeri s to the elements that close the line Subroutine GROUP Subroutine GROUP places the elements in groups Linepieces in the direction of compaction are not in cluded in the groups Logical function COVERCITMPT1 ITMPT2 ITMPT1 and ITMPTZ are pointers to elements in the ele ment List This function checks if two elements pointed to by ITMPT1 and ITMPT 2 completely cover each other If they do COVER becomes true Subroutine LINCLOCJSFLAG JFLAG equal 1 means ITMPTR points to line element and GRITPT points to non line elements JFLAG equal 2 means ITMPTR points to a non Line element GRITPT points to a Line element while JFLAG equal 3 means that both ITMPTR and GRITPT point to Line elements Subroutine LINCLO fills in the addresses of the ete Interactive Layout Editor Compactor PAGE 38 ments that close a line Each datablock of a line ele ment contains two pointers to its closing eleme
3. PAGE 8 Before going into the details of the design process we Should take a close look at the elements called sticks our symbolic layout consists of As there ares in NMOS three layers for interconnecting elements diffusion polysilicon and metallayer also have three different symbols in the symbolic tay out for these connections each of them symbolizing one of the aforementioned Layers These three symbols are straight Lines with a different dashing fourth line type is used only in the sym bolic Layout having no meaning in the geometric Layout The RUNX Line This line name from C 3 J can t be used for connections but only for boxes ar ound groups of elements and to write comment into the symbolic layout See fiqure 2 in Appendix A for these lines Normally a 1 gets a width that is equal to its mini mal width 2 lambda see below for lambda However it is possible for a user to specify a width wich is areater This is explained in chapter 3 the layout editor Also the size of transistors and contacts can be ajusted in a similar way Other symbols used are the contacts also called via s They connect the three layers of different types so we find three of them The polysilicon metal contact P M contacts in the menuD The diffusion metal contact D M contact D MCT in the menu The diffusion polysilicon contact Buried contact BURCT in the menu The next gro
4. broutine BOX to enter points see GINO manual 27 su broutine CURSOR Subroutine BOX asks for two points on the screen The points are two diagonal points of the surrounding rec tangle The surrounding rectangle is drawn and stored in array LIST Subroutine IEND is a pointer to the lasts filled place array LIST ITEM is the number of menu command see subroutine DELAR LETTER is a figure indicating wich key was used in su broutine CNTACT to enter points see GINO manual C2 subroutine CURSOR CNTACT asks for one point on the screen and then draws the symbcl of a contact a pins at the indicated place Depending on the type of the contact or pin a different symbol is drawn see legenda underneath the menu Appendix A contains few drawings where con tacts and other symbols appear Subroutine LETTER LOAD IEND is a pointer to the last filled place in array LIST Interactive Layout Editor Compactor PAGE 31 ITEM is the number of menu command see subroutine DELAR LETTER 15 a figure indicating wich key was used in su broutine TRAN to enter a point LOAD is a flaq telling the transistor is of the driver type LOAD 0 or ef the toad type LOAD 1 After asking the co ordinates of a point inside the restangle where the transistor has to be placed its sympo is drawn symbol of horizontal transistor if comma
5. is checked for an element not yet placed in a group the element may not be a line in the direction of compac 166 If there is such an elements its surrounding rectangle is conied into the surrounding rectangle of the group The number of elements in the group is set te 1 pointer to the element is added and the list of groupindexes is extended with a pointer to the new group Logical function OVRLAPCITMPT13ITMPTZ LAMBDA ITMPT1 and ITMPT2 are pointers to elements in the ele ment List LAMBDA is a flag Function OVRLAP checks if the elements pointed to by ITMPT1 and 2 overlap each other When the flag LAMBDA is set to 0 OVRLAP becomes true only when the elements actually overlap each other If LAMBDA is set to 1 OVRLAP becomes true when the elements overlap each other or when they have a mutual distance less than NLAMBD Logical function CONNECCITMPT1 ITMPT2 ITMPT1 and ITMPT2 are pointers to elements in the ele Interactive Layout Editor Compactor PAGE 36 ment list This function checks if the elements pointed to by ITMPT1 and ITMPT2s wich overlap each others are allowed to be connected One of the elements always is a Line while the other isn t The information concerning these connections is placed in an array of size 8 1027 The subsoribt variables are calculated from the type numbers of the two ele ments Logical function DISTANCITMPT1 ITMPT2 ITMPT1 and ITMPTZ are pointers to elements i
6. menu When the point was inside the menu the value of ITEM will be a number in the range 1 40 denoting wich command was selected Subroutine LINECIENDsITEMsLETTER IEND is a pointer to the last filled place in array LIST ITEM is the number of menu command see subroutine LETTER is a figure indicating wich key was used in su broutine LINE to indicate the last point of the Line Subroutine LINE asks for co ordinates of points inside the picture window via GINO subroutine CURSOR draws a line between them and stores the line element in array LIST Error messages are given if the points do indicate an orthogonal Line if one of the points lies outside the rectangle except if it were a new menu command The anchor point of a line will be drawn in the middle as a little circle At Last LINE calls subroutine ADDAR to store the element in array LIST Interactive Layout Editor Compactor PAGE 30 Subroutine ERRORCNUMBER NUMBER is the number of the indication If Number is in the range 1 to 8 an error is indicated If it s higher the program asks the user for more input ERROR draws the users attention by Lighting a point in front of one of the error messages or indications Subroutine EOXCIEND ITEM LETTERD IENP is a pointer to the last filled place in array LIST ITEM is the number of a menu command see subroutine CELAR LETTER is a number indicating wich key was used in su
7. of a compound and equal to TRMPTR in DRCHCK Interactive Layout Editor Compactor PAGE 39 Subroutine SAVECITMPT1 ITMPT2 ITMPT1 and ITMPTZ are pointers to elements in the ele ment List Subroutine SAVE saves the addresses of the two elements wich overlap each other LAMBDA 0 so real overlap when this is allowed only when a third element is placed on the crossing This routine is called in the case a polysilicon line and a diffusion line cross a buried contact should be placed on the crossing or in case a polysilicon lines a diffusion Line or a metal Line crosses a RUNX line a terminal should be placed on the crossing Proqram COMPAC This is the main program of the design rule checker compactor It initializes the variables used in the subroutines and fills the memory with informa tion to test the design rule checker Afterwards it writes the contents of the memory array MEM to the screens so the user can see wich errors were detected by the program Interactive Layout Editor Compactor PAGE 40 Chapter 9 Description of error messages Interactive Layout Editor Compactor PAGE 41 Error messages are written on the screen every time the menu is drawn A point will Lit up in front of an error message whenever this error occurs The last two messages inform the user that the program requires further input 1 or 2 in the case the last command was DRAW commands to inform the program whether out put should
8. the anchor point is half the width of a grid units in order to let the program be able to locate the element If the distance is greater this message is displayed and the user should try again or choose a new com mand Error COMMAND NOT OK Some places in the menu are reserved for fu ture extensions of the program When a user selects one of them or selects a figure in the menu not following one of the commands DIFF POLY RUNX TRANVs TRANH LOADV or LOADH this message is displayed The user should select an existing commands or an allowed sequence of commands Error 7 LINE NOT ORTHO Seeing this message on the screen means that the the last two points of a line do not share the same X or co ordinate This Last linepiece is rejected and the user can ei ther supply a new point wich has to be on a horizontal or vertical Line with the second last point or select a new menu com mand Error 8 WRONG USAGE UNDO The command UNDO is allowed only if the last command added or deleted an element Message 9 3 T4014 CAL553 3 1 2 Informs the user that further input is re quired This message appears after the DRAW command 1 directs the output to the T4014 and a 2 to the Calcom plotter Message 10 DRAWING NOT CORRECT After a deletion of an element this message appears At this moment the screen contains more elements than array LIST To get a cor rect drawing the DRAM command has to b
9. the menu initial values 10 and 4 COMMON UNDOCM IUNDO The current command is undoable if IUNDO is 2 or 3 Subroutine INITCNUMBER NUMBER is a digit telling INIT wich initialization rou tines should be called Subroutine INIT initializes GINO commons and devices For instance when the Tektronix terminal will be used INIT calls the GINO subroutines T4014 DEVSPE and WINDOW see GINO manual CZ for the meaning of these routines Program This is the main program In this part the user is asked if he desires to open an existing files or wants to start editinga new file When the editing is done the program asks if the contents of LIST should be saved in disk file and if the user wants to go on using the program start editing a new or existing file again After thesz questions subroutine OOYENS is called wich takes over all user program interaction Interactive Layout Editor Compactor PAGE 35 Subroutines of the design rule checker compactor are Subroutine ADDGRP This subroutine adds the element pointed to by ITMPTR to the group pointed to by GRPPTR The number of ele mants in the group is incremented 1 and pointer to the element is added in the group Finally the sur rounding rectangle cf the group is adapted if the ele ment or a part of the element falls outside the exist ing surrounding rectangle of the group Subroutine NENGRP NEWGRP creates new group The list of items
10. Afdeling der Elektrotechniek Technische Hogeschool Eindhoven Vakarcep Automatisch Systeemontwerpen interactive Layout Editor compactor Ooijen het afstudeerwerk van oktober 1981 tot oktober 1987 van prof dr ing J Jess ir Mayan der Woude Rapport van uitgevoerd in opdracht onder leiding van TECHNISCHE HOGESCHOOL EINDHOVEN STUD BLIOTHERK ELEKT AUIECHN Table of contents Page eee SS RR a ate R 3 t Introduction eene sassa Rangan H SUC EE t Layout editori ai mesi z Data 51 dh Design rule Se 2 19 CORBET CSO 22 z Conclusions recommandat ons ss s s s s s 29 Description of program and subroutines 27 Description of error 40 1 wis w W Q a a ceed Bibliography eem iaia Q 1 2 9 B Summary Chapter Chapter Chapter Chapter Chapter Chapter Chapter Chapter Chapter Appendix Appendix PAGE 3 Summary This report describes a program made by T G M van Qoijens student for masters degree at the Eindhoven University of Technology The purpose of the program i
11. E WINDOW ER2 OUTSIDE MENU ER3 TOO MANY ITEMS ER4 ARRAY EMPTY ERS ITEM NOT FOUND 6 CMMAND NOT ER LINE NOT ORTHO ER8 WRONG USAGE UNDO 4014766563 1 8 INCORRECT DRAWING P M CONTACT w EF BUR CONTACT TERM POINT 25 36 35 ee 15 19 peat t we oo IMPL gt Si D M CONTACT Vad P M CONTACT D BUR CONTACT m TERM POINT L 5 0 PAGE 48 Interactive Layout Editor Compactor PAGE 49 Cid C Mead and L Conway Introduction to VLSI Systems Addison Westy 1980 C23 GINO F User Manual CAD Centre Cambridge 1980 C3 M Hsuehs Cabbage 1979 C4 M van der Woude s IDS An Interactive Design System for Integrated Circuits THE Computing Centre Note 11 1982 251 K Detlhij Isles an Interactive Layout Editor 1982 C6 J D Milliams STICKS a Graphical Compiler for High Level LSI Design AFIPS Conference Proceedings Vol 47 1978 C73 S B Akens J M Geyer D L Roberts IC Mask Layout with Single Layer Proceedings 7 th Design Automation Workshop San Fransisco 1970 C83 R Auerbach FLOSS Macrocell Compaction System 1979 IEEE Design Automation Workshop East Lansing Michigan 1979
12. TAL DIFF POLY RUNX LOADH s LOADV TRANH TERM P MCT D MCTs BURCT and BOX After this type or more of commands the user should supply points in the picture window 2 Command to delete elements Following this com mand DELT2 the user should indicate an element on the screen with the crosshair 3 Digits O to 9 Only used after menucommands of type 1 adding an element with one exception to know After the DRAW command the program needs whether output should go to the Tektronix terminal or to the Calcom plotter This is indicated with UNDO the figures 1 or 2 respectively 4 Other commands UNDO DRAW STOP undoes the last command if this command was of type 1 2 Adding or deleting an element Interactive Layout Editor Compactor PAGE 13 clears the screen and prints the contents of array LIST see chapter 4 datastructure DRAW clears the screen and makes a new drawing STOP terminates the input session Group number 1 Adding an element The elements can be divided in three groups Line ele ments point elements and BOX ta Adding line elements Placing such an element is done by steering the crosshair into the rectangle with the command METAL DIFF RUNX and pressing the space bar After the command the user can either place the crosshair in the column with digits to indi cate that the line should get a specials non default width or d
13. UNITNR NAME is the name of the file to be opened UNITNR is the logical unit number of the file TITLE opens a diskfiles wich will have the following attributes UNIT UNITNR NAME NAME TYPE UNKNOWN FORM FORMATTED ACCESS DIRECT RECORDSIZE 4 ASSOCIATE VARIABLE NFOP Subprogram BLOCK DATA This subprograms consisting of a group of non executable statements defines and initializes var iables and constants In BLOCK DATA one blank common block appears and the named common blocks MENUCM and UNDOCM The following arrays and variables are placed in common blocks Blank common block IREC 8 Array containing eight integers used as a temporary storage for one element 115161500 Main array containing the in formation about all elements that are present at the moment LIST is initialized to zero at the start of the program IWIDTH Width of one grid unit Cin mm of the window XZ Yds YZ Boundaries of the window Present values are 10 298 10 and 270 res pectively LREC NREC Length of the datablock of one element and the maximum number of elements present values 8 200 COMMON DRAWCH IXi IY Scaling constants used when draw ing symbols on the screen XML YML XMR Boundaries of the menu Their present value is 300 130 368 270 18080 ICOLS Number of rows and columns in Interactive Layout Editor Compactor PAGE 34
14. as written to check this With this testprogram it was possible to shift 7400 integers per second that is about 440 elements in 0 5 second half a second is taken as the maximum average delay time Because the average number to be shifted is half of the number of the elements that are present there shouldn t be more than 920 elements in the array With 200 elements we are on the fair side average delay time about 0 1 second All information is kept in main memory as long as the user goes on with his input session When he stops doing s2 the program asks if the contents of the array should be saved and if 50 under wich filename The file that is made by the program gets the following at tributes NAME Name as supplied by the user TYPE UNKNOWN FORM FORMATTED ACCESS DIRECT RECORD SIZE 4 ASSOCIATE VARIABLE NFOP Disk files are in readable format and can be displayed on the screen via the PIP program Throughout the program a few pointers are used The most important ones are IEND and IPTR IEND points always to the last integer of the last ele ment array LIST IEND 16 when two elements reside in LIST IPTR points to the last integer of an element in array LIST Interactive Layout Editor Compactor PAGE 19 Chapter 5 Design rule checking Interactive Layout Editor Compactor PAGE 20 There are two kinds of design rules Design rules wich are implicitly obeyed and design rules the prog
15. be send to the T4014 or to the Calcom plotter or that the drawing on the screen is more a correct mapping of the contents of array LIST for instance after deletion of elements The user can encounter the following errors Error 1 QUTSIDE WINDOW The program expected input from the window while the user supplied a point outside it After this error message the user can either Give a correct point or choose another menu item Error 2 OUTSIDE MENU Like error 1 except that this time the pro gram expected input from the menu The user must now give a menu command Error 3 TOO MANY ITEMS This error message is displayed when array LIST already contained 200 elements at the moment the user tried to store another ele ment This last element will not be placed in LIST The maximum of 200 elements can be increased at the cost of computer memory by changing the length of array LIST to eight times the desired maximum number of elements and then recompiling the program Error 4 ARRAY EMPTY An attempt has been made to draw the circuit while array LIST was empty The user should first fill the array by placing elements be fore giving the DRAW command Error 5 ITEM NOT FOUND Interactive Layout Editor Compactor PAGE 42 After the command DELT delete the program expects the user to point to an anchor point of one of the elements on the screen The maximum distance between the indicated point and
16. de using the DRAW command The program asks whether the drawing should be directed to the Tektronix terminal or te the Calcom plotter with the message T4014 CAL563 7 1 2 The user has to answer with the figure 1 2 in the menu not pressing the key 1 2 4d STOP Command STOP terminates the input session The program now asks the user whether the contents of the array should be saved and if so under wich filename The next question will be whether the user wants to go on editing a new file or wants to stop the program Interactive Layout Editor Compactor PAGE 16 Chapter 4 ODatastructure Interactive Layout Editor Compactor PAGE 17 Datastructure of the program The elements will be placed in a linear arrays called LIST The Length of the array is 1600 integers and for each element LIST contains eight integers so 200 ele ments can be placed When 200 elements shouldn t be enough the maximum number of elements can be increased simply by adjusting the length of array LIST The information concerning one element consists of eigth integers 1 Type of the element This 15 an integer in the range from 1 until 17 its meaning is Vertical Line of type metal Vertical line of type diffusion Vertical line of type polysilicon Vertical line of type runx D M contact P M contact Buried contact Terminal element Vertical drivertransistor 10 Horizontal drivertransistor 11 Vertical lLoa
17. dtransistor 12 Horizontal loadtransistor 13 Horizontal line of type metal 14 Horizontal line of type diffusion 15 Horizontal line of type polysilicon 16 Horizontal Line of type runx 17 Surrounding rectangle box KA 0 4 Ul E GM 2 1 Orientation of the element When placed the orientation of the elements always will be 1 3 4 Co ordinates of the anchorpoint of the ele ment For a point element transistor contacts terminal the anchorpoint is in the middle of the symbols for a line element the anchorpoint is in the middle for linepiece with a length of an uneven times lambda and in the middle plus or minus half lambda for linepiece with a length of even times lambda 5 6 Co ordinates of the left under point of the surrounding rectangle of the geometrical representa tion of the element Interactive Layout Editor Compactor PAGE 18 7 8 Co ordinates of the right upper point of the Surrounding rectangle of the geometrical tion of the element The elements will be placed sorted in order of increasing X co ordinate of the anchorpoint and when more elements share the same X co ordinates in order of increasing co ordinate From the sorting of the elements it follows that part of the contents of array LIST has to be shifted when elements have to be inserted To find out whether this shifting is net slowing down the interactive editing process a testprogram w
18. e given Interactive Layout Editor Compactor PAGE 43 Appendix Figures Interactive Layout Editor Compactor PAGE 44 In this appendix the reader will find a few drawings They are respectively Figure 1 A drawing of the screen with the menu and an empty windows grid spacing is 4 mm Figure 2 A drawing of the screen like figure 1 Grid spac ing is 20 mm and all sticks are drawn see chapter Z for a description Figure 3 Like figure 1 Grid spacing is 8 mm few lines drawns type metal all lines are drawn with only one menucommandi Figure 4 A drawing of the screen with the symbolic layout of T flipflop 1 OUTSIDE WINDOW OUTSIDE MENU ER3 TOO MANY ITEMS ER4 ARRAY EMPTY ERS ITEM NOT FOUND ERG CMMAND NOT 0 WRONG USAGE UNDO T4014 CALS63 7 1 8 INCORRECT DRAWING METAL D M contact P M CONTACT E BUR CONTACT U TERM POINT 65 69 55 56 45 40 35 39 25 29 15 19 TSIDE WINDOW ERS OUTSIDE MENU ER3 TOO MANY ITEMS 8 WRONG USAGE UNDO T4014 CAL563 172 INCORRECT DRAWING an IMPL 55 7 aanse D M CONTACT CONTACT BUR CONTACT TERM POINT lt r a ue paure K A Sr wean mesine ada mme ER1 OUTSID
19. ed denoting the width of its polysilicon and diffusion tines and hence the length and width of its channel After the DRAW commands the user has to give the figure 1 2 depending on where the new drawing should be made on the Tektronix on the Calcom plotter Aa UNDO The UNDO command can be given directly after one of the commands of type 1 2 The situation that existed before that command will be retrieved The effect of UNDO is also that an element will be added or deleted Therefore the command UNDO itself can be undone The effect of twice a command UNDO is nil When an UNDO command is given after a type 3 or type 4 command for UNDO itself s an error message CWRONG USAGE UNDO is displayed 4b PRNT gives the user the opportunity to inspect the 1 Interactive Layout Editor Compactor PAGE 15 array in wich all elements are placed This can be for instances for the next reason The user wants to know the width s of the lines on the screen These width s are not visible in the symbolic layout The PRNT command clears the screen and then prints the array LIST see chapter 4 datastructure For each element one line is printed starting with the address of the first integer of the ele ment the first integer of the first element has address 1 the first integer of the second element has address 9 and so on Ap DRAW When the drawing is not correct anymore a new one can be ma
20. enuitems Characterstrings handed over to MENUFI are of the format SHTEXT As shown the string to be written in the menus TEXT mas to be succeeded by and preceeded by H and the number of letters plus 2 for the Subroutine ROOSTCCALCOM CALCOM is a flag indicating whether drawing should be d ne on the Tektronix tube CALCOM 0 or on the Cal comp plotter CALCOM 1 This subroutine draws the window on the screens includ ing scale marks and scale numbers If CALCOM 1 scale numbers are drawn Subroutine 5 NEW is a flag indicating whether or it is the first time this subroutine is called Except for the first time initialization in subprogram BLOCK DATA array LIST has to be initialized again every element of LIST becomes zero This subroutine deals with all input via the menu First it calls GINO routines like CURDEF s T4014 etc to initialize GINO commons and the Tektronix terminal Then some variables of the program itself get their in itial value To do the same with the scaling factors IX1 and 1 1 the user is asked for the width of the arid of the window IWIDTH Now the menu and the window are drawn and the user can give his first menu command Each command is checked and if found valid the program calls the corresponding subroutine To depart from OOYENS the menu command STOP should be used Interactive Layout Editor Compactor PAGE 33 Subroutine TITLE CNAMES
21. ersion of the layout editor was made by K Delhij C5 Major improvements are the hierarchical structure and a better database The functions the editor is able to perform are Adding elements Deleting elements Drawing elements Printing the array wich contains the information about the elements Retrieve the situation as it was before the last command For further informations see chapter 3 The Layout Edi tor Information about the symbolic elements itself can be found in chapter 2 Sticks The design rule checker and compactor are described in chapter 5 and 6 Design Rule Checking and Compactor In shorts the design rule checker is able to detect the following errors Not allowed overlap of elements Distances between elements that are smaller than the minimal distances Not closed lines lines with dead ends Not connected transistors or contacts Double placed elements elements of the same types that completely overlap each other Other design rules are enforced by the translation of symbolic to geometric layout Lines automatically get their minimum width when translated when the user did not specify a special widths otherwise the width is greater So far for this short overvieuw of my work I like to thank everyone who helped with advises specially my coaches professor J Jess and ir M van der Woude and also mr H 9 Koopmans for his help concerning the com puter Interactive Layout Editor Compactor
22. etals polysilicon diffusion and RUNX the vertical and horizontal drivertransistor the Interactive Layout Editor Compactor PAGE 10 vertical and horizontal loadtransistor the poly metal contact the diffusion metal contact the buried con tact the terminal and the box Interactive Layout Editor Compactor PAGE 11 Chapter 3 Layout editor PAGE 12 used to Interactive Layout Editor Compactor The Layout editor is an interactive program put the description of a circuit into the computermemo ry in an easy and fast way The editor produces a disk is possi files in wich all information is stored It ble to start editing a new files it is also possible to read in an old file from disk and then to start making specified changes Files can be saved under user name Input of elements in the computer will be done via the grafics terminals Tektronix T4014 equiped with a in the joystick Placement of sticks will always next order First the menucommand is selected The terminal shows By placing appen a crosshairs steerable with the joystick the crosshair in the rectangle see figure 1 Gix As page 453 with the desired command and pressing it de input is the spacebar the command is given After thats pends on the type of command what further needed The menuitems can be divided into the next groups commands TRANV s 1 Commands that add an element These are ME
23. ffusion and a polysili con Lines on wich a buried contact has to be placed and a crossing of RUNX Line with a line of one of the other three types on wich termi nal should be placed At the moment the crossing is established it is impossible for the program to know if this third element indeed will be placed Interactive Layout Editor Compactor PAGE 21 The second reason is that for design rule checking each element has to be checked against each other element In the compactor the program is going to perform exactly the same check to see if they are connected By placing the design rule checker in the compactor this proces order N 2 is execut ed only wich saves computer time The design rules specifying the minimal distances are taken from Mead and Conway C11 Interactive Layout Editor Compactor PAGE 22 Chapter 6 Compaction Interactive Layout Editor Compactor PAGE 23 When we would translate a symbolic layout to a geometrical layout the latter would be rather Loose To shift the elements together is the pupose of the compaction program There are a few methods by wich such a compactor could work Compression Ridge Method C73 This method removes bands of continuous area Drawback This is a trial and error method be cause the optimal place for compression ridges is unknown Localized Placement Method This method used in STICKS C61 places succes sive elements on basis of connecti
24. irectly chose the place in the window where the line should start Supplying the program with a point outside the menu outside the window will give rise to an error message OUTSIDE MENU or OUTSIDE WINDOW a line that consists of only one linepiece two points in the window should be indicated It is also possible to indicate more than two points For each extra point a linepiece is drawn written to array LIST between the two last points In this way a line in the form of staircase can drawn very fast When more lines of the same type have to be drawn the user can do so without going back to the menu each time Only the last point of the first line should be indicated using the c key instead of the spacebar The following point via the spacebar again will be the starting point of the second line and so on Figure 3 in appendix A page 47 shows a drawing for wich only once a command METAL was given If the user wants the width of a line to change he has to give the command again Every linepiece has to be horizontal or vertical Qtherwise errormessage is displayed LINE NOT ORTHO If sos the user can try to place the last point again or chose a new command 1b Adding point elements This group consists of transistors both driver and loadtransistors the contacts and the termi nal After giving the command for one of these elements eventually a figure only one point on the screen sh
25. n only choses a good topology the elements the program has to perform a compact ion on the layout A few features such a program should contain are stated below Symbolic input line or transistor is placed as a symbol in the Layout Input via a graphics terminal Hierarchical structure It should be possible to define a macro wich is a layout consisting of a number of sticks and or other macro s and later use this macro as one of the simple elements like a Line Hierarchical database The database should have the same hierarchy the contents of a macro appears only onces and each other time the macro is used only a pointer to the macro should be added in the database The program has to be able to check whether the de sign rules minimal distances minimal Linewidth s etc have been violated The symbolic has to be translated to a geometrical Layout The program has to perform a compaction on the Lay outs if desired by the user It has to be possible that a designer draws part of the layout in the geometrical way Interactive Layout Editor Compactor PAGE 6 During the period I stayed in section ES I worked on three programs A symbolic layout editors a design rule checker and a compactor Realized are the first version of the Layout editor wich cannot handle hier archical structures and the design rule checker while the work on the compactor has been taken over by X Timmermans An improved v
26. n the ele ment List DI TAN is made true when the distance between the ele ments calculated in the function IDIST is greater than the minimal distance following from the design rules The design rules specifying the minimal dis tances are taken from Mead and Conway 12 They are placed in a linear arrays because placing them in square array would mean all figures appear twice However this implicates that the index has to be cal culated in the subroutine ITMPT1 and ITMPT2 are pointers to elements in the ele ment list This function calculates the distance between elements pointed to by ITMPT1 and ITMPT2 When the elements have a piece of the X akis or Y axis commons the value of IDIST will be the real distance between them If not sos IDIST is calculated by taking the root of the sum of squares of the distances in X and Y directions and truncating the result Subroutine NXTITM FLAG FLAG is a flag indicating whether pointer ITMPTR FLAG 0 or pointer GRITPT FLAG 1 will be altered Depending on the type of the element pointed tos the pointer is incremented by 8 Line element by point element or s in the case of a compound element by 7 plus the number of terminals times 5 length of termi nal information Interactive Layout Editor Compactor PAGE 37 Function NXTGRP NXTGRP updates the grouppointer The value of NXTGRP will be GRPPTR plus 5 plus the number of elements in the group Subroutine
27. nd was TRANH symbol of vertical transistor if command was and the element is stored in array LIST Subroutine DRAWCIEND TEND is a pointer tc the last filled place in array LIST DRAW will draw all elements present in array LIST When symbols have been deleted they remain visible on the szreen n the user command DRAW the screen will be erased and a new picture drawn Subroutine UNDOCIEND IEND is pointer to the last filled place in array LIST This subroutine restores the situation as it was before the last given commands if this command was of the type adding or deleting an element METAL DIFF POLY IMPL TRANV TRANH LOADVs LOADH s D MCT P MCTs BURCT RUNX TERM and DELT An error message is dis played in the case the last command cannot be undone anymore Subroutine MENUFRAME MENUFRAME erases the screens draws the menu and writes the error messages underneath it Furthermore a legen da is drawn of Linepieces and symbols Subroutine MENUFICIR sIKsIHOL IR is rownumber in the menu Interactive Layout Editor Compactor PAGE 32 IK is a columnnumber in the menu IHOL is Hollerith strings containing the string to be placed in the menu MENUFI fills a place in the menus indicated by the and columnmnumbers with the string in IHOL Subroutine MENU MENU1 draws the complete menu by first calling MENU FRAME and then calling MENUFI as many times as there are m
28. ns of the most common design rules However it could be improved by extending it in way it can calculate lineresistances and capacitances The compactor hasn t been finished yet One of the major problems we can see at this moment is the appear ance of maximum constraints in the graph Two groups that have minimum distance to each other and maxi umum distance to each other as well 1 Interactive Layout Editor Compactor PAGE 27 Chapter 8 Description of program and subroutines Interactive Layout Editor Compactor PAGE 28 Subroutines of the layout editor are Subroutine ADDARCIEND IEND is a pointer to the last filled place in array LIST ADGAR adds one element to array LIST The elements are plsced order of increasing x co rdinate of the an chons and when more elements share the x co ordinates in order of increasing y co ordinate From this it follows that before an element can be in serted part of the array LIST has to be shifted In chapter t is shown by a test programs that moving 3 part of the array is not significantly slowing down the programs when the amount of elements stays under 200 Subroutine ADDAR checks the number of placed elements and displays an error message in case this number exceeds 200 Subroutine DELARCIEND ITEM LETTER IEND is a pointer to the last filled place in array LIST ITEM is the number of a menu command When user first selects DEL DELe
29. nts Both pointers are zero when the program is started up Subroutine calls LINCLO when it finds a pair of overlapping elements of wich at least one is Line Subroutine ORCHCKCITMPT1 ITMPTZsNOTsIisJi TRMPTR ITMPT1 and ITMPT2 are pointers to elements in the ete ment tist NOT is a flag NOT 1 means one of the design rules has been violated I1 and 1 are equal to J and in the calling subrou tine CNECT TRMPTR is a pointer to a terminal of a compound Subroutine DRCHCK is the design rule checker It checks whether the elements pointed to by ITMPT1 and ITMPT2 3 wich overtap each other with LAMBDA 1 so there doesn t have to be real overlap are allowed to be connected if they are at a distance greater than their minimal distance In the case one of the elements or both is Line subroutine CHKTYP is called wich takes over the chack In all other cases DRCHCK performs the check itself Subroutine CHKLIN This subroutine checks if all lines have been terminat ed property If one of the two pointers to the closing elements of one of the Line elements is zero an error message is displayed on the screen Subroutine CHKTYPCITMPT1 1TMPTZ2Z5NOT 11 J1 TERMPT ITMPT1 and ITMPT2 are pointers to elements in the ete ment List NOT is a flag NOT 1 means one of the design rules has been violated I1 and J1 are equal to J and K in subroutine CNECT TERMPT is a pointer to a terminal
30. ould be indicated But also in this case it is allowed to indicate more points Then more elements will be drawn at each indicated point Interactive Layout Editor Compactor PAGE 14 1c Adding an element of type BOX The first point indicated in the window will be the anchor point of the box Two more points need to be indicated they are the two diagonal points of the box The user may select the points Lefi under plus top right or right under and top left 2 Deleting elements delete an elements it has to be indicated with the crosshair after the menucommand DELT is given Point elements are indicated by placing the cros shair in the middle of the symbols Line elements by placing the crosshair in the little circle in the middle of it When the indicated point is more than half a grid unit away from the nearest anchor point the program displays the error mes sage ITEM NOT FOUND After a succesfull deletion the message DRAWING NOT CORRECT is shown Because the terminal is not able to wipe out one elements the deleted ele ments stay visible To make a correct drawing the command DRAW has to be given followed by figure 1 wich directs the drawing to the T4014 3 Digits Oto 9 As stated before these digits are used to give Lines transistors and contacts other sizes than their default ones For tines and contacts one digit can be supplied for transistors both driver and loadtransistors two digits are al low
31. ram has to check the circuit on To the first group belong rules dealing with minimal linewidth s and minimal overlap of the lines of a transistor When the symbol ic layout is translated to a geometrical layout an elements f i lines automatically changes to geo metrical line of minimum width That means that the program doesn t have to check this width anymore The second group of design rules are the rules the pro has to check The next errors will then be found Distances between elements that are smaller than tha minimal distance f i between two lines Not allowed overlap of elementss f i a transis tor and a contact Not closed Lines lines with a dead end Not connected transistors or contacts or terminals Double placed elements elements of the same type that completely overlap each other There are also errors that won t be detected Lines that are longer than a maximum length Parasitic capacitances The design rule check is performed after the edit session is terminated It would be better for the designer if each element draws during his ed iting would be checked against all other elements that are present at the moment There are two re asons why we still chose to perform the check afterwards The first reason is the fact that there are few cases two elements are allowed to overlap only if a third element is placed on the crossing eran ples are a crossing of a di
32. s threefold The first part of the program is a symbolic layout editor An interactive program with wich a user can build a circuit consisting of sticks symbolic elements on a grafics terminal The second part checks the circuit to see if there are violations against design rules rules concerning minimum distances minimum linewidth s etc The Last part is the start of a compaction program a program that will shift all elements together as far as possibles without violating the design rules Interactive Layout Editor Compactor PAGE 4 Chapter 1 Introduction Interactive Layout Editor Compactor PAGE 5 The department of Electrical Engineering of the Eindho ven University of Technology is planning an IC production unit For this unit wich will be become operational in 1983 IC s have to be designed at the same university In the section ES a group of stu dents developeds in co operation with professor J Jess and ir M van der Woudes a layout system to help fu ture designers the computer of the section ES a PDP 11 50 an interactive Fortran program was set up for this purpose Me wanted this program to take over the drawing of the geometrical Layout from the designer so he can concentrate himself on the electronic design and on the relative placement of the elements the to pology of the layout One of the demands for an integrated circuit is that its surface stays as small as possible Because the designer from now o
33. t only if a terminal is placed on that end The last symbol is the box A box is the surrounding rectangle of a group elements and consists of four linepieces of type RUNX However it is stored in mem ory as one element not as four The symbols used and their names are taken from CAB C31 Figure 1 in appendix A page 45 shows the screen after the program is started up On the upper right we see the menu with the commands below it the messages and a legenda of used symbols linetypes Left we see the window or picture window The picture window has scale marks and scale numbers that indicate a grid Sticks can be placed only on the grid So when a user tries to place one of the sticks besides a gridpoint the program looks for the closest aridpoint and places it there The width of the grid can be specified by the user mm However the distance between two gridlines will always be one Lambda Lambda being the minimal stepsize of the proces 1 a good value for Lambda at the moment is 3 micron By specifying all distances in Lambda the inputprogram will be independent of future improvements of the proces that will force lambda down Note The menucommand IMPL is not operational any more and won t reappear in a next version Figure 2 in appendix A page 46 shows the sticks the grid has a width of 20 mm The following sticks appear from left to right and from top down The four linetypes m
34. te uses subroutine DELAR in the menus but then changes his mind and selects a new menu command instead of indicating an anchors the command has to be passed to subroutine OOYENS LETTER contains a number indicating wich key was used in subrout ine DELAR to indicate the anchor see routine CURDEF in the GINO manual 21 This subroutine deletes one element from array LIST The contents of the array following the deleted element are shifted upward to fill the open space In the case the subroutine is not able to find the ele ment pointed to or when the array is empty the error message ITEM NOT FOUND is displayed Interactive Layout Editor Compactor PAGE 29 Subroutine PRARCIEND IEND is a pointer to the last filled place in array LIST Subroutine PRAR erases the screen and then prints the contents of array LIST For each element one line ap pears on the screen each line giving the eight in tegers of an element preceeded by a pointer telling the address of the first integer of the element Subroutine GETMEN CX YsITEMsNOT X and Y are coordinates on the screens read in by the GING routine CURSOR ITEM is the number of a menu command see DELAR NOT indicates whether the point with co ordinates X Y Lies within the menu NOT D or outside the menu NOT 15 Input for subroutine GETMEN are the co rdinates of a point Output are ITEM and NOT NOT 1 indicates the point was not within the boundaries of the
35. up of symbols consists of transistors both driver and loadtransistors In fact a drivertransis tor is nothing more than a crossing a polysilicon and a diffusionlines but we chose to have a special symbol for it The benefits are obvious When the user has to place a transistor by expli citly giving the command TRAN the program will be able to find all not desired transistors that result from crossings of the two Lines diffusion and poly silicon Interactive Layout Editor Compactor PAGE 9 Furthermores the transistor symbol will make the Picture easy understandable for designers without experiance with the program The symbol of the drivertransistor consists of two rec tangles drawn over each other They renresent the two crossing lines and are dashed in the same way as those Lines When a transistor is called vertical this means that the polysilicon line is vertical and the diffusion line is horizontal Figure 2 in appendix shows the transistor symbols For a loadtransistors a third rectangle is drawn sym bolizing the implantation area Another symbol that won t reappear in the geometric La yout like the RUNX line is the terminals also called pin When a user places box around a group of ele ments there is need for a contact to the world outside the box Terminals are the only symbols that are al lowed to be placed on the surrounding rectangle box Lines may end on the surrounding rectangles bu
36. vity If par rallel path s exist in the graph this method has a low efficiency Critical Path Method This method is used in programs like FLOSS 81 and CABBAGE We chose for the critical path method In the first fase of the compaction program the elements are divid ed into groups Two elements are placed in the same group if they are connected in the direction perpendicular on the compac tion direction connection direction is the direction of the Line element involved Groups will be shifted as a whole The line elements in the direction of compaction will be regarded as elastic connections They are not placed in any group and their length is calculated after the compaction from the co ordinates of the elements they connect The dividing into groups serves two goals The problem gets a lower complexity It prevends connected elements to float away from each other We can map the groups a graph The groups itself form the nodes of the graph while the distances between them form the branches At each branch both the minimal and the actual distance can be written There exist two of these graphs One for compaction in horizontal direction and one for compaction in Interactive Layout Editor Compactor PAGE 24 ical direction Once the graph is knowns the critical path can be cat culated Now all groups residing on the critical path get their new location based on the minimum distance
Download Pdf Manuals
Related Search
Related Contents
6M3P User's Manual with Mixing Desk User Manual V96/3.19 V7 CAT5e UTP Network Cable 5 (RJ45 m/m) black 5m Multibrackets 7 350 073 731 749 Manual - MCM Electronics User Manual programa autonómico de inspección y control de comercio minorista Sandberg Wireless DesignMouse Blue MANUAL DE USUARIO “ATLANTIC AD820” Peg Perego Uno User's Manual Copyright © All rights reserved.
Failed to retrieve file