Web Page Logo v3

Differences between RTCR v2 and RTCR v3

Viraj Kakadia
Program Architect
December 17, 2018

The last release of RTCR v2 (v2.08) used Artwork's NextGenRaster as the rasterization engine. RTCR v3 has been re-written from scratch; it uses the QisMLib architecture and API organization. Consistent with this new architecture the name is now QmRTCR. Below is a summary of the differences:

  1. EXEs and DLLs
    As can be seen in the directory ${install}/artwork, the listing of binaries required to run QmRTCR have changed. Some are gone: RTCRClient64.exe, RTCRImageServer64.dll and NextGenRaster64.dll while new ones: qismlib64.dll and qismraster64.dll have been introduced. This is a new package, independent of NRTCR v2.
  2. Library
    As of today (Dec 17, 2018) we have not released a library implementation. This package includes a new application qmrtcrclient64.exe which serves as a replacement of RTCRClient64.exe. There is no counterpart for RTCRImageServer64.dll yet. It will require some additional work to complete and we plan to start this work in January 2019.
  3. Job Control
    We've modified the job specification to give users more flexibility.
    RTCRClient64.exe was capable of running multiple jobs sequentially. Each job started by a '-job' argument followed by arguments that defined it's settings. Each job created it's own sub-directory under the ${outdir} specified by the user. The limitation was that the input GDSII file could be specified only once and all jobs would work on that single file.

    With QmRTCR, each job can have it's own input GDSII file and output directory. It's specified as '+job:{input_file},{output_dir}'. There MUST be at least one +job argument for the program to continue. All the options can be specified as command-line arguments or in a config file (which is specified as the first parameter with the '@' sign)
  4. Non-Isotropic Pixel Density
    -dpi: and -pixelsize: arguments can take different X and Y resolution. If the Y resolution is omitted, then Y resolution is same as X (which was the behavior before v3)
  5. New Masking Function
    Based on a customer's request we have implemented a new masking function: -mask:{minx},{miny},{maxx},{maxy}. If defined for a given job, the area inside the mask region is rasterized per spec. The areas outside the region (extending to the view cell's extents) is scratched off (so that it's set to background - black or white depending on the value for -invertimage). There can only be ONE mask per job. If a second -mask is found for a job, it overwrites the previous setting.
  6. Removed Un-needed Options

    A number of options that were no longer applicable have been dropped. These were present in v2.0 - v2.8 only for backwards compatibility.

  7. Documentation
    In lieu of our discontinued TWiki, all of the documentation for QmRTCR can be found in ${install}/reference/qmrtcrclient.readme and ${install}/reference/version.readme. There is currently no API and therefore no documentation for that. It will be presented in the API header file(s) when it's ready just like the various QisMLib packages. qmrtcrclient.readme contains the full usage description, correction file syntax, annotation file syntax etc.
  8. Demo
    There is a demo in ${install}/examples that runs out of the box with 3 jobs. p1.bat is the batch file while p1.cfg contains the settings (command-line arguments). Running qmrtcrclient64.exe without any arguments will display program usage and arguments.