The JTAG bus, originally intended for board-level manufacturing test, has evolved into a multipurpose bus also used for In-System Programming (ISP) of FPGAs, FLASH, and processor emulation. This article’s intent is to provide a brief overview of JTAG. Several system-level design options will be proposed, from the simplest board-level JTAG chain through a complex embedded multidrop system. Finally, an appendix is included that contains some useful definitions.