Numerical Matrix File
User Reference
DFMCHECKER array

Without even clicking a button you can verify if your design ready for manufacturing. DFMCHECKER array is optional. It is used to run the DFM Checker on an imported job.

Note
For a detailed explaination of each DFM Check visit Why are Advanced DFM (Design for Manufacturability) Checks Necessary?
Common Fields in the DFMCHECKER array
Description
cell=NAME The name of the Job or Panel to perform DFM Check. Required. If the cell is empty, or defined as "active" or "current" - the active cell will be used.
units=MIL|MM Units to use for this dfmchecker array. Must be either: MIL or MM
maximumErrorsPerRule=NUM The maximum number of Errors found per DFM Rule. After this number has been reached the DFM Checker will no longer search for that specific DFM Rule. This prevents unnecessary redundancy. (Default: 50)
maximumErrorsTotal=NUM The maximum number of DFM Errors found. After this number has been reached the DFM Checker will end. This prevents unnecessary redundancy. (Default: 500)
tolerance=VALUE DFM checks must also exceed this tolerance value to become a DFM error. This prevents false errors due to mathematical rounding. (Default: 4 microns)
output_text_file=FILE Generates a Text Report File after DFM Checker is complete. The file path may be either Absolute or Relative. (When possible always use relative paths)

Example:
output_text_file=Customer234/dfm_report-23433.txt
output_pdf_file=FILE Generate a PDF Report File after DFM Checker is complete. The file path may be either Absolute or Relative. (When possible always use relative paths)

Example:
output_pdf_file=dfm_report.pdf
output_gerber_file=FILE Generate a Gerber File after DFM Checker is complete. This gerber file makes it easier to visually spot DFM errors when loaded over existing design. The file path may be either Absolute or Relative. (When possible always use relative paths)
These DFM Checks are the most commonly used and required.
BASIC CHECKS Description
signal_minimum_pad_size=NUM Minimum Pad size allowed. Must be a positive number using units.
signal_minimum_smt_pad_width=NUM Minimum SMT pad width allowed. Must be a positive number using units.
signal_minimum_trace_width=NUM Minimum trace width allowed. Must be a positive number using units.
signal_minimum_clearance_outer_layers=NUM Minimum spacing on top or bottom layers. Must be a positive number using units.
signal_minimum_clearance_inner_layers=NUM Minimum spacing for inner layers. Must be a positive number using units.
signal_minimum_clearance_track_track=NUM Minimum Clearance: Track-Track. Must be a positive number using units.
signal_minimum_clearance_track_pad=NUM Minimum Clearance: Track-Pad. Must be a positive number using units.
signal_minimum_clearance_pad_pad=NUM Minimum Clearance: Pad-Pad. Must be a positive number using units.
signal_minimum_clearance_rout_copper=NUM Minimum Clearance between NC Rout and metal. Must be a positive number using units.
signal_hole_registration=NUM Verify hole registration. Must be a positive number using units.
signal_find_redundant_pads Locate duplicate pads.
signal_find_unconnected_lines Locate copper traces without pads.
signal_features_connection Ensure copper geometries are connected.
signal_verify_text_features Ensure text doesn't overlap or obstruct other geometries.
signal_invalid_polygons Search for polygons that self-intersect.
signal_minimum_annular_ring_drill_pad=NUM Minimum drill to pad annular ring. Must be a positive number using units.
signal_clearance_from_board_edge=NUM Minimum clearance from board edge. Must be a positive number using units.
drill_minimum_drill_size=NUM Minimum drill hole diameter. Must be a positive number using units.
drill_find_double_hits Find drill double hits.
drill_find_pads_without_drills Find pads without drill.
drill_find_plated_drill_without_pads Find plated drills without pad.
drill_find_touching_holes Find drill holes that touch.
drill_minimum_clearance_plated_drills_copper=NUM Minimum Clearance between Plated Drills and Copper.
drill_minimum_clearance_unplated_drills_copper=NUM Minimum Clearance between Non-Plated Drills and Copper.
drill_minimum_clearance_drills_rout=NUM Minimum Clearance between Drills and Rout paths.
drill_minimum_clearance_rout_rout=NUM Minimum Clearance between Routs.
drill_minimum_drill_hole_spacing=NUM Minimum Clearance between Drills.
silk_minimum_silkscreen_line_width=NUM Find minimum silkscreen line width. Must be a positive number using units.
silk_find_silkscreen_over_mask=NUM Locate silkscreen over soldermask. Must be a positive number using units.
silk_clearance_board_edge=NUM Minimum clearance allowed from Silkscreen to board edge. Must be a positive number using units.
silk_minimum_silkscreen_text_height=NUM Find silkscreen text that is too small in height. Must be a positive number using units.
silk_find_silkscreen_over_copper_text=NUM Find silkscreen over copper text. Must be a positive number using units.
silk_minimum_clearance_silkscreen_copper=NUM Minimum Clearance between silkscreen and metal. Must be a positive number using units.
silk_minimum_clearance_silkscreen_drill=NUM Minimum Clearance between silkscreen and drill. Must be a positive number using units.
silk_minimum_clearance_silkscreen_rout=NUM Minimum Clearance between silkscreen and NC Rout paths. Must be a positive number using units.
silk_minimum_clearance_lineline=NUM Minimum Clearance between silkscreen (line to line). Must be a positive number using units.
silk_minimum_clearance_linepad=NUM Minimum Clearance between silkscreen (line to pad). Must be a positive number using units.
silk_minimum_clearance_padpad=NUM Minimum Clearance between silkscreen (pad to pad). Must be a positive number using units.
mask_find_undersized_mask_clearances=NUM Locate small mask openings. Must be a positive number using units.
mask_find_missing_mask_clearances Find missing mask clearances.
mask_minimum_clearance_mask_copper=NUM Minimum Clearance between mask and copper. Must be a positive number using units.
mask_minimum_clearance_mask_rout=NUM Minimum Clearance between mask and NC rout paths. Must be a positive number using units.
mask_minimum_clearance_drawdraw=NUM Minimum Clearance between mask objects (not flashes). Must be a positive number using units.
mask_minimum_clearance_drawpad=NUM Minimum Clearance between mask objects and pads. Must be a positive number using units.
mask_minimum_clearance_padpad=NUM Minimum Clearance on mask layers between pads. Must be a positive number using units.
plane_minimum_annular_ring=NUM Locate small mask openings. Must be a positive number using units.
plane_minimum_clearance=NUM Locate small mask openings. Must be a positive number using units.
plane_minimum_width=NUM Locate small mask openings. Must be a positive number using units.
plane_minimum_drill_clearance=NUM Locate small mask openings. Must be a positive number using units.
plane_minimum_rout_clearance=NUM Locate small mask openings. Must be a positive number using units.
plane_find_drill_registration=NUM Drill to Plane Registration.
paste_minimum_pad_width=NUM Minimum Width: SMT Stencil Pad
paste_minimum_annular_ring_drill_pad=NUM Minimum Annular Ring: Drill-SMT Stencil Pad
paste_minimum_clearance_pad_border=NUM Minimum Clearance: SMT Pad to Board Edge
paste_minimum_clearance_pad_pad=NUM Minimum Clearance: SMT Stencil (Pad to Pad)
These DFM Checks ensure your PCB is ready for manufacturing.
Manufacturing/Assembly Checks Description
signal_find_nonfunctional_pads_inner_layers Find non functional pads on internal layers.
drill_detect_drill_plane_shorts Detect potential shorts between drill and plane layers.
mask_find_mask_slivers=NUM Find mask slivers. Must be a positive number using units.
mask_detect_partial_clearances Detect partial clearances in mask.
plane_minimum_thermal_airgap=NUM Locate minimum thermal air gap. Must be a positive number using units.
plane_minimum_thermal_spoke_width=NUM Locate minimum thermal spoke width. Must be a positive number using units.
paste_minimum_pad_aspect_ratio=NUM Minimum Aspect Ratio: SMT Stencil Pad
paste_minimum_pad_area_ratio=NUM Minimum Area Ratio: SMT Stencil Pad
paste_minimum_paste_volume=NUM Minimum Volume: SMT Stencil Pad
paste_foil_thickness=NUM Assign SMT Stencil Foil Thickness for other paste checks
paste_detect_paste_pad_registration=NUM SMT Stencil Pad to Pad Registration
assembly_minimum_component_clearance=NUM Minimum Clearance: Component
assembly_minimum_component_clearance_small=NUM Minimum Clearance: Small Component
assembly_minimum_component_clearance_bga=NUM Minimum Clearance: BGA Component
assembly_clearance_from_board_edge=NUM Minimum Clearance: Component to Board Edge
assembly_maximum_component_height=NUM Maximum Component Height
assembly_find_component_overlaps Component Overlaps
assembly_detect_footprint_pad_registration Footprint to Pad Registration.
assembly_find_invalid_component_refdes Invalid RefDes. Requires BOM File Import.
assembly_find_invalid_component_rotation Invalid Component Rotation. Requires BOM File Import.
assembly_detect_bom_compare Component Part Number differs from BOM file. Requires BOM File Import.
These DFM Checks are powerful, and essential for multi-layer PCB's.
ADVANCED Checks Description
signal_find_acid_traps=NUM Locate Acid Traps. Must be a positive number using units. (May be time consuming)
signal_minimum_clearance_samenet=NUM Minimum distance between objects on the same net. (May be time consuming)
signal_find_net_discrepancy Find net discrepancies.
signal_find_antennas Locate potential antennas. (May be time consuming)
signal_copper_slivers=NUM Locate potential copper slivers. Must be a positive number using units. (May be time consuming)
mask_find_solder_bridges=NUM Find solder bridges. Must be a positive number using units.
plane_find_starved_thermal=NUM Locate starved thermals. Must be a positive number using units.
plane_find_powerground_short Find power/ground shorts.
plane_find_negplane_thermal_conflicts Find thermal conflicts on negative planes.
plane_find_isolated_connections Find isolated connections.
testpoint_minimum_diameter=NUM Minimum Test Point Diameter. Must be a positive number using units.
testpoint_minimum_center_to_center=NUM Minimum Distance: Test Point Center to Center. Must be a positive number using units.
testpoint_clearance_from_board_edge=NUM Minimum Clearance: Test Point to Board Edge. Must be a positive number using units.
testpoint_clearance_pad_to_pad=NUM Minimum Clearance: Test Point Pad to Pad. Must be a positive number using units.
testpoint_clearance_mask=NUM Minimum Clearance: Test Point to Mask. Must be a positive number using units.
testpoint_minimum_clearance_rout=NUM Minimum Clearance: Test Point to Rout. Must be a positive number using units.
testpoint_find_nets_without_testpoint Find Test Point without Net. Must be a positive number using units.
These DFM Checks ensure the electrical connectivity of your PCB's.
NETLIST COMPARISON Description
skip_dfmcheck Avoid running DFM Check. Useful when you wish to perform netlist check only. If not used, you can run both DFM Checks and Netlist Comparison simultaneously.
find_opennets Find any Open Nets. Requires that an IPC Netlist file is provided using ipc_netlist_file=
find_shortednets Find any Shorts. Requires that an IPC Netlist file is provided using ipc_netlist_file=
find_missingcopper Find any missing metal areas when a test point is present. Requires that an IPC Netlist file is provided using ipc_netlist_file=
find_missingnets Find any metal areas without a net and a test point is present. Requires that an IPC Netlist file is provided using ipc_netlist_file=
ipc_netlist_file=FILE File path of an IPC 356/A Netlist file. The file path may be either Absolute or Relative.
x_netlist_offset Offset the X location for all test points. Sometimes Netlist files are outputted from layout tools using a different coordinate system from the gerber and ODB++ files.
y_netlist_offset Offset the Y location for all test points. Sometimes Netlist files are outputted from layout tools using a different coordinate system from the gerber and ODB++ files.
netlist_scale_factor Scale all test points. Sometimes Netlist files are outputted from layout tools using a different scale from the gerber and ODB++ files.

Example DFMCHECKER Array:

DFMCHECKER {
cell=active
units=mil
signal_minimum_pad_size=15.0
signal_minimum_smt_pad_width=5.0
signal_minimum_trace_width=4.0
signal_minimum_clearance_outer_layers=9.0
signal_minimum_clearance_inner_layers=6.0
signal_minimum_annular_ring_drill_pad=4.0
signal_clearance_from_board_edge=10.0
signal_find_nonfunctional_pads_inner_layers
drill_minimum_drill_size=7.0
drill_find_double_hits
drill_find_pads_without_drills
drill_find_plated_drill_without_pads
drill_find_touching_holes
silk_minimum_silkscreen_line_width=4.0
silk_find_silkscreen_over_mask=1.0
silk_clearance_board_edge=10.0
mask_find_undersized_mask_clearances=4.0
mask_find_missing_mask_clearances
mask_find_mask_slivers
mask_find_solder_bridges=8.0
plane_minimum_annular_ring=4.0
output_text_file=Customer234/dfm_report-23433.txt
}

Example DFMCHECKER Array to just perform Netlist Comparison:

DFMCHECKER {
cell=active
units=mm
skip_dfmcheck
ipc_netlist_file=customer23/mySampleNetlist.ipc
find_opennets
find_shortednets
output_pdf_file=customer23/mySampleNetlist_comparison_report.pdf
}

Example DFMCHECKER Array performing both DFM Checks and Netlist Comparison simultaneously:

Note
This DFMCHECKER Array also generates a gerber file containing any potential error markers. Making it easier to visually spot DFM errors when loaded over existing design (in a free viewer like DFM Now).
DFMCHECKER {
cell=active
units=mil
signal_minimum_pad_size=15.0
signal_minimum_smt_pad_width=5.0
signal_minimum_trace_width=4.0
signal_minimum_clearance_outer_layers=9.0
signal_minimum_clearance_inner_layers=6.0
signal_minimum_annular_ring_drill_pad=4.0
signal_clearance_from_board_edge=10.0
signal_find_nonfunctional_pads_inner_layers
drill_minimum_drill_size=7.0
drill_find_double_hits
drill_find_pads_without_drills
drill_find_plated_drill_without_pads
drill_find_touching_holes
silk_minimum_silkscreen_line_width=4.0
silk_find_silkscreen_over_mask=1.0
silk_clearance_board_edge=10.0
mask_find_undersized_mask_clearances=4.0
mask_find_missing_mask_clearances
mask_find_mask_slivers
mask_find_solder_bridges=8.0
plane_minimum_annular_ring=4.0
ipc_netlist_file=customer23/mySampleNetlist.ipc
find_opennets
find_shortednets
output_text_file=Customer234/dfm_report-23433.txt
output_gerber_file=Customer234/dfm_report_errors-23433.gbr
}