Transistors are one of the things we get asked about quite a bit:
“How should I categorise the transistors in my project?”
The trouble is, the answer depends on the exact situation.
Transistors can be (correctly) categorised as Passive devices, Logic devices, or even Ignore devices depending on what they are used for in the circuit and exactly what access you have to them. We are happy to give advice if you wish to send us your schematics… but here I explain the general thought process for categorising them so you can apply the thought process yourself or at least understand our thinking!
- If there is access to both sides of the transistor then we would categorise it as a Logic device. A truth table will need to be created to describe the operation of the transistor (there is an exercise at the end of the main XJDeveloper/XJEase tutorial that goes through how to do this). In this case it would be a Logic device rather than a Passive device because for a passive device the system would try to drive signals through the transistor from both sides. With a logic definition XJTAG is able to understand the signal can only go through the device in one direction.
- If there is only access to the Gate/Base and the transistor is setup to be non-inverting with respect to the signal applied to the gate (i.e. voltage translator) or the inversion does not matter (i.e. the output is connected to something like an LED where the test just toggles the LED pin) then the transistor can be described as a Passive device
- If there is only access to the Gate/Base and the transistor is setup so that the output is inverted with respect to the inverted signal, and the inversion matters then it should be described as a Logic device.
- If the output of the transistor goes to circuitry where there is no way to verify the result of turning the transistor on and off and turning the circuitry on and off does not affect testing of the rest of the board, the transistor can be ignored.
It can sometimes be helpful to categorise a transistor and an associated resistor on the Drain/Collector (or Source/Emitter) using a truthtable which reflects the fact that the output of the combination is either high or low (instead of low or High-Z, for example, with an open-collector setup). If you do this you can use the Functional Tests screen in XJDeveloper to make sure that the resistor has test coverage assigned to it.