QIS Revision History |
QIS v2.65 (01/22/2010)Major Memory Usage Optimization
Memory usage is now reduced to less than half of the previous versions. QIS v2.631 (12/04/2009)Driver PointsThe new version of Nettrace Server v2.63.0 [nettrace.qis/nettrace.qis64] supports identifying driver points. QIS v2.631 (5/6/2009)NetTrace Server supports OASIS files
The new version of Nettrace supports OASIS files. QIS v2.615 (7/16/2008)NetTrace Server instancesEach nettrace server instance creates its own temporary working directory 'ntrc_tmp.{processID}'. All temporary files generated during nettracing can be found here. NetTrace log fileIn order to generate the nettrace detailed log file 'nettrace.log' and the generated nets as GDSII output 'nettrace.gds' specify the -log command line option when invoking the nettrace server. To ensure independence amongst the multiple server instances, each nettrace-qis server pair uses its own shared memory. QIS v2.604 (9/21/2007)NetTrace Occasionally StopsPrevious versions might stop in the middle of tracing, stop responding to further commands, or stop accepting a connection from a client program. It is not crashing nor is it in a busy loop. This has been fixed. QIS v2.603 (9/6/2007)Long Delay At The End Of Tracing With No Progress
Older versions of NetTrace would merge the polygons of the resulting
net and output to a GDSII file after the net has been sent to the client
program. This process could take minutes for a larger net of hundreds
of thousands of polygons and it would seem like NetTrace has stopped
responding on the client program side. NetTrace v2.60.1 has a new problem that it would stop when tracing for the second time. It stops responding afterwards. This has been fixed. Non 0.001 grid and high vertex count problemsNetTrace had problems handling GDSII files with non 0.001 grid, and files with high vertex count (over 4 billion). Both issues have been fixed. QIS v2.602 (8/23/2007)Stop Tracing Response TimeSending a Ntrc_Stop command to NetTrace could take NetTrace couple minutes to response for bigger file or large number of polygons. This has been improved to seconds. Though, potentially, it might still take a while to response for larger file depending on what computation is taking place at the time of a stop. Wrong Net For File With Grid Not 0.001Previous versions might not generate correct net polygons if the grid of the file is not 0.001. It might interprete the test point incorrectly so the resulting net is totally wrong; or it might use the correct test point but the resulting net is scaled up or down in a ratio of the actual grid vs 0.001. NetTrace Stops Or Crashes For File With High Vertex CountFile with high vertex count would cause an overflow in the estimation calculation when NetTrace tries to partition the work flow. This would cause the algorithm to break and NetTrace might stop or crash. QIS v2.60 (6/8/2007)Open Memory Maps Directly, Load Memory Mode On/Off
There are two modes when opening memory maps directly. Previous version of QIS might copy a remembered home view on top of the existing picture even if SetDrawWindowID is on when doing a ZoomHome. This has been fixed. QIS Direct Open Memory Maps Support
NetTrace now works if the file opened in QIS is GDSII memory maps
(instead of the original GDSII file). QIS v2.52 (5/1/2007)New Function - Open Memory Maps Directly Without The GDSII FileOpen_GDSII can be used to open the scan and load memory maps directly without the original GDSII file. The load memory map has to be created with Set_Load_Memory set to On which would store the GDSII entity data in the load memory map. Specify the scan memory map and load memory map as the arguments to the Open_GDSII command, separated by comma, double quoted if necessary. e.g. Open_GDSII "/tmp/demo1.gds.scan.b64","/tmp/demo1.gds.dbload.b64" Under this direct open mode, if either the scan or the load memory maps fails to open, QIS sends out QIS_Error and it does not revert back to open the original GDSII file (obviously, since it doesn't know about the original GDSII file). (This behavior is different from the normal memory maps usage where QIS sends out QIS_Warning when memory maps fail and continue on to open the original GDSII file.) Other behaviors are the same as opening a GDSII file using the Open_GDSII command. The scan and load memory maps file names can be changed to anything. But it would be good to identify them as scan, dbload, little or big endian byte ordering and 64 or 32 bit. When memory maps are opened directly, a GDSII file or data cannot be created. So the commands Save_GDSII, Save_GDSII_Structure, Get_GDSII and Get_GDSII_Tcp don't work. Edit commands still work, but the result cannot be saved to a GDSII file. A new memory maps would not be created even if Set_Create_Memory_Maps is set to On. Directly opened memory maps do not need to be reload. The command Reload_GDSII does not do anything, it returns Reload_GDSII\n immediately denoting that the reload is done.Memory Maps New Warnings/Errors and Notes 1. "Memory map 'demo1.gds.load.b64' is not used (different load to memory setting)." This occurs when the Set_Load_Memory setting is different than the setting when the load memory map was created. 2. "Memory map 'demo1.gds.load.b64' is not used (cannot directly open memory map without data entities, memory map was not created with load to memory on)." This occurs when the load memory map specified to be opened directly (together with a scan memory map) was not created using Set_Load_Memory On. 3. "Failed to use memory map 'demo1.gds.scan.b64'. Version not supported or file is not a memory map." This occurs when the scan memory map has a older version that QIS supports or the file is not a valid memory map (not a QIS format memory map file or a memory map file from a different platform.) Cross platform between Linux and Unix are supported as long as the memory map files are of the same 32/64 bit and big/little endian with the exception that Windows QIS memory map files cannot be used for the Unix/Linux version of QIS and vice versa. e.g. Solaris AMD64 files can be used for Linux AMD64 (both are 64 bit and little endian).Solaris On AMD64 Memory Maps File Name Memory maps file names had .b64 as the extension which is wrong. It is now changed to the correct .l64 which stands for little endian 64 bit. It is cross platform compatible with other 64 bit X86 platforms like Linux running on 64 bit processor. Save_GDSII and Save_GDSII_Structure New Error Message
QIS sends out this error message if memory maps are opened directly
and Save_GDSII or Save_GDSII_Structure are sent to QIS:
QIS sends out this error message if memory maps are opened directly
and Get_GDSII or Get_GDSII_Tcp are sent to QIS: Directly opened memory maps do not need to be reload. The command Reload_GDSII does not do anything, it returns Reload_GDSII\n immediately denoting that the reload is done. QIS v2.51 (4/11/2007)New Command - Set_Draw_Window_ID (Unix and Linux Only)Use this command to send QIS a Drawable (drawing area) and QIS would draw directly to this drawing area when a Redraw command is sent. If this direct draw is turned on, QIS would send out Image_Ready 0 when it finishes the drawing, it would not send out an image regardless of what the Set_Image_Format is. In addition, Get_Image would do nothing, it does not return anything. Send -1 as the argument to turn this direct draw off. QIS would switch back to send out an image after drawing is finished and Get_Image during drawing could be used to get an image. If this mode is turned on, the drawing area is not cleared using the background color before drawing starts. QIS draws on top of whatever is in the drawing area prior to a Redraw command. This behavior has an effect of overlaying QIS data on top of an existing picture. The client program can clear the drawing area using the background color first before issuing a Redraw command if that is the desired effect. Home view is not remembered/cached under this mode so the command Zoom_Home would not be almost instant. Home view is now also a redraw. This Drawable/Pixmap handle should be created using the default depth of the default screen of the same display as QIS.New Image Format for Set_Image_Format - Bitmap8U (Unix and Linux Only) The Unix and Linux versions of QIS can now generate a Windows .bmp bitmap format image (in addition to Gif and Xpm). Use the command Set_Image_Format and send Bitmap8U as the argument and subsequent Get_Image and Image_Ready images will be in .bmp format. This argument is an invalid argument for the Windows version of QIS. The format is 8 bit uncompressed RGB. If the image bytes are saved to a file, it would be a valid Windows .bmp format file. The image bytes can also be used directly to set the pixels of a Windows GDI bitmap using the Windows GDI function SetDIBits. The bytes are formed by these components: BITMAPFILEHEADER BITMAPINFOHEADER RGBQUAD color array (array size is specified in biClrUsed of BITMAPINFOHEADER) bitmap bits BITMAPINFOHEADER, RGBQUAD array and bitmap bits are sufficient to a SetDIBits function call, BITMAPFILEHEADER is not necessary. BITMAPFILEHEADER is only needed to generate a .bmp file.Incorrect GDSII Memory Error When Loading Begins For 32 bit QIS, even if Set_Load_Memory is Off, it would still check if enough memory is available as if Set_Load_Memory is On thus preventing QIS to open the file since it doesn't actually need that much memory: QIS_Error 4.7GB of memory is needed to view demo1.gds. Maximum memory is 4GB. For both 64 and 32 bit QIS, when Set_Load_Memory is Off and there is a memory error, it would generate this error message: QIS_Error 1.2GB of memory is needed to view demo1.gds. The system does not have enough memory. When Set_Load_Memory is Off, the reported memory requirement is wrong, it does not need that much memory. This has been fixed to: QIS_Error Memory error occurred when starting to load demo1.gds. The system does not have enough memory. QIS v2.50 (12/22/2006)Final OASIS Release
This version passes all the OASIS test files from OASIS Tooling in both reading and writing. Previous versions might not check for various OASIS errors and might generate incorrect OASIS output files. These have been fixed in this major OASIS release. Missing GDSII Data, Array Structure References With Over 32767 Rows or ColumnsPrevious versions would show incorrect structure extents or data would be missing if the structure has array references with over 32767 rows or columns. This limit has been raised to 65535. QIS Does Not Respond When Getting Tiff ImagesQIS might not return when generating a Tiff image for Get_Hires_Image or Get_Hires_Image_Tcp. It is not in a busy loop, it has 0% CPU usage, but it does not return back to the client program and it stops responding to further commands. This might happen depending on the nature of the data vertices. Invalid Gif and Data With 11 Decimal PointsThe grid in a GDSII file might be interpreted as 0.000999999999992 instead of 0.001 and thus data would be shown with 11 decimal points which caused the GIF to be corrupted. This has been fixed. New Environment Variable - ARTWORK_LINUX_PRECISION
New Environment Variable - ARTWORK_LINUX_PRECISION
New Environment Variable - QIS_SET_OASIS_CHECKSUM This version supports FLEXlm licensing version 11. QIS v2.44 (10/24/2006)Incorrect Tiff Output With Missing Polygon
Certain odd polygons (e.g. non convex, self touching) might be dropped
and thus produced an incorrect Tiff output. This has been fixed. QIS v2.42 Net Trace (11/30/2006)New Command - Ntrc_Set_Time_Out
Argument - Number of seconds
-log[:log files directory] Previous versions of NetTrace might not have the startup status available on stdout after it has started. A client program might be waiting for this status string through a pipe and never gets a response. This has been fixed. Ntrc_Get_Version Returns Wrong Version
Previous versions of NetTrace would always return 1.80 as the version
number. This has been fixed. QIS v2.42 (09/14/2006)GDSII Structure Redefinitions (Multiply-Defined Structures)
For GDSII, if there are multiply defined structure(s), older QIS would
use the last structure definition. This has been changed to use the
first structure definition. Subsequent definitions of the same
structure are now ignored. In general, for correct GDSII files, no changes are made regarding memory maps. Old memory maps can be opened by this newer QIS. Previously generated memory maps are not used by this new QIS if the GDSII file has structure redefinitions. QIS will send out this warning: QIS_Warning\n Memory map 'demo.gds.scan.b64' is not used (structure redefinitions are now ignored).\n QIS will then generate new memory maps. New memory maps generated by this new QIS can be used by older QIS.Load Memory Map and GDSII Undefined Structures Previous versions would send out a duplicate list of undefined structures if the load memory map exists but not used due to various reasons. e.g. QIS_Warning\n Undefined Structures\n Struct_1,Struct_8,Struct_16\n ,Struct_1,Struct_8,Struct_16\n This has been fixed.QIS for Windows Not Using GDSII Scan Memory Map Previous versions of QIS for Windows would not use a scan memory map if the GDSII file is larger than 2GB. This has been fixed. QIS v2.41 (07/10/2006)Extract GDSII from OASIS
The GDSII extraction commands, Get_GDSII and Get_GDSII_Tcp, now also
work when an OASIS file is opened.
Added control to add a round polygon by specifying the center, radius
and arc resolution in degrees. A polygon with many vertices that looks
like a circle will be added. Use the Add_Vector to add an "R" vector.
This version of QIS passes all the incorrect test cases of Level-1,
all test cases of Level-2 and all test cases of Level-5 Corner Cases
Check for CRC/CheckSum
Maximum number of vertices supported is raised from 8191 (GDSII spec max) to 250,000. If a file has cell names in strict mode, all cell definitions and references should be using reference numbers. If that is not the case, an error would occur during scanning but the error would say it is a memory error. This has been changed to a better error message: "Only reference-number access is allowed for cell strict mode." Faster Get_Hires_Image_Tcp and Get_Hires_Image_Tcp Tiff ExtractTiff extraction has been speed up by 2-3 times especially when many windows are extracted sequentially. Data Snap To Different Grid Or DisappearA bug was introduced to QIS v2.35 to v2.40 where data might snap to a different grid or disappear when zoom in tight. This would only occur when data are transformed to a grid of higher resolution and the resolution is raised by Set_Resolution or Set_DBU. When zooming in tight, it would still use the old resolution and caused the snapping/disappearing. More Than 4 Billion Number of Data for WindowsThe windows version of QIS might print out an invalid number if the number of data is over 4 billion (max 32 bit). (number of boundaries, paths, texts, srefs, arefs, vertices) This has been fixed. QIS Net Trace 2.38This release reflects a bug fix associated with GDSII grid that did not conform to 1000. QIS v2.39 (04/18/2006)New Functionalities - Command - Set_Outline_FilterIf Set_Outline_Filter is set to On, the outline of a polygon is not drawn. See command description in documentation page for more information. QIS Net Trace 2.38This release reflects a bug fix associated with GDSII grid that did not conform to 1000. QIS v2.38 (03/22/2006)New Functionalities - Command - Set_Text_ScaleDrawings of text can now be scaled using this command. The text font number for GDSII ranges from 0 to 3. Use font number 0 for OASIS text. Small Tiff Output One Pixel OffThe length and/or width of a Tiff output could be off by one pixel if the correct width is less than 25 pixels. Data touching along the border could also be off by one pixel. This has been fixed. Slow Writing And Reading On AMD Opteron
In previous versions, the above file I/O operations might be very slow
on AMD Opteron machines if the file is across a network. This has been
fixed. QIS v2.37 would crash if -nodisplay is specified and a Tiff is extracted or getting vectors for paths as boundaries. This has been fixed. QIS v2.37 (03/7/2006)New Functionalities - Command - Set_Transformation
Different scales can be specified for X and Y. This might be useful
for drawing and Tiff extraction. Previous versions would output a Tiff output with the image width in pixels rounded up to a modulo of 8. This has been changed to the exact width in pixels. The Tiff image itself has been correct and has not been changed, just the image width in the header of the Tiff file has been changed to have the exact width. Drawing Paths And Converting Paths To Boundaries Vectors
All paths except paths with round ends are drawn using a new algorithm.
The picture might look different from previous versions. If a path has a segment shorter than the width of the path, the path could be drawn incorrectly with a diagonal cut line. This has been fixed. GDSII, OASIS and Tiff Extract Incorrect Output
If a boundary or path forms a donut shape with a hole in the middle,
extracting an area inside the hole would generate a polygon which is
the size of the extraction window. The resulting Tiff output would be
all black (or white). Various combinations of cell definition, placement or CELLNAME records in an OASIS file might mean a cell is defined more than once. This version now checks for this OASIS file error. OASIS Recursive Cell Reference Placement
(a cell placing a copy of itself within itself). QIS v2.36 (01/27/2006)Error Opening OASIS File with Certain Types of CTrapezoid
Previous versions might incorrectly generate an error when opening an
OASIS file with CTrapezoids. The error might be one of these:
QIS now outputs QIS Startup Status(0) to stderr on the Windows version
when it is started successfully together with the port number where it
is started. e.g. QIS v2.35 (01/03/2006)Performance ImprovementScanning speed has been improved an average of 12% and loading speed an average of 6%. Improved OASIS Error ReportingError messaging for problems parsing OASIS files has been greatly enhanced. First, the error messages are much more precise that before. Second, the error message includes a few bytes preceding the error which should enable the programmers to better determine what triggered the error. Example In the example below, the OASIS reader encountered a fatal error because a CTrapezoid did not meet the rule that the width must be less than twice the height.
Record starts at file offset 53732. Record bytes are: 1A F8 06 9E 0F 9A 08. While the actual file offset is of no use if you don't have the file, the bytes shown actually include the coordinate data for the trapezoid. Increase Range of Layer/DatatypeWe have increased the range for both layer and datatypes (this applies to both GDSII/OASIS)
Client programs might need to be changed to support layer and datatype numbers in the range of 0 to 65,535. Update: Set_Input_Layer_Map Added "all layers off" control to turn all layers off for these 2 commands. Send the argument All-NULL to turn off all layers. This command is useful for instructing QIS to load only a limited set of layers. For example, if you have a 10GB GDSII file with data on 20 different layers but know that you only want to look at layer 38 and 39, QIS will load faster, display faster and use less memory if you do the following prior to issuing the open_gds command: Set_Input_Layer_Map All-NULL,38-38,39-39 In general, there are 10 different types of argument to these 2 commands:
New Scan & Memory Map As a result of the new layer and datatype numbers range, this version of QIS creates and uses a new version of scan memory map, v1.03, and a new version of load memory map, v1.02. Older scan and load memory map will not be used and a new version will be created. Bug Fix: Data Drawn On Different Coordinates If Set_Resolution changed Previous versions would draw large extents data at the wrong coordinates if resolution is changed by the Set_Resolution command and zooming is very tight into the data. This has been fixed. GDSII and OASIS Output Failed If Output File Exists Previous QIS versions (Windows) would not be able to save over an existing file; an error messsage: "Cannot save to the same GDSII file" was generated. This has been fixed. Note: The output file still cannot be the same as the input file. QIS v2.34.2 (12/08/2005)QIS Crashes When Saving Text To GDSII File (AIX only)Previous version crashed when Save_GDSII or Get_GDSII is used to save to a GDSII file. This bug only happened on IBM AIX. This has been fixed. QIS NetTrace v2.34.1 (11/18/2005)QIS Nettrace New CommandsQIS/Nettrace has a few new commands. You can go to the QIS Documentation page for more detailed information.
You can now use the -h to get the help screen. nettrace.qis[64] -h Nettrace Server(NTS) v2.341 (18 November, 2005 - 32MT) Copyright © 2005 Artwork Conversion Software, Inc. (831)426-6163 info@artwork.com, http://www.artwork.com usage is nettrace.qis[64] [options] options -ntip:ipaddress ipaddress is the ip address where NTS should run. You can also set this parameter using env. variable NTIP -ntport:portno portno is the port number where NTS should run. You can also set this parameter using env. variable NTPORT -qisip:ipaddress ipaddress is the ip address where QIS is running. You can also set this parameter using env. variable QISIP -qisport:portno portno is the port number where QIS is running You can also set this parameter using env. variable QISPORT QIS v2.34 (10/24/2005)First QIS Suse for Intel 32 and 64 bitSUSE release includes both qis64 (64 bit) and qis (32 bit) executables. New Command - Get_Files_In_DirectoryUse this command to get the directory and file names available in the file system of the QIS running machine. Clients running remotely and connecting to this QIS can now instruct QIS to open a file on the QIS' file system. QIS Crashes When Multiple Clients Are Disconnecting From ItPrevious versions of QIS might crash when multiple clients are disconnecting from it around the same time. This has been fixed. QIS NetTrace v2.34 (10/14/2005)Qis Crashes When Multiple Clients Are Disconnecting From ItPrevious versions of QIS might crash when multiple clients are disconnecting from it around the same time. This has been fixed. QIS Net Trace v2.34 [ Solaris ]File browser server (fbserver) is not being shipped as part of this package. File browser capability has been added to QIS v2.34. The 32-bit and 64-bit QIS binaries shipped with this product are v2.34. QIS NetTrace v2.33 (09/19/2005)QIS/Nettrace/ File BrowserQIS/Nettrace/ File Browser server package is updated and contains QIS v2.33, optimized Nettrace server and updated file browser. Fast Response Of Nettrace Get_Data_VectorEach window request made to QIS caused Nettrace to be delayed by atleast a second in the previous version. This has been fixed. Initial Delay Speed UpIn the previous version, for each net trace request, server use to delay for 4-5 seconds before doing the real work. This delay has been reduced to less than a second. New Optimal Cell Size Preferences Option (vertices per window)This option can be added to the preferences argument of Ntrc_Set_Preferences as This option can be added to the preferences argument of Ntrc_Set_Preferences as This option can be added to the preferences argument of Ntrc_Set_Preferences as Nettrace server makes two attempts to adjust the intial window size if it is not the optimal size based on the number of vertices per window specified. This was not the case in the previous version. Qis Client shared object used by nettrace serverThis version of nettrace server uses the the qisnetlib64.mt.so/ qisnetlib.mt.so shared object. This is the multithreaded version of the library, which is freely available to the customers who need to build their own Qis Client. QIS v2.33 (09/16/2005)New XPM raster format.For UNIX and Linux only we added a new raster format called XPM. After setting the image format to XPM, images for Image_Ready and Get_Image commands will be in XPM format. QIS Crashes "Failed to use scan memory maps"Previous versions of QIS might crash if it failed to use the scan memory map or if a Stop command was sent to QIS while it was reading the scan memory map. This has been fixed. QIS v2.31 (08/11/2005)Draw, Scan, Load Speed ImprovementsDraw, scan and load speeds have been improved by using a file I/O
buffer size of around 4K bytes. Draw times show a speed up of 1X to 18X
with an average of 3X depending on zoom in level and display filter sizes.
Scan and load times speed up depends on OS and network settings and
could be minimal. As a result of the speed improvements, this version of QIS creates and
uses a new version of scan memory map, v1.02. Older scan memory map
will not be used and a new v1.02 scan memory map will be created. QIS v2.30 (07/15/2005)Release for standard QISThis new release is for the standard QIS and for the special Synopsys version. All the updates from version 2.16 are now implemented in the standard version of QIS. OASIS SupportThis version of QIS supports OASIS. OASIS and GDSII are activated by
separate licenses. This command returns the license status or error messages for each of the features QIS supports. Multiple Clients SupportThis version of QIS supports more than 1 client to connect to it.
The first connected client has the highest priority meaning that QIS
would only process commands from the second client if the first client
is quiet. Previous versions would draw the fill patterns for all layers first and
then the outlines for all layers. This has been changed to drawing both
the fill patterns and outlines for each layer within a structure before
moving on to the next layer. QIS v2.26 and v2.27 would not go deeper than 1 structure reference hierarchy level when Set_Load_Memory is on. It happen for both image drawing mode and vector mode. This has been fixed. Fill Pattern (or Empty Fill Pattern) Not WorkingFill pattern with index greater than 255 would be ignored since v2.20. This caused the effect that setting a layer to outline only using the empty fill pattern (index 999) to be not working, the layer remained filled. This has been fixed. Artwork Host ID Licensing Crash While QIS Is Busy Opening A FilePrevious versions of QIS might crash with a signal 10 if it uses Artwork host ID licensing and it is busy opening a file. This happens when the license is refreshed while at the same time it is allocating memory during a busy file open. This has been fixed. ACS6555 License ErrorPrevious versions of QIS would generate a license check out error on the FlexLM license server log file for product ACS6555: 16:30:38 (artwork) UNSUPPORTED: "ACS6555" (PORT_AT_HOST_PLUS ) user@server (License server does not support this feature (-18,327)) ACS6555 has been obsoleted and taken out. This error should not happen from now on. Socket Communication OptimizationsThe socket libraries receive algorithm has been changed from a complex handling to simple and efficient handling. This could result in a communication speed up and less memory usage when many commands are sent to QIS at the same time. Synopsys Version HeaderThe header printed out to stdout when -h is passed to QIS as a command line argument now shows (NTI 2004.12) or (NTI 2005.09). Self Touching Polygon Tiff/GDSII/OASIS ExtractPrevious versions might hang when extracting a polygon with self touching vertices. This has been fixed. QIS v2.27 (06/05/2005)OASIS CBLOCKs Compression/DecompressionQIS now uses -15 as the windowBits parameter for compressing and decompressing OASIS CBLOCKs. This fixes the problem that QIS failed to open OASIS files generated by Synopsys' programs. Memory Maps New BehaviorsVarious changes have been made to creating and using memory maps. However, the versions of both the scan and load memory maps remain the same as previous QIS releases, they are compatible, no changes are necessary to the client program. 1. If a memory map does not exist and QIS is set to create memory map, it will create the memory map and keep in read only mode. QIS will overwrite this read only memory map if it has the permission to change the read/write permission mode of the file. If a memory map already exists and QIS is set to create memory map, QIS remembers the permission modes of the file and then tries to change the file to writable. If the file can be changed to writable, then QIS will overwrite the memory map and keep the new memory map file in the remembered permission modes (instead of read only). 2. Errors when creating memory maps are now reported with more details. System error would be reported in the warning message if available. e.g. QIS_Warning Failed to create memory map 'demo1.gds.scan.b64'. Permission denied. Detail warning messages are listed below. 3. If QIS fails to create a memory map, and the file is partially created, it is removed. 4. When using a memory map, the modification time stamp is checked against the GDSII file. If the memory map is older than the GDSII file, it will not be used. It will be overwritten if create meory map is turned on. 5. When using a memory map and the version of the memory map is not compatible with the QIS version, a specific warning message is sent. e.g. QIS_Warning Failed to use memory map 'demo1.gds.load.b64'. Version not supported. QIS v2.26 (05/2/2005)OASIS optimizationsThis version has detail OASIS open error messages which might help to better understand specific files we are having problem with. New Command - Set_Working_DirectoryBy default, QIS generates temporary files in the directory where QIS is started. Use this command to set a different working directory. OASIS Memory Usage and Open Speed ImprovementOASIS open speed has been improved by 1% to 40% with an average of 15%
speed up. Opening speed is now 1% faster than the corresponding GDSII
file on the average (with no compression and compaction on the OASIS
file). In previous versions, Get_Structure_Children and Get_Structure_Children_Num would show references to undefined cells as references to the first defined cell, and they would be listed multiple times. This has been fixed. e.g. Wrong behavior before: TOP,Cell_B,TOP,Cell_C Correct behavior now: Undefined_Cell,Cell_B,Cell_C ================================================================ OASIS Output File Should Not Be The Same As The OASIS Input File If the OASIS output file is the same as the input file, these errors would be generated: 1. For Save_OASIS and Save_OASIS_Structure QIS_Error\n Cannot save to the same OASIS file\n 2. For Get_OASIS QIS_Error\n Cannot save to the same OASIS file\n Get_OASIS\n /tmp/original.oas\n ======================================================================= GDSII Output File Can Be The Same As The GDSII Input File Except Extraction Under Non-Edit Mode For GDSII, only if Set_Load_Memory is Off and Get_GDSII is sent to output to the same GDSII file then a new error would happen. Other combinations are OK for GDSII to output to the same input GDSII file. Client->QIS Get_GDSII\n /tmp/original.gds\n Client<-QIS QIS_Error\n Cannot save to the same GDSII file\n Get_GDSII\n /tmp/original.gds\n QIS v2.24 (04/1/2005)OASIS Open Speed UpThis version opens OASIS files on the average 30% faster. Stopping OASIS OpenStopping an OASIS file open is more responsive in this version. Files with CBLOCKs were not stoppable during a big CBLOCK uncompression, this has also been fixed. Adding Existing OASIS CellAdding an existing OASIS cell via Add_Structure command did not generate an error. This has been fixed to output this error: QIS_Error\n Structure 'TOP' already exists\n Add_Structure\n TOP\nOutput OASIS Polygon Types Previous versions would only output polygons as type 4. This version would output all polygon types depending on the polygon. Vector Data Handle for GDSIIPrevious versions would not send out vector data with the data handle even if the Set_Vector_Handle command is set to on. This would happen if Set_Vector_Handle is sent to QIS before an Open_GDSII, Reload_GDSII or New_GDSII. This has been fixed. OASIS Top Cell Outline and LabelPrevious versions would not draw the outline and label for the viewing OASIS top cell if they are turned on thru Set_Structure_Outline and Set_Structure_Labels. This has been fixed. QIS v2.23 (03/14/2005)This revision is an OASIS editing alpha release. New OASIS CommandsPlease review each command in the documentation pages. New_OASIS, Reload_OASIS, Save_OASIS, Set_OASIS_Compression, Save_OASIS_Structure, Get_OASIS, Get_OASIS_Tcp Get_GDSII and Get_GDSII_Tcp Only Work For GDSIIThese 2 commands only work if a GDSII file is opened or a new GDSII is created through New_GDSII. They don't work for OASIS and will return back Get_GDSII and Get_GDSII_Tcp respectively right the way. Ignored Commands During File OpeningWhen a file is being opened, some commands sent to QIS are ignored.
The warning message for such a case has been changed from: If more than 64 commands were sent to QIS at once, only the first 64 commands were processed, the rest were skipped. This has been fixed. Many Add_Vector Commands Result In Wrong Extents Or Program HangPrevious versions might generate wrong structure extents or hang if many Add_Vector commands are sent to QIS. This has been fixed. QIS v2.15.2 (1/28/2005)QIS Crashes When Drawing On Huge Files (>20GB)Previous versions of QIS would crash if Set_Load_Memory is turned on to load the file into memory for editing and the memory needed to load is over 8GB. It would crash when actual GDSII data are drawn (when data are not filtered out) and they happen to be in memory space which is over 8GB. This has been fixed. QIS v2.15.1 (01/21/2005)This revision was made to the last non-OASIS release and is intended for production release to Synopsys for their March service patch of ICWB. New Command - Set_Add_Vector_HandleUse this command to control whether QIS returns a vector handle after receiving from the client an Add_Vector command. Set_Reference_Vector_Format: new argument OFFOff is a new argument to this command. When set to OFF structure/cell references and array references vectors (S and A vectors) will not be returned by QIS for Get_Vector, Get_GDS_Vector, Get_Display_Vector, Get_Vertex_Info and Get_Window_Info commands. this option was added in response to a request by Synopsys when making batch edits to a database. Delete_Vector - new argument ALLIf the keyword All is used instead of a vector handle, all paths and boundaries, old or newly added, in the current structure will be deleted. To undelete them, use Undelete_Vector. Requested by Synsopsys. Undelete_Vector - new argument ALLIf the keyword All is passed instead of a vector handle, all paths and boundaries, old or "newly added and then deleted", in the structure will be undeleted. Path Type 4 Support is AddedThis version supports paths with end type 4 (variable extension). These paths will be drawn correctly - however they are not output as type 4 but rather as type 0 (flush) and the endpoint coordinates are compensated according to the custom extension value. New Layer Always ON by defaultwhen a new layer is added to the database it is now ON by default. Set_Magic is Obsoletethe Set_Magic command (which controls AREF intpretation) is obsolete. QIS now correctly interprets AREF's without the need for the user to set this parameter. Array Bounding Box Calcuation FixedThe new AREF interpretation also fixes incorrect calculation of the array bounding box. GDSII Database Grid Problem FixedPrevious versions would truncate a grid value of 0.025 to have only 2 decimal points precision; all xy coords and measured distance were returned with incorrect values. This has been fixed so that the grid precision is no longer truncated. QIS v2.21 (12/22/2004)Improved Support for OASIS API callsAll commands should work exactly the same for both GDSII and OASIS except the following: editing, saving and memory maps related commands: API Call OASIS Behavior Add_Vector Returns N-4 "file not loaded into memory" Delete_Vector Does nothing Undelete_Vector Does nothing Add_Structure Does nothing Add_Layer Does nothing Set_DBU Does nothing Set_Resolution Does nothing Save_GDSII Returns Save_GDSII Save_GDSII_Structure Returns Save_GDSII_Structure Set_Output_Layer_Map Settings are not used because no GDSII file can be saved. Set_Memory_Maps_Dir Ignored for OASIS Set_Create_Memory_Maps Ignored for OASIS Set_Use_Memory_Maps Ignored for OASISDifferences between OASIS and GDSII Commands
If an OASIS file is loaded, this command returns only a single value - the grid. This is because for OASIS, the units are hardwired to UM. Set_Box_BoundaryThis API command is ignored by QIS for OASIS files (since they do not have the BOX entity) Set_Magicthis command (which modifies QIS's interpretation of GDSII array references) is ignored when reading an OASIS file. The API commands: Get_GDSII, Get_GDSII_Tcp, Get_Hires_Image and Get_Hires_Image_Tcp are now supported for OASIS files. Vector API Calls Implemented for OASISAll vector commands are now working for OASIS. API syntax is identical for GDSII and OASIS. Get_Data_Number_Per_Layer for OASISThe API call, Get_Data_Number_Per_Layer, calculates the total number of polygons/boundaries using the OASIS repetion values: e.g. 1 boundary with a repetition of 5 will be reported as 5. Boxes are alway reported as 0 for OASIS. Set_Array_Mode for OASIS RepetitionsOASIS repetitions do not correspond directly to the GDSII AREF. Hence there are some differences in reporting quantities when this API command is used for an open OASIS file: Array mode 0,1,2 only works for OASIS cell reference repetitions with N x M rows and columns. These cell reference repetitions are reported as 'A' (aref) vectors. Cell references with random repetitions are treated as separate cell references, array mode has no effect for random repetitions. These cell references are reported as 'S' (sref) vectors. Repetitions of elements other than cell reference are treated as separate elements. They are not reported as repetitions. This command now works for OASIS files. Set_Input_Layer_MapThis command now works for OASIS files Filtering and Set_Draw_Filtered_AreasAll OASIS filtering quirks in v2.20 have been corrected. OASIS filtering now behaves the same as GDSII. Dropped OASIS data fixedVersion 2.20 might not draw some data when element properties were represented in the OASIS file as modal variables. This has been fixed. OASIS Cell Related Error MessagesError messages for Get_Structure_References when an OASIS file is opened use the keyword Cell instead of Structure: QIS_Error\n Missing Cell name\n QIS_Error\n Cell 'ABC' does not exist\nCoordinates in DBU Version v2.20 incorrectly interpreted coordinates when vector unit was set to DBU. This has been fixed. Empty OASIS CellsVersion 2.20 reported empty OASIS cells' extents as 2147483.647,2147483.647,-2147483.647,-2147483.647. This has been fixed to report 0.000,0.000,0.000,0.000. Differences in QIS Report (GDSII vs OASIS)The QIS report output when an OASIS file is opened differs slightly from the GDSII report due to OASIS repetitions. User Unit: um Database Unit: 1000 (per um) Number of Cells: 7 Cell References: 8 (25) Boundaries: 82 (87) Paths: 14 (14) Vertices: 448 (473) Texts: 6 (6) Scan Time: 0 min 2 sec (elapsed time) 0 min 1 sec (CPU time) Load Time: 0 min 3 sec (elapsed time) 0 min 2 sec (CPU time) In the above example the number of boundaries reported shows 82(87). 82 indicates the number of boundary records and the 87 indicates the total number of boundaries when repetitions are counted. QIS v2.20 (12/10/2004)OASIS SupportThis is the first version with limited OASIS support. No changes to GDSII functions. 1. Only 1 OASIS or GDSII file can be opened by QIS at one time. If a GDSII file is opened and Open_OASIS is sent to QIS, QIS closes the GDSII file then open the OASIS file, and vice-versa. 2. All OASIS features are supported except: circles, properties (including cell extents) and validation signature. These 3 OASIS features are ignored by QIS. Cell extents properties will be supported in a future release. 3. A temp file, acs_oasis_dataXXX.bin, is created in the QIS startup directory when an OASIS file with CBLOCK data is opened. This file is removed when QIS exits or when the OASIS file is closed by the command Close_OASIS. The file contains the uncompressed data from the C-blocks. The following new OASIS specific commands have been added: Open_OASIS Close_OASIS Beta Release BehaviorOnly a limited set of the QIS functions are currently available when opening an OASIS file. API calls for getting vector data, loading file into memory, editing, saving to GDSII, GDSII extract, high res TIFF extract and memory maps for OASIS. Vector data will be supported in the next release. Draw FilteringDrawing of filtered areas might be incorrect if Set_Draw_Filtered_Areas is not set to Off. This will be implemented correctly in the next release. Cell Reference Filter ColorFiltered cell references are always drawn in the SDF color even if all layers in the cell are turned off. This will be implemented correctly in the next release. CBLOCK on AMD 64 LinuxOASIS files with CBLOCK might not be drawn correctly under AMD64 Linux. QIS might crash during opening. This will be fixed in the next release. OASIS Files > 2GBOpen/Display of OASIS file bigger than 2GB has not been tested. Speed/MemorySpeed and memory usage performance have not been optimized. The following API calls should not be used for OASIS files as they might cause QIS to crash: Set_Array_Mode Set_Load_Empty_Ref Set_DBU Set_Resolution Set_Input_Layer_Map Set_Output_Layer_Map Get_Data_Number_Per_Layer Get_QIS_Report Get_GDSII_Tcp Get_GDSII Get_Hires_Image_Tcp Get_Hires_Image Vector Data ----------- Get_Window_info Get_Vector Get_Vertex_Info Get_GDS_Vector Get_Display_Vector Get_Structure_References Get_Structure_Tree Edit ---- Save_GDSII_Structure Save_GDSII Add_Vector Delete_Vector Undelete_Vector Add_Structure Add_LayerGrid Resolution Bug Fix Previous versions of QIS did not properly interpret grid values which were not powers of 10 i.e. 0.001 is OK but 0.025 was not correctly converted resulting in all coordinate data off. This has been fixed. QIS v2.15 (11/4/2004)Invalid Structure ExtentsExtents for empty structures are initialized as (0,0) (0,0). If entities are added to an empty structure (during editing or boolean operations) the extents calculation still used (0,0) as the lower left or upper right coordinate possibly producing an incorrect extent. This has been fixed to reflect the true extents. QIS v2.14 (11/2/2004)New Command - Set_MagicThis command has been implemented to account for slight differences in how programs based on MAGIC write the AREF transformation parameters. If after opening a file one sees unusual or incorrect display it may be due to the way that QIS is interpreting the AREF transformations. The interpretation can be modified either by:
This API command should be set prior to opening a GDSII file and should not be changed once the GDSII file has been opened. Default setting = Off (non magic). RGB Color Allocation Issues for 8 bit palettted Displays The method in which color allocation is done has changed. If the client sets an RGB color and QIS cannot add this to the color allocation table because either: the color does not already exist in the system default color table or the color table is full, QIS will use the closest color currently available from the default color table. Previous versions issued an error message. Errors are no longer generated and this is now transparent to the client. This new behavior affects the following API commands: Set_Layers_Outline_Color Set_Layers_Fill_Color Error In earlier versions of QIS, if either command could not allocate the specified RGB color for the layer, QIS would stop on the first failed layer and the rest of the layers/colors specified in the list would not be set. However, QIS did not provide the client enough information to recover from such an error. In this version, QIS cycles through the entire layer/color list and attempts to set all layer/colors. If the desired RGB color cannot be allocated then QIS cycles through the available RGB colors already allocated and uses the "nearest" one based on the Euclidean color cube distance. The only time an error message would be returned is if it is absolutely impossible to get an allocation, which should be a rare or non-existant case.The QIS Client issues the following command: Set_Layers_Outline_Color\n 1-65535 12345 456,2-0 65535 0,3-7654 9876 65535,4-0 0 65535\n Assume that an color allocation error occurs for layers 1 and 3 because the exact RGB color cannot be allocated and no other color can be allocated but QIS succeeds in allocating a table entry for colors 3 and 4. It then returns the following error message: QIS_Error\n Error occurred while allocating the specified color\n Set_Layers_Outline_Color\n 1-65535 12345 456,3-7654 9876 65535\n |
QIS v2.13 (10/5/2004)Long GDSII File Name/PathThis version supports GDSII file name with path of up to 1023 characters long for Solaris, 1022 for HPUX, 4095 for Linux and 259 for Windows. Results_0.txt Temporary FileGet_GDSII_Tcp, Get_GDSII, Get_Hires_Image_Tcp, Get_Hires_Image would leave behind a temporary file Results_0.txt. This file is now removed after each operation. File Reading Buffer ControlAdded environment variable, QIS_GDSFIO_BUF_SIZE, to control the file reading buffer size. Default is 256K (262144). Specify a size in bytes which is a power of 2 (e.g. 1024, 8192, 65536, etc.) Get_Hires_Image might make QIS non-responsive OR Get_Hires_ImageQIS might not reply for some complex data, where in, some or more rows of pixels have less pixels in number than its compacted size. This has been fixed in this patch and will be in effect in our next official release. QIS v2.11 (09/21/2004)Crashes When Changing ResolutionPrevious versions might crash if new data are added and resolution is changed using Set_Resolution. This has been fixed. Data Not Scaled Correctly When Changing ResolutionPrevious versions might not scale data correctly when changing resolution if the data are newly added, then deleted and then undeleted. This has been fixed - data added and then deleted would also be scaled probably according to the resolution change. QIS v2.10 (09/20/2004)Long List of Structures Returned in BlocksFor the following commands: Get_Structure_List, Get_Structure_Children and Get_Structure_Children_Num QIS now returns the list in 64KB blocks. This enables the client to start processing the data without waiting for the complete string (which could be many MBytes for large files) to arrive. The internal change also speeds up QIS's response - as much as 10X. New Display Filtering CommandA new command has been added: Set_Draw_Filtered_Areas This command controls how areas (quad) which are smaller than the display filter are rendered. A area is divided into 4 quads and two crossing areas along the vertical and horizontal centerline of the rectangular area. Arguments On - draw all subdivisions (default) Off - all areas smaller than the display filter are not rendered. Quad - only the 4 quad regions are to be drawn as a colored area; the 2 crossing areas are not rendered. Cross - only the 2 crossing areas to be rendered.Added Linux AMD 64 Support QIS 2.10 is now available for the AMD64 Opteron in full 64 bit mode running under the Red Hat Enterprise 3.0 (for AMD64) operating system. The main advantage of 64 bit version is its ability to access more RAM. Improved Scan/Load for Files with large number of Structure DefinitionsThe scanning and loading routines have been rewritten to better handle large GDSII files that have hundreds of thousands or even millions of structure definitions. Scan Memory Map is UpdatedThe internal format of the scan memory map has been updated -- maps created by previous versions of QIS are not compatible and must be rebuilt. Should a client attempt to load an "old" memory map into this version of QIS a warning will be returned: QIS_Warning Failed to use memory map "abc". Version not supported or QIS_Warning Failed to use memory map "abc". File is corrupted.Startup Crash Fixed Previous versions of QIS would crash if it could not find the display or other missing X-windows support files. This has been fixed. Delay after File Open CorrectedPrevious versions of QIS were subject to a slight delay after the GDSII file had been opened and the Open_GDSII was complete. Instead of responding to a command QIS would return: QIS_Warning\n GDSII open in progress, command ignored.\n Get_DBU\n This forced the client to introduce a short delay prior to issuing a command after an Open_GDSII. This has been fixed. Linux compile now on E3The 32 bit version of Linux is now compiled on RH Enterprise 3.0. This should be compatible with 7.x versions of RH as well as the 3.0 version. QIS v2.08 (08/26/2004)Loading ErrorPrevious versions would generate a "Memory error occurred during loading" error if Set_Load_Memory is set to on and the GDSII file has multiple XY records inside a boundry, path or box entity record. Multiple XY records are syntactically incorrect in GDSII. This version would generate a warning for multiple XY records for boundary, path and box after scanning. e.g. QIS_Warning Illegal data at file positions: XY Coordinates,1329668144 The first XY record would be used, all other XY records in the boundary, path or box would be ignored. No Display Mode In addition to the previously documented commands, these commands will do nothing under no display mode: Set_Layers_Outline_Color Set_Layers_Fill_Color Set_Layers_Fill Set_Layers_Outline_Type Set_Layers_Map_File Set_SDF_Color Set_SDF_Outline_Color Set_SDF_Fill_Color Set_SDF_Fill No Display Mode Text Previous versions would output text vectors with extents box as (0,0) (0,0) under no display mode. This has been fixed. Structure Extents and Set_TransformationStructure extents returned by Get_Structure_Extents are now transformed by the Set_Transformation settings on the queried structure. It used to output the original GDSII file's structure extents disregarding the transformation settings set by the user. Get_GDSII and Get_GDSII_TcpThe keywords returned by these 2 commands, as well as the GDSII_Tcp_Data keyword, are changed from lower case (Gdsii) to upper case (GDSII). Get_GDSII and Get_GDSII_Tcp Output UnitPrevious versions would output a GDSII file with a different unit than the original file it was created from. This has been fixed. Corrupted Data CoordinatesIf there is a distance of exactly 16384 DB ticks between consecutive coordinates in a boundary or path, previous versions of QIS would report the data with corrupted coordinates. This has been fixed. Tiff Output Black On White/White On BlackThis version uses the background color (Set_Background_Color) as the background color of black and white Tiff output. Create Memory Maps Progress Message
When creating and saving the load memory map, QIS sends out progress
messages if Set_Progress_Message is on. The message says:
In the previous versions of QIS, it rounded a corner pixel of the triangle in high resolution bitmap(TIFF) output to the next pixel always. This behaviour is exemplified with the following triangle. x <- this pixel is rounded to the next one. xx xx xxx xxx xxxx xxxx xxxxx where, x is a pixel. QIS has been fixed and the above triangle is drawn the way it should be as shown below. x xx xx xxx xxx xxxx xxxx xxxxx
|
QIS v2.07 (08/12/2004)Memory Maps for ScanningThis version supports memory maps for scanning. Use Set_Use_Memory_Maps,
Set_Create_Memory_Maps and Set_Memory_Maps_Dir to control the usage
of memory maps. Here is a comparison between a normal scan/load time to a new scan/load time after a memory map has been saved. GDSII Size Normal Memory Maps (MB) Scan Load Scan Load 314.6 23 46 0 7 417.5 24 25 0 5 496.2 39 53 0 9 679.5 53 72 0 13 693.9 41 43 1 7 766.6 46 48 1 5 1058 78 75 0 7 1631.3 117 163 1 22 1862.2 137 140 0 17 1985.4 145 143 0 14 2075.2 128 193 0 41 3797.3 219 231 0 24 4710.6 237 343 0 34 14177.7 889 1079 13 83New Load Memory Maps Warning Message QIS_Warning\n Older versions might generate a Tiff output with an incorrect 1 pixel line on the left edge. This has been fixed. QIS v2.06 NTI (08/4/2004)New Command - New_GDSIIThis command starts a new database using the specified grid and unit as if an empty file has been opened. The previously opened file, if any, would be closed. New Command - Close_GDSIIThis command closes a previously opened GDSII file as if no file has been opened. It releases memory and unlocks the GDSII file so the file can be modified or removed by other programs. New Command - Set_Box_BoundaryPrevious versions always process GDSII box data as if they are boundaries, they are always drawn. This version does not draw box data because according to the GDSII definition, box data are not layout data. Use this new command to turn on to draw box data as if they are boundaries. New Command - Set_Vector_FullThis command controls whether to output only vectors which are entirely enclosed in the current window. If it is on, only vectors entirely enclosed in the current window are output; if it is off, all vectors intersect with the current window are output. New Version of Load Memory MapsThis version of QIS generates a new version of load memory maps which are not compatible with previous QIS. Older load memory maps will not be used by this QIS. Load memory maps created by this QIS cannot be used by previous QIS. Get_Data_Number_Per_Layer ChangeThis command now outputs the number of boxes per layer. e.g. layer-boundary:path:text:box 12-866:45:5:10 Get_QIS_Report Change
It reports an additional line for the number of box in the GDSII file. The number of lines of report is now 17. e.g. Get_QIS_Report 17 Number of Structures: 7 Structure References: 25 Array References: 0 Boundaries: 83 (81,2,0) Boxes: 5 (3,2,0) Paths: 18 (10,0) Vertices: 461 Texts: 6(--) Estimated Memory for Load Data: 0.0MB (3248 bytes) Total Memory for Load Data: -- (Load Mode is Off) Data Dropped: -- (Load Mode is Off) Scan Time: 0 min 0 sec (elapsed time) 0 min 0 sec (CPU time) Load Time: 0 min 0 sec (elapsed time) 0 min 0 sec (CPU time)Structure Extents Previous versions might output empty structure extents as (2147483.648,2147483.648,-2147483.647,-2147483.647). This version output (0,0,0,0). QIS v2.05 All Platforms (07/28/2004)New CommandsNew commands were added to this new release. Please check the Documentation section for more
detailed information about each command.
With the new functionality to stop opening a GDSII file, the new QIS behavior might prompt a problem in the client program. Changes might need to be made to the client program for it to work with this new QIS release. Please refer to "Scan/Load Interrupt" in the New Functionalities section. Bug Fix - Layer/Datatype Numbers Out Of RangeMemory Error Occurred During Loading when Layer/Datatype were out of range. Tiff extraction module had a bug for the polygons, which form a non-horizontal,
non-vertical line in the final high resolution bitmap image. This has been
fixed. With the new functionality to stop opening a GDSII file, the new QIS
behavior might prompt a problem in the client program. Changes might
need to be made to the client program for it to work with this new QIS
release. Please refer to "Scan/Load Interrupt" in the New
Functionalities section. If a boundary, path or text has no layer or datatype property, it is
default to be 0. Previous versions used the last known layer or datatype
from the previous data. QIS v2.04 All Platforms (07/20/2004)Undelete_Vector for Added DataUndelete_Vector now works for newly added data also. Use this command to undelete a previously-added-then-deleted data by passing in the vector handle to the data. e.g. Undelete_Vector\n TOP,N36\nwhere N36 is the vector handle of a previously-added-then-deleted data.. QIS v2.02 All Platforms (07/08/2004)First Implementation of Quad Tree Memory MapThis version includes the ability to process a GDSII file and write the quad tree memory map to a disk file. The ability to write a quad tree to disk and later to read it directly from disk to memory is of value when the same file will be opened many times without modification. When opening a GDSII file for viewing, QIS must first scan the file to determine the hierarchy and to build a list of structures. This scan data is placed directly in memory. A second pass through the file is used to build a quad tree which previously was also placed directly in memory. Only after the scan and quad tree were built could display begin. This version of QIS now enables the "client" to instruct QIS to write the quad tree data to disk. Upon opening the GDSII file at a later time, the QIS can use the quad tree on disk rather than re-calculating it. For large files where the calculation of the quad tree takes many minutes this is a definite advantage. This version does not yet write the scan data to disk -- hence each time a GDSII file is opened it must be re-scanned. The next version of QIS will support both scan and quad tree memory maps. New Commands (see documentation pages ...) Set_Memory_Maps_Dir Set_Create_Memory_Maps Set_Use_Memory_Maps QIS v2.01 All Platforms (6/22/2004)First Release with Preliminary Editing FunctionThis is the first release that has basic GDSII editing. Some notes (see documentation page for details)
QIS v2.00 All Platforms (6/15/2004)First Release with Quad Treethis is the first official release of QIS that includes a quad tree approach to handling GDSII files. Instead of loading the complete GDSII data file into memory, QIS 2.00 creates a quad tree map of the file and stores that in memory. GDSII data is read directly from disk as needed for the display. Benefits include: larger files can be handled since the quad-tree map is typically smaller than the GDSII footprint in memory. The RAM required for the quad-tree varies but one can typically estimate about 30% of the GDSII file size. Once zoomed in, the quad tree implementation pans and zooms much faster. QIS v1.36 All Platforms (6/1/2004)Update to UNIX versionsNew commands, originally done on windows for extracting GDS output and
getting high resolution bitmap (packbit tiff format), have been ported on all other
platforms.
On successfully starting at certain port number, QIS is suppose to send a message specifying the port number to standard error pipe(stderr). In case, where QIS is asked to select port number on its own( qis -port 0 , refer QIS v1.33), QIS sends the correct port number it starts on. However, if QIS was asked to start on specific port number( qis -port 6666 ), then it use to send incorrect port number to the pipe and internally use the correct specified port( in this case, 6666). This wrong behaviour has been fixed so that QIS sends the correct port number to the pipe as well. QIS v1.35 Windows only (6/19/2004)New Functionality and CommandsA new high resolution image rasterizer module has been added. This rasterizer enables QIS to produce monochome bitmaps up to 10,000 x 10,000 pixels and the primary usage is to work in conjunction with wafer inspection equipment. The high res bitmap is in TIFF format with packbits compression and can be sent back through a TCP/IP stream or written to a file. QIS v1.34 Windows only (4/22/2004)Version UpgradeQIS Windows updated to 1.34 from 1.07. All the commands which were available in the UNIX version, are now available with the Windows version. New Command - Get_Gdsii_Tcp This sends a request to QIS to get the flat GDS data in the
current selected window(set by set_window or set_exact_window). Data is
clipped at the window boundary. If the input file is hierarchical, the output file
is flat. This command disregards all the display filters and gets you all the data.
All output entities are boundaries. Any paths(non-zero width) are reduced to
boundaries. However, paths with zero width are ignored. Output file top structure
name is set to TOP. Entities are output on the same layer as the input entities.
The GDSII output file unit and resolution matches to that of input file. This also extracts the GDSII data in the current window and the output file characteristics are similar to those explained in Get_Gdsii_Tcp command. The only difference is that this command requests QIS to write GDSII data to the file instead of sending GDSII data over TCP/IP as in Get_Gdsii_Tcp. This command helps if the client and QIS are running on the same machine and if client plans to write the GDSII output data to some file. Qiscsample v1.03A new sample QIS client is now available with more commands and the C code used to write it. Qiscsample v1.03 - GDSII Extract Dialog User can specify the output file name for the extracted GDS data, which QIS sends in response
to "Get_Gdsii_Tcp". Please refer to QIS update report for details of Get_Gdsii_tcp command.
QIS v1.33 (4/1/2004)Port Number SelectionQIS selects the port number automatically when it is started with port number 0. In general, port numbers vary from 0 through 65535. 0 - 1024 are "well-known" or "reserved" port numbers. 1025 - 49151 are "registered" port numbers. 49152- 65535 are "dynamic" port numbers. QIS starts on the first available non-registered or dynamic port number. If non-zero port number is passed to QIS then it makes an attempt to start server at the specified non-zero port number. On successfully starting, QIS sends a following message to stderr (Standard error pipe). QIS Startup Status(0) Port Number(Port_Number) where Port_Number is the port number on which server has successfully started. In case of error it sends similar error message to stderr, QIS Startup Status(Error_Code) Error_String where, "Error_Code : Error_String" pair is one of the followings, 2 : QIS failed to start at the specified port number and IP address. 3 : License_Error where, License_Error is the detailed licensing error. 4 : Either the colfill.pat file does not exist in the qis directory or it cannot be loaded. 6 : Either the gdsfont.shx file does not exist in the qis directory or it cannot be loaded. 7 : QIS failed to open the display. In case of QIS (NTI) license error, detailed "Synopsys license error" is sent to stdout and our following error message is sent to stderr, QIS Startup Status(3) License error. QIS v1.32 (1/23/2004)Licensing CrashStructure Display Filter Color and Fill Pattern Older versions might crash when getting a license because of the version string "2004.3". This has been changed to "2004.03" and the crashing problem has been fixed. New CommandsStructure Display Filter Color and Fill Pattern
Structure references filtered out by structure display filter are
represented by an extent box of the structure. The color and fill
pattern of these references can now be specified through these 2 new
commands - Set_SDF_Color and Set_SDF_Fill. e.g. |
QIS v1.31 (1/12/2004)Pixmaps SizeThe various pixmaps are resized to be exactly as specified in Set_Image_Size. New Command - Set_Exact_WindowSet_Exact_Window\n Structure references are filtered out and represented with an extent box if it's extents width and height are both smaller than the structure display filter size. Older versions use just the width or height. So, for the same settings, this version could be slower because long and thin references are not filtered in this new version. QIS v1.30 (12/10/2003)More outline and fill colorsMore Colors Support For Outline Color and Fill Pattern Color Additional colors can be added to colfill.pat using RGB values. RGB range is 0-65535. New Command - Get_Color_Errors
After QIS starts up, send this command to get if there are any outline colors and fill pattern colors that were not allocated successfully. e.g. Get_Color_Errors\n 51,52,53\n 84,85,86,87,88\n This means outline color 51, 52 and 53 are not allocated, they are default to white. And fill patterns 84, 85, 86, 87 and 88 are not allocated. They are default to the original 0-7 color as specified in colfill.pat. If there are no color errors, the response from QIS is: Get_Color_Errors\n \n \nNew Command - Get_Data_Number_Per_Layer Get the number of boundaries, paths and texts per layer. The numbers are before explosion counts, not after. Only per layer counts, no layer/datatype discrimination. So data on layer 1 datatype 2 and layer 1 datatype 5 are both counted for layer 1. Syntax is layer-boundaries:paths:texts e.g. Get_Data_Number_Per_Layer\n 0-1:0:1369,1-545:0:0,2-158:0:0,3-2265:35:0,4-1872:363:0,5-186:0:0\nGet_QIS_Report Change Added the number of lines of report. e.g. There are 16 lines of report: Get_QIS_Report\n 16\n Number of Structures: 7\n Structure References: 25\n Array References: 0\n Boundaries: 83 (81,2,0)\n Paths: 18 (10,0)\n Vertices: 461\n Texts: 6 (20)\n Estimated Memory for Data: 0.0MB (3248 bytes)\n Total Memory for Data: 0.0MB (3248 bytes)\n Data Dropped: No\n Scan Time:\n 0 min 0 sec (elapsed time)\n 0 min 0 sec (CPU time)\n Load Time:\n 0 min 0 sec (elapsed time)\n 0 min 0 sec (CPU time)\nFill Patterns Upside Down More Colors Support For Outline Color and Fill Pattern Color Older versions would draw the fill patterns upside down while they look correct in the layer dialog box. This has been fixed. QIS v1.29 (11/21/2003)New Synopsys LicensingThis version uses a new licensing scheme which checks for ICWB license. Solaris 32 and HPUX 32 versions are dropped. QIS v1.28 (11/15/2003)Up to 75% Less Memory UsageThis version could use up to 75% less memory comparing to previous
versions. e.g. Memory usage of 1GB could be reduced to 250MB.
This would be true if the GDSII file has polygons with more than 4
vertices and are manhattan data. QIS v1.27 (11/5/2003)Wrong Vector Coordinates In HPUX 64 Bit VersionThe last HPUX 64 bit version would output invalid numbers for negative coordinates in vector mode if the unit is DBU. This has been fixed. QIS v1.26 (10/24/2003)New Command - Get_Structure_Children_NumThis works similar to Get_Structure_Children which output a list of structures which the specified structure references. In addition, it output the number of references for each structure. e.g. child1,5,child2,10 which means child1 is referenced 5 times, child2 is referenced 10 times. New Option - No Display ModeAdded a no display mode to QIS so it can be run on systems with no
DISPLAY specified. To run QIS in no display mode, specify -nodisplay
as a command line option. Previous versions use and remember layers' color, fill pattern and
line type in the file gdsplot.map in the startup directory.
This version default to not use a gdsplot.map file. To set QIS to
use gdsplot.map, use Set_Layers_Map_File\nOn\n. To turn it off, send
Off. The loading time has speed up when sort data by layer is turned on especially
under Solaris. QIS v1.25 (10/14/2003)New Structure Display Filter Speeds Up displayQIS 1.25 includes a new structure display filter. All structure references smaller than the specified structure display filter size (in pixels) are drawn with an extent box. Internal details appear once the user zooms to the point that the reference extents exceed the the filter size. The default setting for the structure filter is 20 pixels. The structure display filter uses a dummy fill for structures that have been filtered out, giving the user a better view of the layout even for large filter values. This enables the user to keep the filter value large (20 pixels) which can greatly speed up the display speed. To display all details at all zoom levels, set structure display filter = 0. The entity display filter still has precedence over this structure display filter. It is normal to set the structure display filter to be considerable larger than the entity display filter. The New QIS API command is: Set_Structure_Display_Filter_Size, to set the structure display filter size in pixels. Report CPU TimeGet_QIS_Report reports the CPU time for scanning and loading in addition to the elapsed time. The CPU time is user time plus system time. This is available in UNIX and Linux and is useful for profiling and benchmarking. Slow Start Up FixedIn a wide area network environment, QIS might require as long as 60 seconds to start due to the method that was used to create fill patterns. This has been corrected. Solaris 64 Crashes on Linux DisplayPrevious verisons of QIS on Solaris 64 would crash when using the X-server on Linux display. This has been fixed. HPUX 64 Bit Version ReleasedQIS 1.25 has been successfully ported to HPUX 11 64 bit. QIS v1.24 (9/18/2003)Structure Query Crashv1.22 would crash when a command to get a non-existence structure's info is sent to QIS. This has been fixed. QIS v1.22 (9/10/2003)Scanning and Loading Speed UpStoring and accessing cells in memory is much faster and efficient. For most files we see improvements in scanning and loading of up to 10-15 percent. But for files with large number of cells or cell references we saw major speed improvements of up to 30x. QIS v1.16 (8/15/2003)Scanning and Loading Speed UpPrevious versions of QIS would stop scanning and hang up if the GDSII file had more than 2 billion This version has a new structure names finding routine which would speed up scanning and loading 10+ times depending on the similarity of the names and the number of structures. QIS v1.14 (7/25/2003)Send Out Pixmap HandleQIS sends out the drawable (win or pixmap) handle when it acknowledges a Set_Image_Size command. e.g. QIS sends out Set_Image_Size\n 119234567\nThe client can access this drawable and get the image as long as QIS and client both uses the same DISPLAY with a visual of the same depth. QIS uses the default depth. QIS Do Not Send Out GIF The Set_Image_Format command can be used to tell QIS not to send out a GIF image after redraw finishes. e.g. Set_Image_Format\n Off\nTurn it back on anytime to get a GIF after redraw. Set_Image_Format\n GIF\n.Get_Image still works anytime to get a GIF. QIS Draws Directly To Client's Window Added Set_Draw_Window_ID command to send a client's window handle to QIS and let QIS draws directly to the client's window. To make QIS back to draw to a pixmap, send -1 as the argument. With this turned on, Get_Image should not be used and the window handle from Set_Image_Size would not have a valid picture. QIS v1.10 (7/11/2003)QIS Hangs While Scanning Huge GDSII FilePrevious versions of QIS would stop scanning and hang up if the GDSII file had more than 2 billion boundaries/paths or total number of vertices. The 32 bit version of QIS has been fixed to issues an error message and quit gracefully. It is expected that files of this size will generally require QIS 64 which can address much more memory. QIS_Error X.XXGB of memory is needed to view bigfile.gds. Maximum memory is 4GB. QIS v1.09 (7/3/2003)$DISPLAY Environment VariableForces QIS to use the local machine's display for pixmap creation for drawing, specify the $DISPLAY environment variable before launching QIS. e.g. export DISPLAY=localmachinename:0 Using the local X server can result in much faster performance when a remote display has been invoked by the client. Reduced Polling TimeReduced the period of TCP/IP socket polling from 300 milliseconds to 5 msec. Tests shown with clients indicate that polling of 5 msec significantlyl reduces the apparent display latencey without significant overhead penalty. Faster GIF OutputThe function that converts pixmap to GIF has been improved thus improving the speed when a GIF image is returned to the client. File Scan Speed Up and Reduced MemoryFor GDSII files with a large number of structure references, this version uses less memory during scanning and scans the file faster. Layer and Datatype ControlsPrevious versions has 2 separate sets of layer settings, one for just layers only, another set for defining layer:datatype combinations. If only layer 9 were turned on, it would switched to use layer 9 color instead of layer 9:20 color, which appeared as a color error to the users. In this version, layer related commands have been modified to use just a single set of settings for all layer:datatype. Specifying a layer number, without the datatype, selects all layer:datatype combinations for this layer number.e.g. Set_Layers_On\n 9\n means turn on layer 9:2, 9:20 and 9:30. These following coommands are affected by this change:
set_layers_fill set_layers_outline_type set_layers_on set_layers_off set_geometry_marker Load Data In Layer Order: Set_Data_By_Layer On/Off When this command is set "on" data is loaded in layer order on a per structure basis. The command must be set "on" prior to opening a file. Changing this setting once a file has been opened has no effect until the file is reopened. Using this function will slow down loading time; scanning time and drawing time should not be affected. More memory will be used during loading but the total memory used after loading should remain the same when comparing to no layer sorting. QIS v1.06 (03/11/2003)New Command Set_Vector_Grand_Parents New Command Get_Window_Info New Command Set_Vertex_Info_Radius |
QIS v1.05 (12/15/2002)Array/Row QIS v1.04 (10/08/2002)New Command Set_Reference_Vector_Format short form -- only the type (array or single structure reference), insertion point, scale, rotation and mirror are generated. e.g. S,TOP,10.0,20.0,1.5,0.0,X long form -- no change from previous versions: the parent structure, the bounding box and the rows and columns are added. Use the keyword Long or Short as the argument to the command. Default is long form. Numerical Product Name/Number Numerical Multiple QIS with 1 License QIS v1.03 (09/05/2002)Flexlm Licensing QIS v1.02 (08/06/2002)Nesting Level 0 In connection to this, one can specify to outline and/or label the specified structure on nesting level 0. The outline will be the extent box of the structure and the label will be centered within the extent box. In general, all commands with nesting level controls are changed. In version 1.01, 0 is used to set all levels, now it is the keyword All. And now 0 means level 0. Commands changed: 1. Set_Nesting_Levels Argument is now All or a nesting level number >= 0. Error messages: a. Missing argument - All|1 number(s) b. Invalid argument. Argument format - All|1 number(s) 2. Set_Structure_Outline and Set_Structure_Labels Argument is now Off or All or a list of nesting level numbers >= 0 separated by commas. Error messages: a. Missing argument - Off/All/list of hierarchy level(s) b. Invalid argument. Argument format - Off/All/list of hierarchy level(s) 3. Get_Structure_References Arguments are structure name; then All or 1 to get all or just the first reference; then All or a nesting level number >= 0 to specify the nesting level, this third argument is optional. Error messages: a. Invalid argument. Argument format - string,All|1,All|number b. Missing argument. Argument format - string,All|1,All|number c. Missing structure name d. Structure 'ABC' does not exist 4. Get_Structure_Tree Arguments are structure name, then All or a nesting level number >= 0 to specify the nesting level, this second argument is optional. Error messages: a. Invalid argument. Argument format - string,All|number b. Missing structure name c. Structure 'ABC' does not exist Wrong Layer Numbers Result in Blank Drawing QIS v1.01 (06/26/2002)First Linux Release Get_Structure_References New Syntax Get_Structure_References\n structure_name,All or 1,nestinglevel\n where: structure_name name of the structure for which you wish to find the instances. The search starts at wherever the program is currently located in the hierarchy. You would normally expect to be at a point in the hierarchy that is above the level of the structure that you are investingating. All return all references to this structure no matter how many there are. 1 returns just the very first instance and then stops. nesting_level how deep down the hierachy to look. If not specified, the default is to use whatever has been set using the Set_Nesting_Level command. The server returns the same data as the Get_Vector command returns return but only the refences information. If for some reason a refernce to an "empty" structure is encountered, this is not returned. New error responses: If the second argument is neither ALL or 1 or the 3rd argument is not a nesting level (i.e. an integer 0,1,2,3...) QIS_Error\n Invalid argument. Argument format - string,All|1,number\n Get_Structure_References\n ABC,Junk,Junk or if the 2nd argument is missing: QIS_Error\n Missing argument. Argument format - string,All|1,number\n Get_Structure_References\n ABC New Command - Get_Structure_Tree Get_Structure_Tree\n structure_name,nestinglevel\n where structure_name starting point for the tree nesting level optional. If not specified defaults to current value of nesting level. All references are output, the current viewing window and current array mode settings do not filter out the output. Error Response checks for a valid argument in the form of a string first and then a nesting level integer ... QIS_Error\n Invalid argument. Argument format - string,number\n Get_Structure_Tree\n ABC,Junk\n QIS Exits With Error - License Not Released Fixed a bug in QIS that drops 1st Argument of the Command QIS v1.00 (06/06/2002)No GUI - better speed New command - Set_Time_Out and Set_Marker_Shape New command - Set_Marker_Shape Changed commands - Set_Geometry_Marker Changed commands - Set_Progress_Message New Error/Warning Messages 1. Errors after Open_GDSII: a. If detected memory to load the GDSII file is over 4GB. QIS_Error\n xxxGB of memory is needed to view /fullpath/xxx.gds.\n Maximum memory is 4GB.\n b. If system does not have enough memory to load the GDSII file, the memory needed is report in GB or MB. QIS_Error\n x.xxGB of memory is needed to view /fullpath/xxx.gds.\n The system does not have enough memory.\n or QIS_Error\n x.xMB of memory is needed to view /fullpath/xxx.gds.\n The system does not have enough memory.\n c. If the file cannot be opened. QIS_Error\n The selected file 'xxx.gds' is invalid or empty.\n d. If the file does not start with 0602, then it is not a GDSII file. QIS_Error\n The selected file 'xxx.gds' is not a GDSII file.\n e. If the GDSII file does not have any structure definition. QIS_Error\n No structure defined in the GDSII file.\n f. If there is a memory related error during scanning. QIS_Error\n Memory error occurred during scanning.\n Warnings after Open_GDSII, the GDSII file can still be scanned and loaded successfully but the data might not represent the original intended design (e.g. a truncated GDSII file): a. If a data/GDSII record cannot be read from the file completely, the file might be truncated. QIS_Warning\n Incomplete data at file position 123456, file might be truncated.\n b. If end of library does not exist in the GDS file. QIS_Warning\n Missing end of library.\n The file will be treated as if the GDSII library ends at the end of the file. The file can be scanned and loaded successfully. c. If a structure is not ended with an end structure. QIS_Warning\n Missing end of structure for structure 'ABC'.\n The open structure is artificially ended at end of library. d. Structure definitions inside a structure. QIS_Warning\n Illegal structure definition at file positions:\n ABC,24\n DEF,789\n JUNK,55987\n These structure definitions are ignored and all data that comes after such structure definitions belong to the structure definition before it. Only the first 20000 illegal structure definitions are reported. e.g. Structure Definition ABC Path 1 Boundary 1 Structure Definition DEF Path 2 End of Structure DEF is ignored and path 2 belongs to ABC. e. If an end of structure does not have a preceding structure definition. QIS_Warning\n Illegal end of structure at file positions:\n 248\n 77668\n These end of structures are ignored. Only the first 20000 illegal end of structures are reported. f. If any data/record is defined outside of a structure definition-end structure, the data are ignored. e.g. QIS_Warning\n Illegal data at file positions:\n Boundary,123\n Layer,177\n Path,456\n Width,480\n Text,789\n Structure Reference,4321\n Structure Reference Name,4330\n Array Reference,6677\n Path,9900\n Path,11000\n Path,33333\n Only the first 20000 illegal data/record are reported. g. If there are structures referenced but not defined in the GDSII file. QIS_Warning\n Undefined Structures\n StructureABC,StructureXXX\n If there are QIS_Warning, Open_GDSII will still be sent to mark a successful file open. If there are QIS_Error, Open_GDSII will not be sent because the open failed. Crash During Scanning/Loading Wrong Color In GIF Images Coordinates Unit Here is the set of commands which has data
in the specified unit: Default Image Size Startup Files QIS Startup Error Exit Code QIS Startup Error Exit Code Wrong Get_Image Picture Structure List Duplicate Structure Definition QIS_Warning\n Multiply-defined structures\n StructureABC,StructureXXX\n QIS v0.07 (05/07/2002)New Command Get_GDS_Vector Get_Display_Vector Get_Structure_References Get_QIS_Report Get_QIS_Report\n Number of Structures: 47\n Structure References: 5427\n Array References: 510\n Boundaries: 5765 (1332,1260,2)\n Paths: 398 (145,87)\n Vertices: 52298\n Texts: 1371 (5702)\n Estimated Memory for Data: 0.6MB (668132 bytes)\n Total Memory for Data: 0.6MB (668132 bytes)\n Data Dropped: No\n Scan Time: 0 min 1 sec\n Load Time: 0 min 1 sec\n If the report is not available (e.g. before a GDSII file is opened), QIS sends out just the keyword - Get_QIS_Report\n Get_QIS_Version Get_QIS_Version\n 0.07\n If the version number is not available (some errors), QIS returns just the keyword - Get_QIS_Version\n Modified Set_Image_Size Set_Image_Size\n 3000,2000\n If QIS cannot reallocate memory for the new image size, the old size is kept and this error is returned: QIS_Error\n Memory error occurred when resizing image\n Set_Image_Size\n 2345,1234\n If successful, after resize, QIS returns: Set_Image_Size\n There is, of course, additional computation required as the image size is increased so do not set an image size arbitrarily large. With this change, this version of QIS does not show the picture inside the viewing area. The "Draw To Screen" control in Windows is always turned off. Default image size is 1000,1000 in UNIX and 1001,1001 in Windows; however the client should be set the image size according to the client's window size. All pending commands are on hold during resizing and they are resumed after resizing. Therefore the client should not send additional commands to the QIS server until after receiving the Set_Image_Size acknowledgement. Get_Vertex_Info Modified Get Vector Data handshaking modified When the stream of vectors is complete, the starting command is sent: Get_Vector, Get_Vertex_Info, Get_Display_Vector, Get_GDS_Vector or Get_Structure_References. Exit code for Start Up Open GDSII Acknowledgement QIS v0.06 (04/04/2002)New QIS Product Number Improved Handshaking with Client QIS_Error\n Error message\n Original command received\n Original command received.....\n IP and Port Number Control -ip the -ip option enables the user to start QIS on the specified IP address in addition to specifying the port number. This is useful when there are more then 1 IP addresses (network adapters) on the machine or if you want to start QIS just for local machine connection (in which case specify 127.0.0.1 as the loopback IP address). -port with the -port option you control which port QIS listens on. You can now use the argument -port 0 and QIS will find the first available port rather than use a "hardwired" port. Examples To start QIS on default port and default IP address:
To start QIS on specific port and default IP address:
To start QIS on default port and specific IP address:
To start QIS on specific port and specific IP address:
Use 127.0.0.1 as the IP address if you want to only allow local communication. New Response from Get_Image & Image_Ready Image_Ready\n 12345\n 12.500,50.000,80.050,120.005\0\0....\0 # 0 padded to total 64 bytes Gif Image OR Image_Ready\n 12345\n 12.500,50.000,80.050,120.005\0\0....\0 # 0 padded to total 64 bytes BITMAPINFOHEADER # 40 bytes 256 RGBQUAD Color Table # 1024 bytes Bitmap Image The purpose of returning the precise layout coordinates is to aid the client in building its own image map so that the user on the client side can perform functions such a zoom window or accurately select regions. Structure Outline and Label Use these two commands to control the drawing of a bounding box and structure name for structure references. This is useful when you want to present to the user an overview of the hierarchy but do not wish to show detail inside of the various structures. The structure label is drawn starting at the insertion point. Both these commands support hierarchy - to draw a bounding box for references on the first level of the current viewing structure, pass the parameter 1; for the second level, pass parameter 2. Multiple levels can be also passed. e.g. Set_Structure_Outline\n 1,3,4,6\n Set_Structure_Labels\n 2,5,6,7,12\n The levels for labels and outline can be different. Use 0 to set all levels, use Off to turn it off. e.g. Set_Structure_Labels\n Off\n Text Height - The text height of the structure label is scaled on-the-fly to be approximately 9 pixels tall no matter what the zoom level is. If the extent of the structure is smaller than approximately 2 pixels, the label and structure outline outline may not be displayed: even if the display filter is set to 0. AREF Rule - If a level deeper in an array reference is specified and the array mode is 0, then the outline or label is not drawn. Array mode 0 takes precedence over outline and label. Get_Vertex_Info Get_Vertex_Info\n 246.050,300.650\n This command is similar to Get_Vector except that instead of returning all items in the entire display window, QIS returns only primitives that are within 4 screen pixels from the specified point. The search algorithm detects boundary and path vertices (not edges), text and structure insertion points(not the bounding box edges). If the structure outline bounding box is drawn or array reference mode is 0, then the 4 corners of structure references outline bounding boxes are also considered. Set_Background_Color Set_Background_Color /n Black /n Set_Scale_Bar The scale bar can be placed in 1 of the 4 corners of the viewing area. Send 1 of these controls - UL,LL,UR,LR to turn on the scale bar and specify it's location. Send Off to turn off the scale bar. e.g. Set_Scale_Bar\n LR\n or Set_Scale_Bar\n Off\n Set_Get_Vector_Path To revert to returning vector data as paths send Set_Get_Vector_Path with argument "Path" . This is the default behavior. Fixed QIS Hang Problem Fixed Client Reconnection Problem Windows Specific Issues Open_GDSII Command no longer Re-opens the Display Save View As GIF Upgrade to our Windows Sample Client Code This version of the client sample program will pop up the QIS_Error commands sent by QIS if there is an error in the commands QIS received. QIS v0.05 (03/15/2002)New Option for Vector Coordinates Set_Vector_Unit\n DBU\n to change the state of QIS to output database units, and Set_Vector_Unit\n UU\n to change the state of QIS to output user units. If not specified the default is user units. This unit applies for all vertex coordinates, path widths, insertion points, text extent boxes and structure extent boxes. Note: Scale and rotation angle are always output as floating point values. New Get_Vector Syntax Examples
Boundary New Syntax: Client: get_vector /n Server: get_vector /n B,TOP,5:0,4, 0 0 10 0 10 10 0 10 /n Text Old Syntax: T,TOP,5:0,10,12,0,1.0,0.0,N,0,0,4(x1,y1),(x2,y2)(x3,y3)(x4,y4),"text string" Text New Syntax: T,TOP,5:0,10,12,0,1.0,0.0,N,0,0,4,x1 y1 x2 y2 x3 y3 x4 y4,"text string" QIS v0.04 (03/08/2002)
New API Command: Set_Layers_Outline_Color Set_Layers_Outline_Color layer_num-outline_color_number or Set_Layers_Outline_Color layer_num:data_type-outline_color_number depending on whether you are in datatype mode (i.e. you are specifying datatype along with layer), or in layer mode (you are only specifying layers) The available outline color numbers are 0-7. You can set multiple layers with one command by separating the assignments with commas. Set_Layers_Outline_Color 5-7,6-2,7-80,5,0 Do not mix datatype and layer type assignments: 5:0-7,6-2 is illegal. New API Command: Set_Layers_Fill Use this command to set a layer's fill pattern. The fill pattern is a value between 0 and 1024 and is an entry into the colfill.pat table. Syntax: Set_Layers_Filllayer_number-fill_pattern_numberor layer_number:datatype-fill_pattern_numberSame rules for multiple assignments as Set_Layers_Outline_Color. New API Command: Set_Layers_Outline_Type Use this command to set a layer's outline type. For display this is either 1 or 0 where 1=show the outline and 0=don't show the outline. Syntax: Set_Layers_Filllayer_number-outline_typeor layer_number:datatype-outline_type Same rules for multiple assignments as Set_Layers_Outline_Color. ExampleSet_Layers_Outline_Type 0-1,1-1,2-1,3-1,4-1,5-0,6-1,7-1 New Command: Get_Colorfill_Pat Use this command to obtain the colfill.pat file. This file contains a list of available fill patterns. This is an ascii file -- each entry has a number and is followed by a RGBCYMK bitmap that is either 4x4,8x8,16x16 or 32x32. These patterns are used to fill all boundaries on a given layer. Syntax: Get_Colorfill_Pat /n The server will first echo the command. The next line is the number of bytes to follow. After that the contents of the colfill.pat file are sent. New Command: Set_Array_Mode This command controls how arrays will be displayed. There are three modes:
1 - draws the outer row and column cells 2 - draws the full array of cells. Syntax: Set_Array_Mode\n 0 or 1 or 2\n Get_DBU This command tells QIS to return the database information stored in the header of the GDSII file. Two numbers are returned. 1st number is the user unit resolution. For example if you are working in um and you set a resolution of 0.001 um then the first number would be 0.001. If you are working in mils and you need 0.1 mil resolution the first number will be 0.1. Second number: length of a database tick in meters. In the first case since you need 0.001 um resolution 1 database tick is 10E-9 meter. In the second case, the number would be 2.54E-5 m because you need 10 of these to make one mil. Here are some examples:User's Setup GDSII DBU Info micron, 0.001 resolution 0.001 , 1E-9 micron, 0.25 resolution 0.25 , 2.5E-7 mm 0.001 resolution 0.001 , 1E-6 mil 0.1 resolution 0.1 , 2.54E-5New API: Get_Vector This command tells QIS to output the details of all the data within the specified window area, in user units. Paths and boundaries are only output if: SREF and AREF info is only output if: All text strings are output if the string belongs to a structure qualified for output (see above.) Since we cannot know the font height we cannot accurately determine if the text string is smaller than the display filter size. New API Command: Set_Reference_MarkerThis command controls the drawing of the structure reference marker. This is a small diamond shaped marker locating at the SREF's insertion coordinate. Applies to raster data only. syntaxSet_Reference_Marker On | Off Set_Geometry_Marker This command controls the drawing of the entity reference marker. This is a small diamond shaped marker locating at first coordinate of the entity. Applies to raster data only. syntaxSet_Geometry_Marker On | Off Set_Text_Mode This command controls the drawing of text. Updated Commandsthe following commands have been modified so that they no longer generate an automatic redraw. 1. Open_Structure2. Set_Fill 3. Set_Outline 4. Set_Window QIS v0.03 (03/01/2002)Sample Windows Client in C++We now include sample code for a simple Windows client (written in C++) so that those who wish to write a Windows client for QIS can examine it for reference. This code is supplied for your reference only and is not necessarily an optimum implementation; we will improve and enhance the example as we get more experience on both the server and client side. Added API Command: Set_Image_Size The client can now control the size of the bitmap image returned by the server. The client sends the Set_Image_Size command followed by the width and height of the bitmap in pixels. ExampleSet_Image_Size\n 512,512\n For now, you cannot request a size that is greater than the image size of Qckvu when maximized on the screen of the machine that QIS is running on due to the method used to extract the image from the frame buffer. We plan to remove that limitation in a future release. New API: Set_Image_Format (Windows Only) This API command should only be used when both the server and client are running under Windows. The command instructs the server to return the display bitmap in the Windows GDI format instead of using GIF. Returning the GDI format is much more efficient since the client need not process the GIF in order to display it. ExampleSet_Image_Format\n Bitmap8C\n this returns 8-bit Windows GDI using BI_RLE8 compression mode If this mode is set, the image QIS returns will be in this format: Image_Ready\n - OR Get_Image (depending on what the client sent ...) 12345\n - the number of bytes to follow BITMAPINFOHEADER - the first 40 bytes will be BITMAPINFOHEADER 256 RGBQUAD Color Table - the next 1024 bytes will be an array of 256 RGBQUAD xxxxxxx - then the image bytes in BI_RLE8 compression format Use the header, the color table and the image directly in the GDI BITMAPINFO structure then use SetDIBits to create a GDI bitmap. Refer to sample code for detail information. In order to turn off the GDI mode and return to the default GIF mode use the API command: Send Set_Image_Format\nGIF\n Client Disconnect and Reconnect With earlier versions of the server, if a client connected and exited, a new client might not be able to connect to the same server requiring that the server be stopped and restarted. This has been fixed. |