MBS2TIFF/GDS Revision History
Version 1.46 Windows/Linux 8/25/2022Empty Pattern File
This version fixes a bug that results in a crash when a pattern file referenced in a job deck contains no data. This happens only under certain conditions, namely when the options corresponding to "Placeholder for ROI Exception" and "Enable Large Pattern Smart Seek" in the Advanced Settings Dialog are both enabled.
This release is strictly a 64 bit release and as such requires a 64 bit compute platform.
Version 1.44 Windows/Linux 5/14/2019MEBES parser improvement
This version parses the last 6 bits, instead of all 16 bits, of the 16-bit MEBES code to see if it is a Mode 5 Compaction code (21).
Version 1.42 Windows 2/15/2018Program Crash
If a pattern in a jobdeck is "Invalid", it failed to set appropriate values and caused the program to crash. To fix this issue, we added a check for each pattern before rasterizing it.BMP and TIFF outputs do not match
"Large Pattern" was not supported for BMP output in the previous version. This issue was fixed.Blank output for home view
This can be controlled by the advanced settings "Enable Large Pattern Smart Seek".
Version 1.41 Windows 10/17/2017Software Update
Upgrade to Windows version to reflect fixes done in the Linux version.
Version 1.40 Linux 6/20/2017Reverse Tone Support
Reverse Tone support for TIFF output flow. The option can be set in the GUI and from the command line.
Version 1.39 Linux 5/20/2017New Control - Large Pattern Smart Seek
A new control was added in the Advance menu for enabling/disabling an optimization related to large pattern files.New Control - View MEBES Job Deck File
A new control was added in the main menu to view the MEBES job deck file with a text editor. This is actually a copy of the job deck file to avoid corruption of the original file.
Version 1.38 Linux 5/17/2017Software Upgrades
This version fixes usability issues with respect to Home View extraction for large pattern files with small address size.
Version 1.37 Linux 5/14/2017Fine MEBES grid issue
This version fixes the problem with small MEBES grid/address units (0.0004 um) in conjunction with large cell extents (~110000 um) and large ROI extents.New Features - Main Dialog
The main menu now includes a control to view the output for both TIFF and GDSII (if you provide the location of the respective viewers in the Advanced Settings dialog).New Features - Advanced Dialog
It is now possible to develop the home view for pattern files with small mebes grids/address units - To do so, you need to set the check boxes for the "Placeholer for ROI Exception" and "X Mark for large patterns" in the Advanced Settings dialog.
mbs2tiff -nogui -levels:1,10 -tiff -width:5000 -large_roi_extbox -mark_large_pattern -log:nogui.log demo.jb nogui.tif
Version 1.36a Linux 5/3/2017New Features - Main Dialog
By default, Multi Window mode is OFF.
Enable Logging is ON by default.
Version 1.36 Linux 5/2/2017New Features
Version 1.36 Windows 11/2/2016New option "-mark_large_pattern"
In previous releases, when MBS2TIFF detected a large pattern data, it drew approximated extent box and marked with an X.
With the new command line option, the user has the flexibility to enable/disable X marks on rendered large pattern data.
Version 1.35a 10/21/2016New MBSCHK 1.17
A new version of MBSCHK v1.17 has been incorporated into MBS2TIFF.
This version fixes a bug in generating GDSII files where the pattern file grid is finer than 1 nm. Previously, a pattern file with a grid of 0.0005um created empty GDSII output files because the database unit has collapsed to zero. This has been fixed.Software Enhancements
Optimizations have been made to the smart search algorithm for multi-window extraction mode.
There are new command line options with the latest version.
-info header info only
Version 1.35 09/21/2016Placeholder Improved Approximation
When generating a placeholder for a pattern file insertion that cannot be processed because it would overflow the internal database, we now determine the extents based on stripes containing data as opposed to using the entire stripe array (even when many are empty.) This generates a more accurate placeholder representation and is especially helpful when the full extents of a placeholder was covering other small and important features.Bug Fix for Overflow Pattern File
A crash was occurring when the job deck instantiated only a single pattern file where the combination of extents and address unit would cause an overflow. (This did not occur when there were multiple pattern files referenced by the job deck.) This has been fixed.
Version 1.34d 09/13/2016-seektest diagnostic - Update to mbschk v1.16 rcs 1.165
A diagnostic function which is activated on the command line using -seektest:N, performs N random seeks over the extents of the MEBES file and proceeds to read 2K of data after each seek. The results are then reported to the log.
The purpose of this diagnostic is to test the IO system to determine the maximum rate of seeks/reads that can be achieved. This would then be a limiting factor in how many GDSII clips could be generated even if further compututation took zero time.
Version 1.34c 09/09/2016multi-threaded clipping - Update to mbschk v1.16 rcs 1.163
a new directive, -clip:N, has been added where N is the number of concurrent threads that can be used to clip trapezoids extracted by the -win argument. Using more processors for clipping should increase throughput if clipping is the bottleneck.
Version 1.34b 09/7/2016Updates to the mbschk utility v1.15
Two important updates were made to mbschck (on Windows) in order to aid a customer in evaluating the speed with which GDSII clips can be extracted.
This version includes "exact" window mode by default. This means that only polygons that cross or are contained by the user specified window will be included in the output; all other trapezoids are dropped. Previous versions extracted all of the trapezoids belonging to any stripe that was contained by or crossed the selection window.New Offset Argument
Includes new command line option -offset where the origin of the output GDSII file is set to LL corner of the user window; the default behavior preserves the original coordinates of the MEBES file: the LL of the stripe extents is 0,0. This was added because modern MEBES files can have a combination of size and resolution that exceeds GDSII's internal dynamic range.
Version 1.34a 08/30/2016Updates to mbschk v 1.13
Fixed a number of bugs associated with seeking to stripe positions that do not exist; dealing with stripes that have no data; dealing with transitions between segments; dealing with empty or low density segments.Reporting Bug Fix
Fixed a bug related to statistical reporting which resulted in crashes.Two flavors - win32 and Console
The Win32 version of mbschk is provided as mbschk.win32.exe - its output needs to be captured by redirection. For example:
c:\wcad\mbs2tiff\mbschk.win32.exe mebes_file.A0 -gds > report.txt
mbschk.exe is now a console application. When running it, a DOS box will pop up and output messages from the software will get displayed there.
Version 1.34 08/26/2016Updates to mbschk v 1.12
Adding the following functions to mbschk in order to use it as a platform to estimate the rate of clips that can be extracted from large MEBES files.
As part of a proof-of-concept, mbschk has a new smart search designed to demonstrate an greatly improved rate of window extraction.new window extraction for mbschk
As part of a proof-of-concept, mbschk has two new window arguments. (prior to this when extracting GDSII the entire MEBES file was converted to GDSII.)
The syntax of the window file is:
LLx, LLy, URx, URy LLx, LLy, URx, URy LLx, LLy, URx, URy LLx, LLy, URx, URy
mbschk is for a single pattern file only. It cannot open or process job decks
All trapezoids in any stripe that intersects the user defined window will be extracted to the GDSII file. This results in many more trapezoids being written to the GDSII file than actually should be. More accurate filtering will be added in later version.
Version 1.33 07/19/16New HandleLargePattern mode
This version includes the "HandleLargePattern" mode to prevent MBS2TIFF from trying to parse a pattern file that would produce an integer overflow; instead, when mbs2tiff detects such a condition it will "draw" a placeholder on screen.Update to FastMode
"FastMode" will only be applied to very fine pattern files: patterns with grid < 0.0001. This change enables the program to "alias" these fine pattern files while still correctly rendering less fine ones. It is of particular use when viewing a combination of alignment marks and labels which have low resolution and small extents, together with a large product pattern file which has a very fine grid and would take a long time to render.GUI Changes
This version includes changes in GUI.
Version 1.32 05/26/16New Fast mbs2tiff display mode - No Detail
When "No Detail" mode is turned ON, Mbs2TIFF outputs stripe boxes (not the actual data, but a stripe box) whose density exceeds the user specified threshold value.
For example, if "No Detail" is used with a value 0, then it will output all Non empty stripe boxes to TIFF.
On the command line the argument is: -nodetail:T where varies from 0 (default) to 1.
Version 1.31 03/23/16Program Updates
Fixed crashing issue in OpenFile() after calling acsMBS_Close() function once.
Version 1.30a Linux 01/28/16Flexlm Licensing Library 18.104.22.168
This release contains v22.214.171.124 FLEX utilities as well as artwork daemons (32 and 64 bit).
Version 1.30 Linux 12/18/15Linux Updated to RHEL5
This version was compiled under RHEL5. It will only work on RHEL5 and (other compatible flavors) and up.Increased Max Number of Segments
A pattern file with more than 10,000 segments caused a crash in mbs2tiff. This version now supports up to 32K segments and has protection against overflowing this static data space; In this case, the pattern file can not be loaded and message to this effect is issued.
Version 1.26 Linux 12/11/15Traceback for Debug
This version is the same as v1.25 except that it has a traceback system.
The traceback system is normally off by default and must be enabled with the command line option -traceback. Only invoke traceback when debugging because it could potentially decrease throughput if left on by default.
Version 1.25 Linux 11/11/15Incorrect TIFF output for 200GB MEBES file
Fixed the issue with bad TIFF output when job deck included a MEBES file that was 200GB.
Version 1.24 Linux 10/17/15New 64 bit Module
This version includes a 64 bit executable to better support large files. The 64 bit modules are located in a folder named 64bit in the bin folder.
The program GUI is located in the the bin folder and is invoked as follows:
path_to_mbs2tiff_installation_folder/bin/mbs2tiff using 32 bit engine path_to_mbs2tiff_installation_folder/bin/mbs2tiff64 using 64 bit enginembschk update what version of mbschk?
mbschk,a pattern file checking utility, is now large file compliant. The previous release did not read patterns in excess of 2GB.log file
The log file is now more verbose and additional information is now printed to the log file but not to the screen.
For each unique pattern file that is referenced in the job file, the mirror and tone flags are reported.
Version 1.23 Windows 06/04/15Sample Code for C#
This release contains a new folder that contains Visual Studio 2010 sample code/project for a C# command line executable as well as the supporting C# bridge code to make use of mbsextract.dll.
Version 1.23 Linux 11-16-12Large file support
This version supports large pattern files and job decks that reference large pattern files, i.e. those above 4GB in file size. Even though the product had been compiled with the correct LARGEFILE compiler directives (_LARGEFILE_SOURCE and _FILE_OFFSET_BITS=64) some system functions (fseek, ftell, and stat) were not used properly in this context and some computations with respect to file offsets were not made carefully (which resulted in integer overflows). These issues have been resolved.
Version 1.22 10-19-12Log file
This version has enhance logging and runtime reporting. Otherwise it functions the same as v1.20.
Version 1.19 2-16-12Empty Output TIFF file
When the window selected was outside the mask area, mbs2tiff could create an empty output file. To avoid this problem, use the new option -no_window_check.
Version 1.18 10-16-11Sub micron window error
This version fixes the issue with the command line option -window:llx,lly,urx,ury
This version supports multi-threading and striping of data when the -union[:M] value is used. Now data compaction takes advantage of as many cores are available (up to a maximum of 4). Before the user had to make a judicious choice for the optional value of M (the number of items to be collected before unionization would occur on output to the GDSII stream) in a trade off between processing time and generating GDSII minimizing the number of artifacts resulting from fractured MEBES data. On modern platforms the user can specify M to be 500000 or 5000000 (the current default is still 5000).
Version 1.17 08-06-10window command line option
This version fixes the window command line option. Previous versions only allowed window conversion within the GUI.
Version 1.16 10-2-08Slice code 99
This version supports slice code 99 (9 inch), 88 (8 inch), 77 (14 inch) in the job deck.
We now recommend using -union:50000 - this improves the compaction of the output GDSII file.
Version 1.15 9-2-08Improved MEBES reader
This version of mbs2tiff/gdsii fixes a bug in the MEBES V reader.
Version 1.13 7-21-08Standard output
This version of mbs2tiff/gdsii is capable of sending the output to the standard output instead of a file.
MBS2TIFF/GDS - a MEBES to GDSII/TIFF/BITMAP conversion utility
Version 1.11 12-18-04New Feature - Layer Mapping
First release of MBS2TIFF/GDS. Supports Job deck, and Window extraction. Runs as a standalone application or as DLL for companies who OEM the software.
Job deck levels can be mapped to different layers in the GDSII o/p. By default, ofcourse, job deck levels are mapped to the same layer numbers in GDSII extracted o/p. This feature is only available for command line run (with -nogui). Command line option, which helps for this feature is, -levels:l1[-m1],l2[-m2] where, l1,l2 are the original level numbers to be extracted m1,m2 are the respective mapped layers in GDSII o/p (optional) This command, ofcourse, is valid only for MEBES job deck data. Examples: i) mbs2tiff inputmebes.jb out.gds -nogui -gds -levels:1,2,3 This implies to extract levels 1, 2 and 3 from inputmebes.jb job deck to GDSII o/p. Since no mapping is done, output GDSII file out.gds will have respective layers 1, 2 and 3. ii) mbs2tiff inputmebes.jb out.gds -nogui -gds -levels:1-55,2,3-44 This implies to extract levels 1, 2 and 3 from inputmebes.jb job deck to GDSII o/p. Level 1 is mapped to 55 and level 3 is mapped to 44. Level 2 is not mapped to any other. Output GDSII file out.gds will have respective layers 55, 2 and 44. To use this feature from libmbsext.so/mbsextract.dll directly use: MBSEXTRACT_API int acsMBS_SetLevelMap(const short inLevel, const short outLevel); This function will set the input level(inLevel) to desired output layer(outLevel) in GDSII o/p. User should call this function for each level, which needs different mapping before calling any extract GetROIImage functions(extract functions). b) Silent mode(-silent) does not pop up any messages or dialog boxes. In the previous versions, it use to message once the extraction is done. However, this was unsuitable for the batch(command) mode run and hence the change.Bug fix - Layer default in MEBES to GDSII
Default layer was different in the extracted GDSII o/p from a single MEBES pattern, on Solaris and Windows. This was the case whenever -union option was used. This has been fixed.Bug fix - Global Mirroring in Job Deck file
Global Mirroring option in MEBES job deck was not in effect for GDSII extraction. This has been fixed.
Version 1.10 09-28-04First Release
First release of MBS2TIFF/GDS. Supports Job deck, and Window extraction. Runs as a standalone application or as DLL for companies who OEM the software.
GDSII output is supported in addition to Windows Bitmap and TIFF format in this version. All the Chip specification's in the MEBES job deck are represented as structure in GDSII format. All the levels in the job deck are represented as layers in GDSII format. Internally, each chip's level is a structure in itself in GDSII world and all it's placements(ROWS in job deck) are AREF's in GDSII world.Command Line Options
Here are the command line argument options, mbs2tiff [options] input_file output_file options -nogui Run in comamnd line mode. No Mbs2tiff main dialog box will be popped up. On Windows, only the progress dialog box will pop up, which can be disabled with -silent option. -silent Disable percent progress messages. This will help if someone wants to run the program in the back ground without any pop-up or print messages, except the status message when finished extracting. -win:llx,lly,urx,ury Specify extract window in microns(MEBES units). llx,lly are the lower left x co-ordinate and y co-ordinate respectively. urx,ury are the upper right x co-ordinate and y co-ordinate respectively. -levels:l1,l2,l3 Specify levels in the job deck to be extracted. l1,l2,l3 are the level numbers. This is valid only for job deck data MEBES data. -tiff Specify TIFF output format. This is the default format. -gds Specify GDSII output format. -bitmap Specify Windows bitmap output format(Windows only). -log:LOGFILENAME Specify log file LOGFILENAME to be created. -width:WIDTH Specify output width equal to WIDTH in pixels(dots). Default width is 1000 pixels(dots). This is valid only for TIFF/BITMAP output format. -height:HEIGHT Specify output height equal to HEIGHT in pixels(dots) Default width is 1000 pixels(dots). This is valid only for TIFF/BITMAP output format. -union:POLYNUM By default, the mbs2gds program will not perform a union boolean operation on the MEBES trapezoids as this results in the fastest conversion. However the resulting GDSII file can be huge because MEBES stores each figure much more compactly than GDSII does. The -union:POLYNUM directs the program to read in the specified number of polygons and to attempt to unionize them into larger more complex polygons. This will greatly decrease the size of the resulting GDSII stream file. If the value of POLYNUM is very large the time it takes to perform the unionization can grow exponentially. Our experiments with a few files indicate a value of 500 for POLYNUM gives reasonably good compression without a large penalty in conversion speed. This is valid only for GDSII output format.Window Clipping
Depending on the extract window, if some portion of the pattern array in job deck is entirely inside the extract window, then those patterns are extracted as AREF in GDSII world. The patterns, which are clipped with the extract window are obviously flattened using boolean operation. So, creating array references is by default and only works for job deck MEBES data. We do not create strutures for an array of polygons in a pattern, which we do in mbs2gds with -aref option.mbsextract.dll (Windows) , libmbsext.so (Solaris)
Updated functions: If the extract window is inside the home extents of the MEBES data and if there is no data in that extract window, library creates a empty file. However, in the previous versions, we did not have a way to know about this case. Following 2 functions have been updated in this version to help in this case, a) int acsMBS_GetROIImageBits (int OutputWidth, int outputHeight, unsigned char **Image, long *ImageSize) This function returns with ImageSize assigned to 0, which indicates that the bitmap bits does not have any data. b) * int acsMBS_GetROIImageToDisk (int outputWidth, int outputHeight, const char *filename, long *ImageSize) This function returns with an warning code of 6, which indicates that empty file is created. New functions added, * int acsMBS_Init(char *ParentDir); This function should be called before using any other functions to initialize the library. Argument Values ParentDir : Parent Directory of the program using the library. * int acsMBS_Close(); This function should be called just before application exit's to clean up the library, if not clean.