TraceMaker
C++ API of the engine
Loading...
Searching...
No Matches
causes.hpp File Reference

Why connections stay open on a routed board (M20 C5, doc 05 §55): each open connection is classified by what has to change for the router to route it. More...

#include <cstdint>
#include <string>
#include <nlohmann/json.hpp>

Go to the source code of this file.

Classes

struct  tmk::app::CausesOptions

Namespaces

namespace  tmk
namespace  tmk::app

Functions

nlohmann::json tmk::app::classify_open_connections (const std::string &board, const CausesOptions &opt, bool print)
 Classifies the open connections of board and returns the report (also printed as a table when print).

Detailed Description

Why connections stay open on a routed board (M20 C5, doc 05 §55): each open connection is classified by what has to change for the router to route it.

The router is run again on copies of the board, its copper locked, with other nets' copper taken away: near the connection's ends only the nets that pass through (no pad on an end's part), then all of it near the ends, then all of it away from them, then everywhere. The first copy on which the connection routes names the cause; one on which it never routes is "no_path_bare". A pin that cannot leave its package under the rules on the bare board (route/escape.hpp) is "pin_cannot_escape", without a run.

Definition in file causes.hpp.