www.fairchildsemi.com 2
74F401
Unit Loading/Fan Out
Functional Description
The 74F401 is a 16-bit progr ammable device w hich operates on serial data streams and provides a means of
detecting transmission er rors. Cyclic encod ing and decoding schemes for error d etection are based on polynom ial
manipulation in m odulo arithmetic . For encoding , the data
stream (message polynomial) is divided by a selected polynomial. This division results in a remainder which is
appended to the messa ge as check bits. For err or checking, the bit stream conta ining both data and check bits is
divided by the same selected po lynomial. If there are no
detectable errors, this divi sion results in a ze ro remainder.
Although it is possible to choose many generating polynomials of a given degree, standards exist that specify a
small number of useful polynomials. The 74F401 implements the polynomials listed in Table 1 by applying the
appropriate logic levels to the select pins S
0, S1
and S2.
The 74F401 consists of a 16-bit register, a Read Only
Memory (ROM) and associated control circuitry as shown
in the block diagram. The polynomial control code presented at inputs S
0
, S1 and S2 is decoded by the ROM,
selecting the desired polynomial by establishing shift mode
operation on the register with Exclusive OR gates at appropriate inputs. To generate the check bits, the data stream is
entered via the Da ta inputs (D), using the HIGH- to-LOW
transition of the Clock inpu t (CP
). This data is gated with
the most significant output (Q) of the register, and controls
the Exclusive OR gates Figu re 1. Th e Check Wo rd Enabl e
(CWE) must be held HIGH wh i le th e da ta i s b eing entered.
After the last data bit is entered, the CWE is brou ght LOW
and the check bits are shifted out of the register and
appended to the data bits using external gating Figure 2.
To check an incoming messa ge for errors, both the data
and check bits are e ntered through the D input wi th the
CWE input held HIGH. The 74F4 01 is not in the data path,
but only monitors the message. The Error Output becomes
valid after the last check bit has been entered into the
74F401 by a HIGH-to-LOW transi tion of CP
. If no detectable errors have occurred during the data transmission, the
resultant internal reg ister bits are all LOW and the Error
Output (ER) is LOW. If a detectable error has occurred, ER
is HIGH.
A HIGH on the Master Reset input (M R) asynchronously
clears the register. A LOW on the Preset input (P
) asynchronously sets the entire register if the control code inputs
specify a 16-bit polynomial; in the case of 12- or 8-bit check
polynomials only th e most significant 12 or 8 register bits
are set and the remaining bits are cleared.
TABLE 1.
Pin Names Description
U.L.
Input I
IH/IIL
HIGH/LOW
Output I
OH/IOL
S0–S
2
Polynomial Select Inputs 1.0/1.0 20 µA/−0.6 mA
D Data Input 1.0/1.0 20 µA/−0.6 mA
CP
Clock Input (Operates on HIGH-to-LOW Transition) 1.0/1.0 20 µA/−0.6 mA
CWE Check Word Enable Input 1.0/1.0 20 µA/−0.6 mA
P
Preset (Active LOW) Input 1.0/1.0 20 µA/−0.6 mA
MR Master Reset (Active HIGH) Input 1.0/1.0 20 µA/−0.6 mA
Q Data Output 50/33.3 −1 mA/20 mA
ER Error Output 50/33.3 −1 mA/20 mA
Select Code
Polynomial Remarks
S
2
S1S
0
LLLX16 + X15 + X2 + 1 CRC-16
LLHX
16
+ X14 + X + 1 CRC-16 REVERSE
LHLX
16
+ X15 + X13 + X7 + X4 + X2 + X1 + 1
LHHX
12
+ X11 + X3 + X2 + X + 1 CRC-12
HLLX
8
+ X7 + X5 + X4 + X + 1
HLHX
8
+ 1 LRC-8
HHLX
16
+ X12 + X5 + 1 CRC-CCITT
HHHX
16
+ X11 + X4 + 1 CRC-CCITT REVERSE