ScoutChecker

Manual

ScoutChecker User Manual

CAD ERC/DRC does not catch design-level circuit issues. ScoutChecker fills that gap.

1. Quick Start

  1. Create a new project
  2. Upload NET files (required) and BOM CSV files (optional)
  3. Set file types and board symbols
  4. Configure signal assignments if needed
  5. If using an FPGA, select the device in FPGA Library
  6. Run analysis
  7. View results in the browser or download as ZIP

2. Project Setup

Click "New" on the Projects page to create a project. Each project represents one circuit design (one or more boards).

FieldDescription
NameProject name (e.g. "IEA-PCB35 MAIN")
DescriptionOptional memo

3. File Upload

Go to "File Management" from the project page. Upload files and set their types.

TypeExtensionDescription
NET.netNetlist file (OrCAD format). Required. One per board.
BOM.csvBill of Materials. Adds component values/types to analysis.
CON.txtConnector mapping file. Defines inter-board connections.
EXTCN.txtExternal connector assignments. Sets power/GND entry points.
LIB.txtLibrary file. Pin name definitions for ICs.
DOCanyDocuments (PDFs, specs, notes, etc.). Not used in analysis, but managed with the project and included in the results ZIP.

Board Symbol

Each NET/BOM file needs a board symbol (e.g. MAIN, POW, PHY). This identifies which board a component belongs to in multi-board designs.

BOM Column Mapping

When uploading a BOM CSV, set the column numbers as space-separated values. Example: 4 1 4 5 7 8

#FieldDescription
1DesignatorReference designator column (e.g. R1, C3)
2TypeComponent type column (e.g. R, C, IC)
3ValueComponent value column (e.g. 10kΩ, 100nF)
4ModelPart number column (e.g. GRM155R71C104K)
5ManufacturerManufacturer name column
6PopulatePopulate status column (to identify unpopulated parts)

4. Signal Assignment

Go to "Signal Assign" from the project page. Signal assignments tell ScoutChecker which nets/pins are power, ground, or signals.

Target TypeExampleDescription
NETGNDAssign all pins on a net
RTYPECAssign all pins of a component type
REFMAIN.IC1Assign all pins of a specific component
PINMAIN.IC1.3Assign a specific pin

Attributes

AttributeValuesDescription
cSIGPOW, GND, SIG, NCSignal type
cLOGICH, LLogic level (H=power, L=ground)
cVOLT3.3V, 5V, etc.Voltage level

5. Analysis

Click "Run Analysis" on the project page. The pipeline runs through these major phases:

  1. Parse — Read NET/BOM/CON files and build the circuit graph
  2. Assign — Apply signal assignments and propagate attributes
  3. Trace — Trace GND, VCC, and signal paths through the circuit
  4. Check — Detect stuck terminals, power evaluation, design rule checks
  5. Report — Generate HTML reports and ZIP package

Analysis runs in the background. The progress page shows real-time status.

6. Results

After analysis completes, click "View Results". The sidebar organizes files by category:

CategoryContents
ReportsSummary, PowerEvaluation, StuckTerminals, SinglePinNets, DesignReview
IndexesRefList (components), PinList (pins), NetList (nets)
ComponentsPer-component detail pages grouped by type (IC, R, C, ...)
NetsPer-net detail pages

Each component/pin page shows a path diagram — a visual trace of the GND/VCC/signal paths connected to that pin.

7. Design Review

DesignReview.html checks for common design issues that CAD ERC/DRC typically misses:

RuleLevelWhat it checks
I2C Pull-upWarningSDA/SCL nets must have a pull-up resistor connected to power
RESET/EN FloatingWarningRESET/RST nets must have a pull-up or pull-down resistor
Power DecouplingInfoPower nets (VCC/VDD/+xV) should have a decoupling capacitor

Each finding includes a hint explaining why it might be a false positive (e.g. "implemented on another board").

Severity Levels

  • ERROR — Must fix
  • WARN — Should investigate
  • INFO — For reference

8. Export / Import

Export

On the project detail page, click "Export" to download a ZIP containing all project settings and uploaded files. Use this to transfer projects between environments.

Import

On the project list page, click "Import" and select an exported ZIP file. A new project is created with all files and settings restored.

Results ZIP Structure

The ZIP downloaded from "Download ZIP" on the results page has the following structure:

PathContents
index.htmlTop page with links to Design Review and all reports. Open this first.
result/Analysis result HTML files (reports, component details, net details)
source/Input files (NET, BOM, CON, DOC, etc.) and settings (project.json). This folder alone can reproduce the analysis.

9. FPGA Library

For projects using Altera (Intel) FPGAs, the FPGA Library feature automatically integrates FPGA pin information into the analysis.

Overview

FPGA IBIS data provides the function of each pin (power, GND, JTAG, config, I/O, etc.). During analysis, this data is automatically overlaid onto matching FPGA device pins. This enables:

  • Auto-generation of signal assignments for FPGA power/GND pins
  • Checks for pull-up resistors on nCONFIG, MSEL, JTAG configuration pins
  • Checks for decoupling capacitors on power pins

How to Use

  1. Open "FPGA Library" from the project sub-navigation bar
  2. IC/U components from the netlist are listed at the top. Components whose VALUE matches an FPGA device alias are highlighted in green
  3. Click the "Use This" button on a matched component to automatically set the device and symbol
  4. Review the pin preview and click "Generate & Apply"
  5. Re-run analysis to apply FPGA pin attributes

Auto-Match

The system extracts IC/U component references and VALUEs from the netlist $PACKAGES section, then matches them against FPGA device aliases.

Example: Netlist VALUE 5AGXBA3DF27 → matches alias 5AGXBA3DF27 → device 5AGXBA3_F6720 is auto-selected.

If no auto-match is found, manually select the family and device from the dropdowns.

During Analysis

Pipeline Step03c (FPGA Pin Enrichment) overlays IBIS-derived pin function data onto the matching device's pins. FPGA-specific design rules (nCONFIG pull-up, MSEL pull-up, JTAG pull-up, power decoupling, etc.) use this data for evaluation.

Supported Devices

Approximately 400 device packages are supported, including Arria V GX, Cyclone V, Cyclone V SoC, Cyclone 10 LP, and Cyclone/MAX (Legacy).

10. Design Rules JSON

Design rules are defined in JSON format. You can import/export JSON files to customize and share rules.

3-Tier Settings

LevelPurposeWhere
System DefaultsBuilt-in rules (10 rules)Automatic
User SettingsApply to all your projectsNav dropdown → My Design Rules
Project OverridesChange for a specific project onlyProject → Design Rules

Priority: Project Overrides > User Settings > System Defaults

JSON Structure

The rule JSON is an array of rule objects. Each rule has the following structure:

{
  "id":      "unique_rule_id (alphanumeric + underscore)",
  "name":    "Display name",
  "target":  "net | device | pin",
  "match":   { match conditions },
  "checks":  [ array of check conditions ],
  "level":   "error | warning | info",
  "message": "Message shown when detected",
  "hint":    "Hint explaining possible false positives"
}

target — What to inspect

ValueTargetDescription
netNetInspects each net (signal line) in the circuit
deviceDeviceInspects each component (IC, R, C, Q, etc.)
pinPinInspects each pin individually

match — Target filtering

An empty object {} matches all targets. Combine the following keys to filter:

KeyTargetDescriptionExample
net_name_patternnet / pinRegex match on net name"/^(SDA|SCL|I2C)/i"
rtypedeviceComponent type (string or array)"R" or ["Q", "TR"]
value_patterndeviceRegex match on component value"/^DTA/i"

checks — Check conditions

If the array is empty, matched targets become findings directly (e.g., open pin detection).

If the array has one or more checks, targets that pass all checks are OK; targets that fail any check become NG (findings).

Check Types

1. has_component

Checks whether a specific component type is connected to the net.

ParameterTypeDescription
typestring"has_component" (fixed)
rtypestringComponent type ("R", "C", etc.)
min_countintMinimum required count (usually 1)
connected_to_signalstringRequired signal type on the other end ("POW", "GND", etc.). Optional.
// Example: Pull-up resistor check (at least 1 R connected to power)
{"type": "has_component", "rtype": "R", "connected_to_signal": "POW", "min_count": 1}

// Example: Decoupling capacitor check
{"type": "has_component", "rtype": "C", "min_count": 1}

2. pin_net_role

Checks the role (power/ground) of the net connected to a specific pin of a device.

ParameterTypeDescription
typestring"pin_net_role" (fixed)
pin_matchstringRegex for pin name
net_rolestring"power" or "ground"
expectbooltrue: should match / false: should not match
// Example: PNP transistor — E should be power, C should not be power
{"type": "pin_net_role", "pin_match": "/^(E|3)$/i", "net_role": "power", "expect": true}
{"type": "pin_net_role", "pin_match": "/^(C|2)$/i", "net_role": "power", "expect": false}

3. power_ground_bridge

Checks whether a resistor bridges power and ground with low resistance.

ParameterTypeDescription
typestring"power_ground_bridge" (fixed)
max_ohmsnumberThreshold in ohms. Detected if at or below this value. Configurable in UI.
// Example: Detect resistors ≤100Ω bridging power and GND
{"type": "power_ground_bridge", "max_ohms": 100}

Supported resistance formats: 100, 4R7 (4.7Ω), 10k (10kΩ), 0R (0Ω), 2.2, 1M, etc.

4. net_short

Checks for dangerous electrical connections on a net. The mode specifies what to detect.

ParameterTypeDescription
typestring"net_short" (fixed)
modestringOne of the following
ModeDetects
power_gnd_shortPower and GND directly connected on the same net
mixed_voltageDifferent voltage power pins on the same net
output_collisionMultiple output drivers on the same net (passive components excluded)
{"type": "net_short", "mode": "power_gnd_short"}
{"type": "net_short", "mode": "mixed_voltage"}
{"type": "net_short", "mode": "output_collision"}

Full Example: Custom Rules

[
  {
    "id": "spi_pullup",
    "name": "SPI CS Pull-up",
    "target": "net",
    "match": {"net_name_pattern": "/(CS|SS|NSS)/i"},
    "checks": [{"type": "has_component", "rtype": "R", "connected_to_signal": "POW", "min_count": 1}],
    "level": "warning",
    "message": "SPI CS line has no pull-up resistor",
    "hint": "Floating CS during idle may cause unintended bus activity"
  },
  {
    "id": "crystal_caps",
    "name": "Crystal Load Capacitors",
    "target": "net",
    "match": {"net_name_pattern": "/(XTAL|OSC|X1|X2)/i"},
    "checks": [{"type": "has_component", "rtype": "C", "min_count": 1}],
    "level": "info",
    "message": "No load capacitor found on crystal oscillator net",
    "hint": "Not needed if the IC has internal load capacitors"
  }
]

Import your custom JSON file using the "Import" button on the Design Rules settings page.