[0001] 1. Field of the Invention
[0002] The present invention relates to a networked, technical data gathering and storing system. More specifically, the present invention relates to an integrated circuit technical data gathering system which provides a client with methods of gathering, editing and analyzing the technical data to produce a tapeout file for a mask.
[0003] 2. Description of the Related Art
[0004] Conventional semiconductor mask manufacturing requires efficient design and testing of integrated circuits (IC) that is often an extremely complex and time-consuming task due to the large number of electrical components and separate electrical circuits contained in the integrated circuit chip. The complexity of the IC design procedure presents a substantial number of obstacles to successfully produce a final product that performs with minimal errors which is discussed in U.S. Pat. No. 6,185,726. Final steps of the IC design process prior to mask fabrication include creating and sending a packaged and complete IC chip design file. This is commonly referred to as “tapeout” file process, or “release information file” (RIF) process. The tapeout file is typically referenced and cataloged in an archival data base at the semiconductor manufacturer. The RIF is a text document that contains information pertaining to the technical data of an IC design being sent from a client to the mask manufacturer.
[0005]
[0006] There are many problems with this process. First, because there is no single and consistent method for sending the tapeout file to MM
[0007] Thus, there is need for a system and method that minimizes manual intervention, and standardizes the gathering, editing, and analyzing of technical data related to producing a tapeout file that is complete, accurate and valid prior to archival storage by an MM.
[0008] In view of the foregoing and other problems, disadvantages, and drawbacks of the conventional tapeout process, the present invention has been devised, and it is an object of the present invention to provide a system and method which allow clients of a semiconductor mask manufacture (MM) to submit standardized technical data (e.g., design data, test data, design preparation instructions, etc.) from their workstation directly to the MM's archival data base, in a network process that gathers, edits and analyzes technical data of a particular IC design.
[0009] To attain these objectives according to one aspect of the invention, a networked system and method for clients is provided to communicate authenticated, validated and standardized technical data at a reduced expense. The invention automatically checks for accuracy and verifies a tapeout file at the client's workstation prior to sending to the MM server to be archived. The invention facilitates the sending of very large electronic files automatically using FTP format from a client's workstation to the MM, thus reducing by over half the volume of data transfers on the MM's network. Additionally, the invention reduces cycle time required to produce the tapeout file, which in turn also reduces expense in receiving, validating, and archiving a client's tapeout file. Thus, the method and system of the invention in a computing network generates an integrated circuit (IC) tapeout file at a remote client workstation and transmits prompted IC technical data to the MM. The process validates that the tapeout file is complete and accurate prior to generating the IC tapeout file and archiving in the MM's database.
[0010] The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of a preferred embodiment(s) of the invention with reference to the drawings, in which:
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017] The system and method of the invention is a network-based computing system with Web-based applications, where a client of a semiconductor mask manufacturer (MM) can submit finalized “tapeout” files (i.e., technical data of a particular IC design such as design data, test data, design preparation instructions, etc.) from the client's workstation to the MM's archival data base. The invention automates this process. Note that a “tapeout” file is a package that includes the IC design technical data along with the “release information file” (RIF), which is a text document that contains information and instructions pertaining to the IC design technical data. The invention allows such files to be sent automatically on the MM network at completion without need for manual transfer. The invention performs the tapeout process in a formatted manner using a browser on the workstation, which cycles through a technical data interface application that prompts the client for all pertinent information regarding the technical data to be sent. Each page of this application as it is presented to the client is validated prior to final submission so that only complete and accurate RIFs are processed in the MM network. Information contained in this RIF technical data file (forming contents of the ultimate tapeout file for an IC design) can reside on either the client's workstation or on a shared file system.
[0018] Referring now to
[0019] The client workstation
[0020] The browser can be Netscape's Navigator or Microsoft's Internet Explorer browser (Registered Trademarks of Netscape and Microsoft Corporations). The browser is an application configured on the workstation
[0021] These application objects may include CGI scripts, JAVA components, ActiveX components, and the like. As a result, objects are either linked or embedded into the browser from the MM server
[0022] The preferred objects of the invention are “classes” and “servlets” that are part of Java (a trademark of Sun Corporation) programming language developed by Sun Microsystems, Inc. in Mountain View, Calif. Sun defines Java as a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multi-threaded, dynamic, general purpose programing language. Java supports programming for the Internet in the form of these objects. These objects execute within the server
[0023] In particular, the browser installed on the client's workstation
[0024] As shown in
[0025]
[0026] The archival IC database
[0027] When using the eTDI application
[0028] The eTDI application
[0029] The eTDI application
[0030] The eTDI application
[0031] At the beginning of use of application
[0032] As shown in
[0033] To illustrate an exemplary and preferred form of how eDTI application
[0034] There are three paths to choose from the welcome.jsp at step
[0035] Next, the user provides information regarding his request and the data that he is submitting. The required information must be provided in the fields which are adjacent to field labels. When scrolling through this info.jsp, all of the information that is required is presented on this GUI page. The request for services (RFS) number is required to associate the data with a “Request For Services”. This requirement ensures that no data is sent to the mask manufacturer without contracting for the services prior to the send. Company name and technical contact information are required so that the mask manufacturer can contact the sender in the event there are further questions or concerns regarding the data being sent. “Design Release Type” indicates for which layers design data and/or information is being sent. If “SUBSET” is chosen for the design release type, then additional information is required in order to inform the mask manufacturer as to specifically which layers (i.e., By layer name, as we will see later) are included. Also, depending on the design release type, either a (Front End Of Line) FEOL and/or (back end of line) BEOL chip part number must be provided. For example, if (FEOL) is chosen for design release type, then a FEOL chip part number must be provided. If BEOL is chosen for design release type, then a BEOL chip part number must be provided. If ALL-RIT AB is chosen, then both FEOL and BEOL chip part numbers are required, and if either ALL-SINGLE PN or SUBSET is chosen, then either a FEOL or a BEOL chip part number is required. A technology name must be provided because many of the manufacturing process information is technology name based. The design data submission YES/NO questions are required because they affect whether or not the user will be required to answer more questions (on subsequent screens) regarding the data being sent.
[0036] If the user attempts to click on the next button, but has not provided information in the required fields or the information does not pass these checks, then a pop-up screen is shown with a message indicating which piece of information is missing (e.g. RFS number, design release type, technology, etc). The info.jsp GUI screen continues to be presented until all of the information is correct. Once the information is correct, and the user clicks on the next button, the next screen is presented. The next screen presented depends on how the questions were answered on the info.jsp GUI screen. If the user selected a design release type of “SUBSET”, then the layers jsp screen is presented next. If the user selected a technology which is currently supported by the mask manufacturer, then the layers.jsp GUI screen at step
[0037] In this case, the user then selects the layers to be included in this submission (one at a time, or multiply) from the box on the GUI screen, and clicks on a “Add” button. This action adds the selected layers from the box on the left to the box on the right. If the user attempts to add a layer to the box on the right, which is already in the list in this box, then an error message is presented, and the operation is not performed. The user can remove any or all layers from the box on the right using a “remove and remove all” buttons on the GUI page. Once an accurate list of layers to be included is in this submission, the user then clicks on the next button to go to the next screen. If there are no layers in the box on the right, then an error message is presented, and the user is not permitted to continue to the next screen. In the case where the user selected a technology which is not supported by the mask manufacturer, then the layers.jsp GUI screen is presented to the user with only a field on the left side of the screen, where the user must type in the layer names.
[0038] Again, the user is permitted to continue to the next screen (upon clicking on the next button) only if at least one layer name is present in the box on the right of the screen. If the user answered “YES” to the question “Is design data included in this submission?” on the info.jsp, then the next GUI screen presented is the pdinfo.jsp as a GUI screen at thestep
[0039] All of the information required on the pdinfo.jsp pertains to design data. This GUI screen includes “Is this a RIF-only submission?” message which indicates whether or not the information being provided is for a design that already exists in the mask manufacturer's archives at step
[0040] The user can either type in the names of the files he wishes to send in the field provided, or use the browser button which allows him to navigate through the directory trees on the drives on his workstation. Once the file has been typed into the field (or selected via the browser button), the user clicks on an “add” button to add them to the list. If the user answered “YES” to the question “Is this a RIF-only send?” on the pdinfo.jsp GUI screen, then it is not necessary to add any file names on this GUI screen. However, if this is not a “RIF-Only” send-type data transmission, then at least one file must be added. Once the list is complete and accurate, the user then clicks the send button and a subsequent goodbye GUI screen appears (step
[0041] As shown in
[0042] At a later time, when the user wishes to resume work on the saved submission (or RIF), one must choose another button on the Welcome homepage screen, as to the text “Resume from a previously saved RIF” at step
[0043] From this screen, the user must select the file to resume, and then click on the next button. The user will then be presented with the info jsp screen, wherein all of the data that had previously been entered or selected is already completed on all of the screens. Then, the user continues to navigate through the screens, via the next button, and continues to enter remaining data to be entered, or change any data that has been previously entered.
[0044] The user can also choose to copy all of the information from a previous submission to use as a basis for a new submission. This is done by the user entering either a FEOL part number and/or a BEOL part number on the welcome home page screen, and then clicking on the start button. The FEOL and/or BEOL part number(s) entered can be used as search criteria for locating RIF information in the mask manufacturer's databases. The user will be presented, via the RIFlist.jsp GUI screen at step
[0045] From the RIFlist.jsp GUI screen at step
[0046] Although eTDI application
[0047] Upon completion of the RIF at the goodbye GUI screen (step
[0048] The properties file is written as plain text by the FileChooserServlet line by line. Exemplary code for this servlet function is as follows:
FileChooserServlet.java: String tdiFileName = new String( ): String tdiFileNameAndDir = new String( ): tdiFileName = rifInfo.getPartid+ “.D + rifInfo.getDate( ) + ”.T + rifInfo.getTime( ) + “.tdi”; tdiFileNameAndDir = System.getProperty(“tdiCreateDir”) + tdiFileName; File tdiFile = new File(tdiFileNameAndDir); FileOutputStream fout = new FileOutputStream(tdiFileNameAndDir); PrintWriter pout = new Print Writer(fout); pout.println(“VERSION=” + System.getProperty(“FTPapp.Version”)); pout.println(“STILLRUNWITHOLDVERSION=” + System.getProperty(“FTPapp.StillRunWithOldVersion”))
: Integer Inum Version Length = new Integer(System.getProperty(“FTPapp.NewVersionMessageLe
ngth”)); poutprintln(”NEWMESSAGELENGTH=” + InumVersionLength.toString( )); for(int iLineNum =1; iLineNum<= Inum VersionLength.intValue( ); iLineNum++) - pout.println(“NEWVERSIONMESSAGE” + iLineNum + “=” + System.getproperty(“FTPapp.NewVersionMessage” + iLineNum)); - pout.println(“MVSHOST=” + System.getProperty(“HostName”)); pout.println(“PARTID=” + rifInfo.getPartid( ); pout.println(“MAILID=” + System.getProperty(“Mail.From.Default”)); pout.println(“MAILHOST=” + System.getProperty(“Mail.Server.Default”));
[0049] An exemplary section of the generated properties file appears as follows:
[0050] Properties File:
[0051] VERSION=1.0
[0052] STILLRUNWITHOLDVERSION=true
[0053] NEWMESSAGELENGTH=1
[0054] NEWVERSIONMESSAGE1=Please update to version 1.1 of this tool!
[0055] MVSHOST=BTVLABA.BTVJIBM.COM
[0056] PARTID=12K3456
[0057] MAILID—etdigbtv.ibm.com
[0058] MAILHOST=mailrelay.btv.ibin.com
[0059] NUMERRORCONTACTS=1
[0060] ERRORCONTACT1=CSYAGER@US.IEM.COM
[0061] NUMSUCCESSCONTACTS=2
[0062] SUCCESSCONTACT1=RTMC@US.IBM.COM
[0063] SUCCESSCONTACT2=CSYAGER@US.IBM.COM
[0064] NUMFPILES=1
[0065] FILE1.FILENAME=/local/rnydesigns/12k3456.tmd.test.txt.z
[0066] FILE1.NAMEONHOST=CPRODREC.TEST.L12K3456.TMD.D000907.T1023
[0067] FILE1.RECFM=VB
[0068] FILE1LRECL=120
[0069] FILE1.BLKSIZE=27998
[0070] FILE1.DATAFORMAT=ASCII
[0071] FILE1.SECONDARY=50
[0072] An initial setup of the eTDI application
[0073] Script code for this function is as follows:
[0074] filename1=“$HOME/.mime.types”
[0075] filename2=“$HOME/.mailcap”
[0076] /usr/bin/sed ‘/type=application-eTDI/d’ $filename 1>tempefile 1
[0077] /usr/bin/sed ‘/exts=“tdi”/d’ tempfile1>tempfile2
[0078] /usr/bin/sed ‘/desc=“eTDI Application”/d’ tempfile2>$filename1
[0079] /usr/bin/rm tempfile1
[0080] /usr/bin/rm tempfile2
[0081] /usr/bin/sed ‘/application”-eTDI/d’ $filename2>file2
[0082] /usr/bin/mv file 2 $filename2
[0083] #if not delete option then add new lines otherwise leave Netscape files empty.
[0084] if [[$1!=“-d”]]; then
[0085] print “Adding new information to Netscape files . . . ”
[0086] print “type=application/eTDI\”>>$filename1
[0087] print “exts=\“tdi\”\”>>$filename1
[0088] print “desc=\“eTDI Application\””>>$filename1
[0089] Once this script is executed, the browser is set up to automatically use the properties file. By using the client workstation
FTPapp.java (section retrieving some info from properties file): //SET PROPERTIES FOR, AND SEND, EACH FILE Integer numFiles = new lnteger(System.getProperty(“NUMFILES”)); successfulFileSend = new boolean[numFiles.intValue( )]; for (int curFile =1; curFile <= numFiles.intValue( ); curFile++) - try - //RETRIEVE VALUES FOR SETTINGS String recfm = System.getProperty(“FILE” + curFile + “.RECFM”).trim( ); String lrecl = System.getProperty(“FILE” + curFile + “.LRECL”).trirn( ); StringsendType = System.getProperly(“FILE” + curFile + “.DATAFORMAT”).trim( ); String blockSize = System.getProperty(“FILE” + curFile + .BLKSIZE”).trim( ); String fileToSend = System.getProperty(“FILE” + curFile +“.FILENAME”).trim( ); String nameOnHost = System.getProperty(“FILE” + curFile + “.NAMEONHOST”).trim( ); FTPapp. Java (section setting FTP values and send files): 10 //SEND SETTINGS VALUES FtpProtocol.site(“autorecall”); ftpProtocol.site(“recfm=” + recfm + “Irecl=” + Irecl + “blksize=” + blockSize); ftpProtocol.site(“unit=” + unit + “pri=” + primary + “sec=” + secondary); ftpProtocol.site(“dataclass=” + dataclass); FtpProtocol.setType(sendType); // SEND FILES ftpProtocol.putFile(fileToSend, “\“‘ + nameOnHost + ”\”’); if (ftpProtocol.hasErrorOccurred( )) - printText(“Unable to send file: ”+FileToSend + “.\r\n”); successfulFileSend[curFile − 1] = false; boolErrorInSubmission = true; - else - successfulFileSend[curFile − 1] true;
[0090] Use of the eTDI application
[0091] Code from FTPapp.java:
[0092] FtpProtocolsite(“autorecall”);
[0093] ftpProtocol.site(“recfm=”+recfm+“1rec1=”+1rec1+“bl ksize=”+blockSize);
[0094] ftpProtocol.site(“unit=”+unit+“pri=”+primary+“sec= ”+secondary);
[0095] ftpProtocolsite(“dataclass=”+dataclass);
[0096] flpProtocol.setType(sendType);
[0097] Although the invention is intended for use by a semiconductor manufacturer, it has utility in other applications where detailed, accurate and complete technical data is a critical step in the processing. The invention satisfies a need for receiving technical data (i.e., design data, test data, etc.) during the final tapeout process prior to mask fabrication. The invention does this by providing a platform-independent eTDI application
[0098] In addition, the invention includes commands for transmitting files larger than two-gigabytes without manual intervention, allowing the remote workstation to send files automatically. In preferred form, the invention is a Web based tool, which requires only a web browser and small downloadable “helper” application
[0099] While the invention has been described in terms of preferred embodiments, those skilled in the art will recognize that the invention can be practiced with modification within the scope of the appended claims.