Claims
- 1. A method for emulating individual devices in a multiple device chain, said method comprising:
effecting a session including:
selecting at least one target device within the chain; actuating a server having a transmit buffer; creating emulation sequences configured for execution by the at least one target device; recording the emulation sequences in the transmit buffer; and transmitting the recorded emulation sequences to the scan chain; wherein the emulation sequences pass at least one other device on the scan chain and are executed by the target device.
- 2. The method of claim 1, wherein the session comprises:
creating bypass sequences, to place the at least one other device into bypass mode; recording the bypass sequences in the transmit buffer; and transmitting the recorded bypass sequences from the transmit buffer to the scan chain.
- 3. The method of claim 2, comprising translating the recorded bypass sequences and emulation sequences prior to said transmitting.
- 4. The method of claim 2, comprising communicably coupling an operating system to a device driver.
- 5. The method of claim 4, wherein said selecting comprises informing the driver of the number of bypass bits upstream and downstream of the target device in the chain.
- 6. The method of claim 4, wherein said creating bypass sequences and said creating emulation sequences are effected with the driver.
- 7. The method of claim 4, wherein said obtaining is effected with the operating system.
- 8. The method of claim 1, comprising effecting said recording in a slow mode.
- 9. The method of claim 1, comprising effecting said recording in a fast mode.
- 10. The method of claim 1, comprising effecting said transmitting the recorded emulation sequences in a fast mode.
- 11. The method of claim 1, comprising effecting said transmitting the recorded emulation sequences in a slow mode.
- 12. The method of claim 1, comprising receiving responses from the target device.
- 13. The method of claim 12, comprising recording the responses in a receive buffer disposed in the server.
- 14. The method of claim 1, comprising initiating an other session, said other session including actuating an other server having an other transmit buffer and an other receive buffer.
- 15. The method of claim 14, wherein the other session comprises:
creating other emulation sequences; and recording the other emulation sequences in the other transmit buffer.
- 16. The method of claim 15, comprising transmitting the other emulation sequences to the target device.
- 17. The method of claim 16, comprising transmitting the other emulation sequences to an other target device within the scan chain.
- 18. The method of claim 1, comprising:
coupling a host to the emulator; and effecting the session using a GUI running on the host.
- 19. The method of claim 18, comprising coupling the host directly to the emulator.
- 20. The method of claim 19, comprising coupling the host to the emulator through one of the group consisting of a parallel port and a USB port.
- 21. The method of claim 18, comprising coupling the host to the emulator through a network.
- 22. The method of claim 18, comprising effecting an other session using the GUI.
- 23. The method of claim 22, comprising effecting an other session for an other target device.
- 24. The method of claim 18, comprising effecting an other session using an other GUI running on an other host coupled to the emulator.
- 25. The method of claim 24, comprising selecting the same target device in both the session and the other session.
- 26. The method of claim 1, wherein the individual devices comprise JTAG devices and the chain includes a boundary scan chain.
- 27. The method of claim 26, wherein said effecting a session is effected by an emulator.
- 28. The method of claim 26, wherein said selecting comprises generating a selection instruction and sending the selection instruction to the scan chain.
- 29. The method of claim 1, wherein said creating emulation sequences comprises creating sequences configured to place the target device into a data mode.
- 30. The method of claim 29, wherein said transmitting the recorded emulation sequences includes formatting the emulation sequences to compensate for the at least one other device in the scan chain.
- 31. The method of claim 30, wherein said formatting includes compensating for bits added by the at least one other device.
- 32. The method of claim 26, wherein said obtaining the topology includes automatically determining the topology of the scan chain.
- 33. The method of claim 26, wherein the topology includes the number of devices in the scan chain, and the number of instruction register bits in each of the devices.
- 34. The method of claim 33, wherein the topology includes a device number for at least one of the devices within the scan chain.
- 35. The method of claim 26, wherein said selecting includes serially placing an instruction register of the target device into the scan chain.
- 36. The method of claim 26, wherein the emulator includes a debugger.
- 37. The method of claim 36, further comprising displaying a graphical representation of the scan chain.
- 38. The method of claim 37, wherein the graphical representation includes the topology of the scan chain.
- 39. The method of claim 38, wherein the topology includes the number of devices in the scan chain, and the number of instruction register bits in each of the devices.
- 40. The method of claim 1, comprising obtaining the topology of the chain.
- 41. A graphical user interface (GUI) for an emulator configured to emulate individual devices in a multiple device chain, said GUI comprising:
a user-selectable list of devices; a graphical display of the chain; at least one chain parameter field; and a session field configured for identifying each of a plurality of emulation sessions.
- 42. The GUI of claim 41, wherein the individual devices comprise JTAG devices and the chain includes a boundary scan chain.
- 43. The GUI of claim 42, wherein said at least one chain parameter field displays a parameter selected from the group consisting of: number of devices in the scan chain; number of instruction register bits in the scan chain; and a device number for at least one of the devices.
- 44. The GUI of claim 42, wherein the graphical display comprises the number of devices in the scan chain, the model number of each device, the Instruction Register length of each device, and relative position of each device within the scan chain.
- 45. A system for emulating individual JTAG devices in a multiple device boundary scan chain, said system comprising:
a topology module configured to obtain the topology of the scan chain; a selection module coupled to said topology module, said selection module configured to select a target device within the scan chain; a server having a transmit buffer; an emulation instruction module configured to generate emulation sequences configured for execution by the at least one target device; said server configured to record the emulation sequences in the transmit buffer; and said server configured to transmit the emulation sequences from the transmit buffer to the scan chain; wherein the emulation sequences pass the at least one other device and are executed by the target device.
- 46. The system of claim 45, comprising a bypass module configured to generate bypass sequences to place the at least one other device into bypass mode.
- 47. A system for emulating individual JTAG devices in a multiple device boundary scan chain, said system comprising:
an operating system module; said operating system module including:
a topology module configured to obtain the topology of the scan chain; a selection module configured to select a target device within the scan chain; and an emulation instruction module configured to generate emulation sequences configured for execution by the target device and to bypass at least one other device for execution by the target device; at least one driver coupled to the operating system; a server having a transmit buffer; said server configured to record the emulation sequences in the transmit buffer; and said server configured to transmit the emulation sequences from the transmit buffer to the scan chain, wherein the emulation sequences bypass the other device and are executed by the target device.
- 48. An article of manufacture for emulating individual JTAG devices in a multiple device boundary scan chain, said article of manufacture comprising:
a computer usable medium having a computer readable program code embodied therein, said computer readable program code including instructions for:
effecting a session including:
selecting at least one target device within the chain; instantiating a server having a transmit buffer; creating emulation sequences configured for execution by the target device and to bypass at least one other device on the chain; recording the emulation sequences in the transmit buffer; and transmitting the recorded emulation sequences to the scan chain; wherein the emulation sequences bypass the at least one other device and are executed by the target device.
- 49. Computer readable program code for emulating individual JTAG devices in a multiple device boundary scan chain, said computer readable program code comprising instructions to perform the following steps:
effecting a session including:
selecting at least one target device within the chain; actuating a server having a transmit buffer; creating emulation sequences configured to bypass at least one other device on the chain; recording the emulation sequences in the transmit buffer; and transmitting the recorded emulation sequences to the scan chain; wherein the emulation sequences bypass the at least one other device and are executed by the target device.
- 50. A system for emulating individual JTAG devices in a multiple device boundary scan chain, said system comprising:
a topology module configured to obtain the topology of the scan chain; a selection module coupled to said topology module, said selection module configured to select a target device within the scan chain; a server having a transmit buffer; an emulation instruction module configured to generate emulation sequences which bypass at least one other device in the scan chain; said server configured to record the emulation sequences in the transmit buffer; said server configured to transmit the emulation sequences from the transmit buffer to the scan chain, wherein the emulation sequences bypass the other device and are executed by the target device; and a graphical user interface (GUI) including:
a user-selectable list of JTAG devices; a graphical display of the chain; at least one chain parameter field; and a session field configured for identifying at least one emulation session.
- 51. An emulator comprising:
an emulator connector configured to couple to a scan chain; a topology module configured to obtain the topology of the scan chain; a selection module coupled to said topology module, said selection module configured to select a target device within the scan chain; a server having a transmit buffer; an emulation instruction module configured to generate emulation sequences which bypass at least one other device in the scan chain; said server configured to record the emulation sequences in the transmit buffer; and said server configured to transmit the emulation sequences from the transmit buffer to the scan chain; a translation module configured to translate the emulation sequences into a format usable by the target device; wherein the emulation sequences bypass the other device and are executed by the target device.
RELATED APPLICATIONS
[0001] This application is related to U.S. patent application Ser. No. 09/921,250, entitled Multiple Device Scan Chain Emulation/Debugging, filed Aug. 2, 2001, which claims the benefit of U.S. Provisional Application Ser. No. 60/252,316, filed Nov. 21, 2000. This application is also related to U.S. patent application Ser. No. 10/083,224, entitled Multi-Core Controller filed Feb. 26, 2002.