The disclosures herein relate generally to integrated circuits, and more particularly, to testing and debugging integrated circuits to assure functionality.
To test and debug a complex integrated circuit (IC) such as a processor, the integrated circuit may employ multiple serial service test interfaces. For example, a processor may include both a JTAG interface and an SPI interface. The JTAG interface, namely the Joint Test Action Group (JTAG) interface, uses boundary scan techniques that incorporate a shift register to communicate with each chip under test. This enables an external JTAG serial interface controller to shift input signals into, and shift output signals out of, the integrated circuit chip via an interface that includes 4 I/O pins, namely input data, output data, clock and mode control. An external JTAG serial interface controller couples to the JTAG interface to test the integrated circuit. The Serial Peripheral Interface (SPI) is another standard interface that provides the integrated circuit a second serial communication capability with a second external interface controller, namely an SPI interface controller.
An integrated circuit (IC) may include both a JTAG interface and an SPI interface to conduct different tests on the IC. In one testing technique wherein the IC is a processor, a first external serial interface controller employs one of these interfaces for bring-up testing of the IC and a second external serial interface controller employs the other interface for initialization and boot testing of the IC. “Bring-up” refers to the initial testing of newly designed integrated circuits. In the present example, the JTAG interface is useful for bring-up testing and the SPI interface is useful for initialization and booting of the processor integrated circuit. Other testing roles are also possible.
In this testing approach that employs two different chip interfaces on the same IC, two different hardware interface controllers and appropriate software support are necessary. This unfortunately results in a customized bring-up board with specialized driver software. Thus, the presence of two different interfaces on the same IC typically prevents the reuse of existing driver boards and existing software. Designing two new customized bring-up boards and corresponding customized software significantly increases the testing phase of integrated circuit design.
One solution to this problem of incorporating two interfaces on an integrated circuit is to design the integrated circuit such that each interface provides access only to the minimum set of internal registers that the respective test standards require to support the functionality desired for the interfaces. For example, if JTAG is one of the interfaces, then the designers may configure the integrated circuit such that the JTAG interface provides access to a minimum set of internal registers for JTAG debugging functionalities. Unfortunately, for debugging purposes it is desirable to have access to all internal registers. If SPI is the other interface, then the designers may configure the integrated circuit such that the SPI interface provides access to a minimum set of internal registers for a boot process.
Another known solution to this implementation problem is to essentially duplicate all of the read and write paths to all of the registers that each interface requires. Unfortunately, while this approach does work, it consumes a large amount of valuable semiconductor real estate. Another significant disadvantage of this approach is that it requires a considerable amount of additional verification effort for the resultant multiple interface integrated circuit.
What is needed is a method and apparatus that supports multiple interfaces in an integrated circuit and that addresses the problems described above.
Accordingly, in one embodiment, a method is disclosed for operating multiple interfaces on an integrated circuit. The method includes providing the integrated circuit with a first interface and a second interface. The method also includes associating first registers with the first interface and second registers with the second interface. The method further includes switchably coupling, by a bridge circuit, the first interface to the second interface such that the first interface may access both the first registers and the second registers.
In another embodiment, an integrated circuit is disclosed that includes a semiconductor die. The semiconductor die includes a first interface associated with first registers and a second interface associated with second registers. The semiconductor die also includes a bridge circuit that switchably couples the first interface to the second interface such that the first interface may access both the first registers and the second registers.
The appended drawings illustrate only exemplary embodiments of the invention and therefore do not limit its scope because the inventive concepts lend themselves to other equally effective embodiments.
Interface 240 supports a communication standard different from that of interface 210 above. For example, if interface 210 is a JTAG interface, then interface 240 may be an interface such as an SPI interface, an 12C interface (12C is a trademark of Philips Corporation) or other different interface standard. Interface 240 couples to registers 250-257 via SPI interface logic 260 therebetween. Registers 250-257 thus associate with interface 240. In an embodiment wherein interface 240 is an SPI interface, then SPI interface logic 260 is SPI interface control logic.
In one embodiment, interface 210 may communicate not only with registers 220-227 via JTAG interface logic 230, but may also communicate with registers 250-257 that associate with the different interface standard of interface 240. A bridge circuit 265 selectively couples JTAG interface logic 230 to interface SPI interface logic 260 to permit interface 210 to communicate with registers 250-257. Bridge 265 effectively operates as a switch that selectively connects or disconnects JTAG interface logic 230 to SPI interface logic 260.
When bridge circuit 265 opens, integrated circuit 200 operates in a “normal mode” wherein interface 210 communicates via JTAG interface logic 230 with its associated registers 220-227. In this normal mode, interface 240 may communicate via interface SPI interface logic 260 with its associated registers 250-257. Thus, in normal mode, each interface 210 and 240 may communicate with its associated register set, namely registers 220-227 or registers 250-257, respectively. In normal mode the interface 210, that exhibits one interface standard, does not communicate with registers exhibiting the other interface standard, namely registers 250-257.
When bridge circuit 265 closes, integrated circuit 200 operates in an “enhanced connectivity mode” or “enhanced mode” wherein interface 210 may communicate not only with its associated registers 220-227, but may also communicate via bridge circuit 265 to the registers 250-257 that associate with a different interface standard, namely interface 240. In one embodiment, when IC 200 operates in this enhanced mode, bridge circuit 265 effectively disconnects interface 240 from the internal circuitry of IC 200. Thus, in enhanced mode, interface 240 does not communicate with its associated registers 250-257 or registers 220-227.
Integrated circuit 200 includes circuitry other than the interface circuitry described above. Integrated circuit 200 may take many different forms depending on its particular functionality. For example, IC 200 may include other circuitry 270 such a single core processor, multicore processor, digital signal processor, application-specific integrated circuitry (ASIC) or other circuitry depending upon the particular application.
Each of the signals that TABLE 1 depicts corresponds to a respective pin of JTAG interface 210 having the same name as the signal. The IC designer locates JTAG interface 210 adjacent the boundary or outer edge of semiconductor die 305. IC 300 also includes an interface 240 exhibiting a different communication standard than interface 210. In this particular embodiment, interface 240 is an SPI communication interface. The IC designer locates the SPI interface 240 adjacent the boundary of semiconductor 305. SPI interface 240 includes the interface pinout shown below in TABLE 2:
IC 300 includes JTAG interface logic 310 that couples JTAG interface 210 to a group of JTAG registers 315. IC 300 further includes SPI interface logic 320 that couples SPI interface 240 to SPI registers 325 as shown in
To enable switching from normal mode to enhanced mode and from enhanced mode back to normal mode, bridge circuit 330 includes a bridge control register 335. In one embodiment, bridge control register 335 is a one bit register that controls whether SPI interface logic 320 will receive its input from JTAG interface 210 or SPI interface 240. Control register 335 is thus a JTAG-SPI bridge control register in this particular embodiment. Bridge circuit 335 includes multiplexers 340, 345 and 350, each of which is a two input multiplexer that includes an enable line. The output of control register 335 couples to the enable line of each of multiplexers 340, 345 and 350. A serial interface controller 355 that couples to JTAG interface 210 sends a normal mode command to JTAG interface logic 310 to place a logic zero in control register 335 to switch IC 300 to normal mode. Alternatively, controller 355 may send an enhanced mode command to JTAG interface logic 310 to place a logic one in control register 335 to switch IC 300 to enhanced mode. The command that controller 355 transmits may be a command that a user manually inputs to controller 355. Controller 355 is also programmable to automatically send a normal mode command or an enhanced mode command to JTAG interface logic 310.
When JTAG interface logic 310 receives a normal mode command from JTAG interface 210, then JTAG interface logic 310 stores a logical zero in JTAG-SPI bridge control register 335 of bridge circuit 330. This causes the output of control register 335 to exhibit a logical zero. The output of control register 335 corresponds to an SPI enable signal, SPI_EN, that controls the switching state of multiplexers 340, 345 and 350. The output of control register 335 couples to the enable inputs of multiplexers 340, 345 and 350 to convey the SPI13 EN enable signal thereto. Thus, when controller 355 transmits a normal mode command to JTAG interface logic 310, interface logic 310 writes a logical zero in bridge control register 335. This causes the SPI13 EN signal to exhibit a logic zero that selects the lower inputs of multiplexers at 340, 345 and 350 to couple SPI interface 240 to SPI interface logic 320 and SPI registers 325. Thus, in normal mode, SPI interface input signals C4_SPI_EN, C4_SPI_CLK and C4_SPI SI pass through respective multiplexers 340, 345 and 350 to SPI interface logic 320. This provides an optional serial interface controller 360 with access to SPI registers 325 via SPI interface 240 and SPI interface logic 320. However, optional controller 360 is not required to access SPI registers 325 because JTAG interface 210 may access SPI registers 325 when IC 300 operates in enhanced mode. Regardless of mode, an output line of SPI interface logic 320, namely output line C4_SPI_SO, couples to both SPI interface 240 and the JTAG interface logic 310, as shown in
When JTAG interface logic 310 receives an enhanced mode command from controller 355 via JTAG interface 210, then JTAG interface logic 310 stores a logical one in the JTAG-SPI bridge control register 335. This causes the output of control register 335 to exhibit a logic one. In response, the SPI-EN enable signal transitions to a logic one and multiplexers 340, 345 and 350 select their upper multiplexer inputs to couple to SPI interface logic 320 and SPI registers 325. Thus, when integrated circuit 300 switches to enhanced mode, JTAG interface 210 couples not only to JTAG registers 315, but also to SPI registers 325 via multiplexers 340, 345 and 350 and SPI interface logic 320. This means that controller 355 can send information to and receive information from SPI registers 325 as well as JTAG registers 315. When integrated circuit 300 operates in enhanced mode, multiplexers 340, 345 and 350 effectively decouple SPI interface 240 from SPI interface logic 320. Thus, SPI interface 240 may not access the SPI interface logic 320 and SPI registers 325 in enhanced mode. JTAG interface 210 may access its associated JTAG registers 315 in either normal mode or enhanced mode.
While the embodiment shown in
When IC 300 and bridge circuit 330 operate in normal mode, JTAG information may flow from JTAG interface 210 to JTAG registers 215 and vice versa. Likewise, SPI information may flow from SPI interface 240 to SPI registers 320 and vice versa. However, when IC 300 and bridge circuit 330 switch to enhanced mode at the direction of controller 355, controller 355 may operate through JTAG interface 210 to access both JTAG registers 315 and SPI registers 325. To access SPI registers 325, bridge circuit 335 routes JTAG data to SPI interface logic 320. In response, SPI interface logic 320 interprets the JTAG data it receives as a regular SPI interface operation. In the case of a read operation, bridge circuit 330 routes responsive read information from SPI registers 325 back to JTAG interface 210. To achieve this functionality, IC 300 embeds shift information for the SPI interface in the data stream of the JTAG interface for both read and write operations between the JTAG interface and SPI registers 325.
However, to read SPI information from SPI registers 325 when IC 300 is in enhanced mode, controller 355 again embeds SPI information in the C4_TDI data input signal of JTAG interface 210. More specifically, controller 355 embeds an SPI read command in bits c0, c1 . . . c7, embeds a target SPI read address in bits a1, a2 . . . a15, and further embeds don't care data after the target SPI read address in the C4_TDI signal of the JTAG interface 210 signals, as shown in the JTAG interface waveforms of
For discussion purposes, serial interface controller 355 now sends a command via JTAG interface 210 that instructs bridge circuit 330 to operate in “enhanced mode”, as per block 530. In response, JTAG interface logic 310 stores a logic one in JTAG-SPI bridge control register 335. This causes the SPI enable signal, SPI_EN, to likewise exhibit a logic one, as per block 535. In response to the logic one SPI enable signal, multiplexers 340, 345 and 350 couple JTAG interface logic 310 to SPI interface logic 320, as per block 540. This provides controller 355 with access via the JTAG interface 210 to SPI interface logic 320 and SPI registers 325. Controller 355 now communicates with SPI registers 325 via JTAG interface 210 using SPI commands that the controller 355 embeds in the JTAG input signal line C4_TDI of the JTAG interface 210, as per block 545. This communication with SPI registers 325 may include test information such as IC initialization and boot test information, for example. While in enhanced mode, controller 355 may also communicate via JTAG interface 210 with JTAG registers 315, as per block 550. This communication with JTAG registers 315 may include test information such as IC debug test information, for example. Process flow ends at end block 555. Controller 355 may repeat the process that the flowchart of
In one embodiment, the disclosed integrated circuit includes a bridge circuit that couples together a JTAG interface and an SPI interface on the integrated circuit. A controller that couples to the JTAG interface may access both the JTAG interface and the SPI interface. This may simplify bring-up and verification of a newly designed IC such as a processor or other electrical circuit on the IC. The term “verification” means verifying hardware, such as the disclosed IC, in a simulation environment before the hardware really exists, i.e. before the hardware is actually manufactured. “Bring-up” is the test of the real, manufactured and assembled system hardware including, for example, different integrated circuit chips, memories and boards in interaction with written and developed systems' software and firmware. In one embodiment, bring-up boards for a previous IC are reusable to test the disclosed IC. This simplifies the bring-up environment and decreases cost and development time.
Modifications and alternative embodiments of this invention will be apparent to those skilled in the art in view of this description of the invention. Accordingly, this description teaches those skilled in the art the manner of carrying out the invention and is intended to be construed as illustrative only. The forms of the invention shown and described constitute the present embodiments. Persons skilled in the art may make various changes in the shape, size and arrangement of parts. For example, while the representative integrated circuit 300 of