# Component Classification

## Part Categories

Part categories break down classes of parts hierarchically. The category hierarchy exists separately than the part hierarchy. The category hierarchy only provides the user with a system to locate parts quickly. A child in the category hierarchy does not need to inherit the attributes of a parent.

The parts manager uses categories to keep the lists of parts manageable. If the list of parts in a particular category grows large, the category can be subdivided into sub-categories.

It may be difficult to change the categories, using a GUI, because of the part table abstraction through database views and stored procedures. It may be better to distribute the parts manager with a default configuration that works for most.

Help is needed with the taxonomy of parts. Please send feedback to the geda-dev or geda-user mailing lists.

The default hierarchy of parts follow:

- Discretes
  - Diodes
    - Small-signal
    - TVS
    - Zeners
- Passives
  - Capacitors
  - Inductors
  - Resistors

## Part Hierarchy

The part hierarchy allows the database to attach additional attributes to a class of parts. These attributes provide a faster means to locate and select parts, especially commodity parts. The database only provides these additional attributes when configured to use hierarchical part tables.

These additional attributes, stored in numeric format, allow SQL to select parts. For example, to locate diodes with reverse voltage greater than 60 volts, use the following SQL statement.

    SELECT * FROM DiodeV
        WHERE VR > 60;

The intent of the part hierarchy does not include exhaustively classifying all electronic parts or fully parameterizing any class of electronic part. The part hierarchy simply intends to allow the user to quickly locate a part, such as a 4.75 kΩ 1% 0603.

TODO: Develop guidelines for subclassing part.

Proposed guidelines for including attributes:

- Include attributes that are encoded in the manufacturer part number.
- Exclude attributes that are inconsistently characterized between manufacturers.
- Exclude attributes that must be either read from graphs, or calculated.

These attributes may not work for everyone, so the database allows the user to customize these part tables.

### BJTs

Bipolar Junction Transistors (BJTs) extend part with one additional table of attributes.

Table name: BJT

View name: BJTV

Field | Type | Units | Description
--- | --- | --- | ---
PartID |  |  | Foreign key to Part
PackageID |  |  | Foreign key to Package
Polarity |  |  | Either NPN or PNP
MaxCollectorCurrent | Physical | AMPS | Maximum collector current (Absolute maximum rating)
MaxCollectorEmitterVoltage | Physical | VOLTS | Maximum collector-emitter voltage (Absolute maximum rating)
TransitionFrequency | Physical | HERTZ |
PowerDissipation | Physical | WATTS | Power dissipation (Pd) not including any derating

The same table contains small-signal and power BJTs. These transistors can be placed into separate views using the following criteria.

Category | Criteria | View Name
--- | --- | ---
Small-signal BJT | PowerDissipation < 1.0 | TBD
Power BJT | PowerDissipation >= 1.0 | TBD

### Capacitors

Capacitors extend part with one additional table of attributes.

Field | Type | Units | Description
--- | --- | --- | ---
PartID |  |  | Foreign key to Part
PackageID |  |  | Foreign key to Package
Capacitance | Physical | FARADS | Capacitance

When instantiating a component or creating a heavy symbol, the following database columns map to the following attributes.

Column | Attribute | Notes
--- | --- | ---
Device.DeviceName | DEVICE |
Capacitor.Capacitance | VALUE |

### Inductors

Inductors extend part with one additional table of attributes.

Field | Type | Units | Description
--- | --- | --- | ---
PartID |  |  | Foreign key to Part
PackageID |  |  | Foreign key to Package
Inductance | Physical | HENRYS | Inductance

When instantiating a component or creating a heavy symbol, the following database columns map to the following attributes.

Column | Attribute | Notes
--- | --- | ---
Device.DeviceName | DEVICE |
Inductor.Inductance | VALUE |

### MOSFETs

MOSFETs extend part with one additional table of attributes.

Field | Type | Units | Description
--- | --- | --- | ---
PartID |  |  | Foreign key to Part
PackageID |  |  | Foreign key to Package
Polarity |  |  | Either N or P
MaxDrainSourceVoltage | Physical | VOLTS | Maximum drain-source voltage (Absolute maximum rating)
MaxDrainCurrent | Physical | AMPS | Maximum continuous drain current (Absolute maximum rating)
TypGateThresholdVoltage | Physical | VOLTS | Typical gate threshold voltage
PowerDissipation | Physical | WATTS | Power dissipation (Pd) not including any derating

### Rectifier, Small-signal and Switching Diodes

Rectifier, small-signal and switching diodes extend part with one additional table of attributes. Most diodes can be placed into this table.

Table name: Diode

View name: DiodeV

Field | Type | Units | Description
--- | --- | --- | ---
PartID |  |  | Foreign key to Part
PackageID |  |  | Foreign key to Package
MaxReverseVoltage | Physical | VOLTS | Maximum reverse voltage (Absolute maximum rating)
MaxForwardCurrent | Physical | AMPS | Maximum forward current (Absolute maximum rating)
TypForwardVoltage | Physical | VOLTS | Typical forward voltage
AveForwardCurrent | Physical | AMPS | Average forward current

The same table contains rectifier, small-signal and switching diodes. These diodes can be placed into separate views using the following criteria.

Category | Criteria | View Name
--- | --- | ---
Small-signal and switching diodes | AveForwardCurrent < 0.5 | TBD
Rectifier diodes | AveForwardCurrent >= 0.5 | TBD

### Resistors

Resistors extend part with one additional table of attributes.

Field | Type | Units | Description
--- | --- | --- | ---
PartID |  |  | Foreign key to Part
PackageID |  |  | Foreign key to Package
Resistance | Physical | OHMS | Resistance
Tolerance | Physical | PERCENT | Tolerance

When instantiating a component or creating a heavy symbol, the following database columns map to the following attributes.

Column | Attribute | Notes
--- | --- | ---
Device.DeviceName | DEVICE |
Resistor.Resistance | VALUE |

### TVS Diodes

TVS diodes extend part with one additional table of attributes.

Field | Type | Units | Description
--- | --- | --- | ---
PartID |  |  | Foreign key to Part
PackageID |  |  | Foreign key to Package
WorkingVoltage | Physical | VOLTS | Working voltage
BreakdownVoltage | Physical | VOLTS | Breakdown voltage

### Zener Diodes

Zener diodes extend part with one additional table of attributes.

Table name: ZenerDiode

View name: ZenerDiodeV

Field | Type | Units | Description
--- | --- | --- | ---
PartID |  |  | Foreign key to Part
PackageID |  |  | Foreign key to Package
TypZenerVoltage | Physical | VOLTS | Zener voltage
PowerDissipation | Physical | WATTS | Power dissipation (Pd) not including any derating