Overview of Diva Verification
As of 4.4, the Diva rules are not part of the technology file per se but are compiled as separate files at runtime. When a library is created using the "Compile tech file" option, links are made pointing to the files divaDRC.rul, divaEXT.rul, and divaLVS.rul in the $cdk_dir/techfile directory. This way, users automatically see the effects of any changes made to the site-wide Diva files. When a library is created using the "Attach to existing tech file" option, no links are made, and the divaXXX.rul file from the attached tech library is used.
Extensive use is made of the if( xxxAvailable ) construct to conditionally include rules that affect optional layers (ie, layers that are not common to all MOSIS processes). You can check our page listing all the supported layers and in which processes they appear.
In order to get the correct value of lambda and technology, SKILL code contained in divaTechdesc.il is referenced at the beginning of divaDRC.rul and divaEXT.rul. This code works but is deficient in that it might not work when called from ivDRC() or ivExt(). This is because it uses LookupLibProp() and geGetEditCellView(), which both rely on having a "current window." If a user writes a script that calls these commands and there is no current window, the verification will fail. This needs to be addressed at some point.
We have pages devoted to each of the major aspects of Diva:
--Slipa 12:17, 27 February 2006 (EST)