| Master PDK generator for gf180mcu | |
| --------------------------------- | |
| Run "make" to generate all files for each PDK. | |
| This make script takes the source files and generates files for local (efabless) | |
| PDK names "gf180mcuA", "gf180mcuB", etc. | |
| The definition of each PDK is made in the Makefile using defines; e.g., | |
| -DMETAL4, etc. | |
| These are based on a subset of the 15 supported process variants shown in the | |
| Global Foundries documentation. See the Makefile for a complete description. | |
| The make script makes use of the python script "preproc.py" (in the ../common | |
| directory) to parse each source file for "#ifdef ..."-type macros. The syntax | |
| is similar to that used by the C preprocessor (cpp) but does not assume C | |
| language syntax in the input file, so is generally better to use than cpp | |
| (has less unexpected/unintentional behavior). See comments in the preproc.py | |
| script for a full list of macros that it accepts (short list: #ifdef, #ifndef, | |
| #define, #include, and boolean operators ||, &&, and !). | |
| Files generated: | |
| .tech techfile for magic, general user use (limited DRC, no GDS) | |
| -GDS.tech techfile for magic, vendor mask layers | |
| .tcl PDK script for magic | |
| -BindKeys key binding script for magic partly matching Cadence defaults | |
| .magicrc magic startup script (copy to local directory as .magicrc) | |
| _setup.tcl netgen setup script for LVS | |
| .sh qflow master setup script, standard 1.8V digital | |
| .par graywolf setup file, standard 1.8V digital | |
| The installation directory below PDK_ROOT is the name of the PDK; e.g., | |
| gf180mcuA/ 3-metal backend stack | |
| gf180mcuB/ 4-metal backend stack | |
| gf180mcuC/ 5-metal backend stack (9K) | |
| gf180mcuD/ 5-metal backend stack (11K) | |
| (Again, see the Makefile for the complete description.) | |
| The installation directory hierarchy below the PDK name looks like the following: | |
| libs.tech/ technology and setup files | |
| magic/ magic techfiles, startup file, PDK script, | |
| and key binding script. | |
| netgen/ netgen setup file | |
| qflow/ qflow scripts and graywolf setup files. | |
| ngspice/ SPICE models (ngspice compatible) | |
| libs.ref/ foundry data | |
| gf180mcu_fd_pr/ primitive devices w/fixed layout | |
| gf180mcu_fd_sc_7t/ Digital standard cells (7 track height) | |
| gf180mcu_fd_sc_9t/ Digital standard cells (9 track height) | |
| gf180mcu_fd_io/ I/O pad cells | |
| gf180mcu_fd_sram/ SRAM macros | |
| gf180mcu_fd_nvram/ NVRAM macros | |
| Each subdirectory of libs.ref is further divided into sections based on the | |
| file type. These sections include one or more of: | |
| cdl/ CDL netlists | |
| doc/ Foundry documentation | |
| gds/ GDS files | |
| lef/ LEF macro files | |
| lib/ Liberty timing files | |
| mag/ Magic files derived from GDS | |
| maglef/ Magic files derived from LEF macros | |
| spice/ SPICE netlists (ngspice compatible) | |
| techlef/ LEF technology files | |
| verilog/ verilog modules | |
| The target installation destinations assume the directory structure above. Changing | |
| this requires editing the source files. | |