PCtlPads:
CELL[
Timing and housekeeping interface
Vdd, Gnd<BOOL,
PadVdd, PadGnd<BOOL,
Processor interface
PCmdA<EnumType["Dragon.PBusCommands"],
PRejectB=BOOL,
PFaultB=EnumType["Dragon.PBusFaults"],
PNPError>BOOL,
Internal processor interface
PCmdI>EnumType["Dragon.PBusCommands"],
PRejectDriveHigh, PRejectDriveLow<BOOL,
PFaultDrive<BOOL,
PFaultI=EnumType["Dragon.PBusFaults"],
PNPErrorDriveLow<BOOL
]
EvalSimple
PCmdI ← PCmdA;
IF PRejectDriveHigh THEN PRejectB ← TRUE;
IF PRejectDriveLow THEN PRejectB ← FALSE;
IF PFaultDrive THEN PFaultB ← PFaultI;
IF PNPErrorDriveLow THEN PNPError ← FALSE;
ENDCELL