Start a new topic

I need to automate the netlist extraction and comparison, can FAB 3000 do this?

I need to automate the netlist extraction and comparison, can FAB 3000 do this?
1 Comment

I need to automate the netlist extraction and comparison, can FAB 3000 do this?


Yes, FAB 3000 has two options:  Using the FAB 3000 Import Matrix file, or write a C Script.

(1) Using the FAB 3000 Import Matrix file:

Note: FAB 3000 has an "import matrix file" which allows anyone to create a sample text file which lets you automatically import gerber/drill files, assign layer colors/types, assign panel, run netlist, and compare nets.  Perhaps the matrix file will work fine for you right now; to find out more information about the "FAB Import Matrix", please view the Help Manual:
http://www.numericalinnovations.com/help/FAB3000.pdf


(2) Writing a C script. 
FAB 3000 can interpret scripts written in the C/C++ language.   See below for a sample script on how to automate the process.



/////////////////////////////////////////////////////////////////
// 1. This script assumes that you have already imported
//    all layers and definted their layer types.
// 2. This script assumes that you have already imported netlist
/////////////////////////////////////////////////////////////////

#include "Fab3000.h"

int main ()
{
    char buffer[200], sPatternList[100], sFile[250];

    //Extract Netlist
    princ( "Performing Netlist Extraction..." );
    int nResult = uiToolsNetlistExtraction( 0, 0 );
    if( nResult==-1 )
    {
        sprintf( buffer, "Script Cancelled - An error occurred during Netlist Extraction." );
        princ( buffer );
        return 0;
    }
    princ( "Netlist Extraction - Done." );

    //Compare Nets
    princ( "Performing Netlist Comparison..." );
    nResult = uiToolsCompareNets();
    if( nResult==-1 )
    {
        sprintf( buffer, "Script Cancelled - An error occurred during Netlist Comparison." );
        princ( buffer );
        return 0;
    }
    princ( "Netlist Comparison - Done." );

    ///////////////////////////////////////////
    //Display Net Errors
    ///////////////////////////////////////////
    if( nResult>0 )
    {
        sprintf( buffer, "%d Netlist Comparison Errors Found!", nResult );
        princ( buffer );

        //If 0 is returned No was selected
        //If 1 is returned Yes was selected.
        nResult = messageBox( "View Netlist Errors...", "1 or more Netlist Compare erros have been detected.\n\nDo you wish create a PCF?", dbcMessageBoxQuestion );
        if( nResult )
        {
            //Select Netlist File
             nResult = fileDialog( "Select Netlist Comparison Report file...", "PDF File (*.pdf)\nAll Files (*)", sFile );
            if( nResult )
            {
                dbGeneratePdfNetErrors( sFile, "Netlist Comparison", dbcInch );
            }
        }
    }
    else princ( "Success - No Netlist Comparison Errors Detected." );

    return 0;
}


Login or Signup to post a comment