Functional circuit board testing presents many challenges that are often costly and time consuming. Most functional tests need to be customized for each design, limiting reusability. This results in software engineers vying for time between development code and test code. Even when functional tests become available, the diagnostic details are often inadequate to give clear visibility on a given problem.
ScanExpress JET is a tool designed to overcome these challenges by automating the functional test generation process on CPU–based IEEE-1149.1 compliant circuit boards. Coined JTAG Embedded Test, JET is the preferred method for at-speed, non-intrusive functional testing.
- Dramatically enhances UUT test coverage when it includes a CPU with a JTAG debug/emulation port
- CPU assists at-speed testing using test routines downloaded via JTAG into CPU cache memory or external RAM
- JTAG Embedded Tests are able to be combined with boundary-scan structural tests for extended test coverage
- Automatic generation of functional tests for common peripherals
- Software guides the user through a logical sequence of steps for constructing test steps from start to finish
- “C”-style command file script language with single-step capability assists in writing custom test sequences
- Extends coverage beyond boundary-scan for:
- All CPU accessible resources
- Boundary-scan inaccessible components and analog devices
- I/O port testing using external equipment
- In-System Programming (ISP) of Flash up to theoretical speeds
- Large library of supported processors
- Automatically constructs test plans for integration into the ScanExpress Runner™ test execution sequencer (sold separately)
JET automates at-speed functional test development of peripheral components that interface with an IEEE-1149.1 compatible CPU. JET provides a peripheral component library that allows reusability across multiple CPU platforms. The highly customizable diagnostic scripts provide users with the pinpoint resolution they need to clearly identify failures. Corelis offers both a stand-alone JET solution as well as a combined solution with traditional JTAG structural interconnect testing. JET is ideal for testing boards without the need to modify the PCB circuitry or the on-board firmware. JET operates through a CPU’s
JTAG port to provide users simplified access to the following operations:
- Run, Stop, and Step Functions
- Ability to Write to Registers and Memory
- Ability to Read from Registers and Memory
- Exchange Parameters with the JTAG Host
- Display CPU Status
The host software automatically uses these features to download test & diagnostic routines into the CPU’s cache or external memory. These routines then execute at full processor speed and send results back to the host.
Corelis also supports the following processors. Click Here.
For more information, please contact Corelis sales.
|Altera||ARM Cortex-A9 MPCore|
|Cyclone V SoC|
|AU15x0, Au1000, AU1000LP, AU1000N, Au1100, Au1200, Au1500, AU1550, 8th G x86, Athlon, Duron 7thG, Efficeon, Geode NX, K7, SC520|
|PowerPC-401GF, PowerPC-403GA, PowerPC-403GB, PowerPC-403GC, PowerPC-403GCX, PowerPC-405CR, PowerPC-405EP, PowerPC-405EX, PowerPC-405EXr, PowerPC-405EZ, PowerPC-405GP, PowerPC-405GPR, PowerPC-405H, PowerPC-405L, PowerPC-405LP, PowerPC-405PM, PowerPC-405PS, PowerPC-4xx, PowerPC-NPe405H, PowerPC-NPe405L, PowerPC-440EP, PowerPC-440EPx, PowerPC-440GP, PowerPC-440GPR, PowerPC-440GR, PowerPC-440GRx, PowerPC-440GX, PowerPC-440SP, PowerPC-440SPe, PowerPC-460EX, PowerPC-460GT|
|tangent-A4, tangent-A5, ARC 605, ARC 610D, ARC 625D, ARC 710D, ARC 725D, ARC 750D|
|ARM||ARM7, ARM9, ARM9E, ARM11|
|Cortex-M3, Cortex-A9 MPCore, ARM1136, ARM1136J-S, ARM1136JF-S, ARM1156, ARM1176, ARM11MPCore, ARM710T, ARM710T-AMBA, ARM720T, ARM740T, ARM720T-AMBA, ARM740T-AMBA, ARM7TMDI-AMBA, ARM7TMDI-S, ARM7TMDI, ARM922T, ARM925T, ARM926T, ARM940T, ARM946T, ARM9TDMI, ARM920T, ARM926EJ-S, ARM946E-S, ARM966E-S, ARM968E-S, ARM996HS|
|Atmel||ARM7, ARM9, ARM9E|
|AT91C140, AT91F40416, AT91F40816, AT91FR40162, AT91FR40162S, AT91FR4042, AT91FR4081, AT91M40400, AT91M40800, AT91M40807, AT91M42800A, AT91M43300, AT91M55800A, AT91M63200, AT91R40008, AT91R40807, AT91RM3400, AT91SAM7A1, AT91SAM7A2, AT91SAM7A3, AT91SAM7S128, AT91SAM7S256, AT91SAM7S32, AT91SAM7S321, AT91SAM7S512, AT91SAM7S64, AT91SAM7SE256, AT91SAM7SE32, AT91SAM7SE512, AT91SAM7X128, AT91SAM7X256, AT91SAM7X512, AT91SAM7XC128, AT91SAM7XC256, AT91SAM7XC512, AT91RM9200, AT91SAM9260, AT91SAM9261, AT91SAM9261S, AT91SAM9263, AT91SAM9G20|
|Broadcom||MIPS, MIPS32, MIPS64|
|BCM5706, BCM5708, BCM6352, BCM7110, BCM7315, BCM7803, BCM1100, BCM1101, BCM3310, BCM3345, BCM3348, BCM3349, BCM3350, BCM3351, BCM3352, BCM3360, BCM3361, BCM3362, BCM6348, BCM7100, BCM1122, BCM1125, BCM1125H, BCM1125Y, BCM1155, BCM1180, BCM1250, BCM1255, BCM1260, BCM1280, BCM1455, BCM1480, BCM1103, BCM1113, BCM5350, BCM5365, BCM6338, BCM6345, BCM6358, BCM6550, BCM7111, BCM7115 , BCM7312, BCM7317, BCM7318, BCM7401, BCM7402, BCM4704, BCM4716, BCM4717, BCM4718, BCM1250|
|Cirrus Logic||ARM7, MIPS32|
|CS22210, CS22220, CS22230, CS22250, CS22270, CS89712, EP7209, EP7211, EP7212, EP7339, EP7407, PS7110, PS7111, PS7500FE, SH8665, SH8668, EP7309, EP7311, EP7312, CS7410|
|Freescale||ARM7, ARM9, ARM9E, ARM11, Coldfire, CPU32, Power Architecture Technology, Cortex-A8, DSP|
|i.MX51, i.MX31, i.MX31L, MAC7101, MAC7104, MAC7105, MAC7106, MAC7111, MAC7112, MAC7114, MAC7115, MAC7116, MAC7121, MAC7122, MAC7124, MAC7125, MAC7126, MAC7131, MAC7134, MAC7135, MAC7136, MAC7141, MAC7142, MAC7144, MAC7200, MAC7202, MAC7212, MAC7222, MAC7241, MAC7242, MAC7252, MAC7xxx, i.MXS, M9328MX1, MC9328MX1, MC9328MXL, MC9328MXS, MC9328MX21, MC9328MX21S, MC94MX21, i.MX21, i.MX27, XC68HC912, MCF5202, MCF5203, MCF5204, MCF5206, MCF5206E, MCF5207, MCF5208, MCF52100, MCF5211, MCF52110, MCF5212, MCF5213, MCF5214, MCF5216, MCF52210, MCF52211, MCF52212, MCF52213, MCF52221, MCF52223, MCF52230, MCF52231, MCF52232, MCF52233, MCF52234, MCF52235, MCF52236, MCF52274, MCF52277, MCF5232, MCF5233, MCF5234, MCF5235, MCF5249, MCF5249L, MCF5251, MCF5253, MCF5270, MCF5271, MCF5272, MCF5274, MCF5274L, MCF5275, MCF5275L, MCF5280, MCF5281, MCF5282, MCF52xx , SCF5250, MCF5307, MCF5307A, MCF5307B, MCF5327, MCF5328, MCF53281, MCF5329, MCF5372, MCF53721, MCF5372L, MCF5373, MCF5373L, MCF53xx , MCF5407, MCF5407C3, MCF54450, MCF54451, MCF54452, MCF54453, MCF54454, MCF54455, MCF5470, MCF5471, MCF5472, MCF5473, MCF5474, MCF5475, MCF5480, MCF5481, MCF5482, MCF5483, MCF5484, MCF5485, MCF54xx , 683xx , MC68302, MC68306, MC68307, MC68308, MC68328, MC68330, MC68331, MC68332, MC68334, MC68336, MC68338, MC68340, MC68341, MC68349, MC68356, MC68360, MC68376, MC68EN360, MC68F333, MC68MH360, 56300, 56600, 56700, 56800, DSP56301, DSP56303, DSP56307, DSP56309, DSP56311, DSP56321, DSP56362, DSP56364, DSP56366, DSP56367, DSP56371, DSP56374, DSP56824, DSP56852, DSP56853, DSP56854, DSP56855, DSP56857, DSP56858, DSP56F801, DSP56F802, DSP56F803, DSP56F805, DSP56F807, DSP56F8122, DSP56F8123, DSP56F8135, DSP56F8145, DSP56F8146, DSP56F8147, DSP56F8155, DSP56F8156, DSP56F8157, DSP56F8165, DSP56F8166, DSP56F8167, DSP56F826, DSP56F827, DSP56F8322, DSP56F8323, DSP56F8335, DSP56F8345, DSP56F8346, DSP56F8347, DSP56F8355, DSP56F8356, DSP56F8357, DSP56F8365, DSP56F8366, DSP56F8367, RedCap, StarCore, MSC7110, MSC7112, MSC7113, MSC7115, MSC7116, MSC7118, MSC7119, MSC8101, MSC8103, MSC8122, MSC8122SW, MSC8126, MSC8126SW, MSC8144, MSC8144E, MSC8144EC, DSP56156, DSP56166, MGT5100, PPC750CX, PPC750CXE, MGT560|
|PPC401 , PPC403 , PPC405 , PPC603, PPC604, PPC604e, PPC740L, PPC740, PPC750, PPC750CLDD2, PPC750CX, PPC750CXDD2, PPC750CXe, PPC750CXEDD2, PPC750CXr, PPC750FLDD2, PPC750FX, PPC750FXDD2, PPC750GLDD1, PPC750GX, PPC750GXDD1, PPC750L, PPC603e, PPC603ev|
|Z500, Z510, Z510P, Z510PT, Z515, Z520, Z520PT, Z530, Z530P, Z540, Z550, 80200 , 80219 , 80321 , 80331, 80332 , IOP310 , IOP321, IQ80315 , IQ81341, IQ81342 , IXC1100, IXP2350, IXP23x0 , IXP2400, IXP2800, IXP2805, IXP2850, IXP2855, IXP28xx , IXP420, IXP421, IXP422, IXP423, IXP425, IXP460, IXP465, IXP46x , PXA210, PXA250, PXA255, PXA25x , PXA260, PXA261, PXA262, PXA263, PXA26x , PXA270, PXA271, PXA272, PXA273, PXA27x , PXA290, PXA29x|
|88i8945, 88FR101, PXA255|
|4Kc, 4Ke , 4Km , 4Kp, 5Kc|
|KSZ8695P, KSZ8695PX, KSZ8695X, KSZ8692PB, KSZ8692MPB, KSZ8692XPB, KSZ8692PB, KSZ869MPB, KSZ8692XPB|
|ERTEC200, VR5432, VR5500|
|LPC21xx, LH75400, LH75401, LH75410, LH75411, LH79520, LH79524, LH79525, LPC2101, LPC2102, LPC2103, LPC2104, LPC2105, LPC2106, LPC2109, LPC2112, LPC2114, LPC2119, LPC2124, LPC2129, LPC2131, LPC2131/01, LPC2132, LPC2132/01, LPC2134, LPC2134/01, LPC2136, LPC2136/01, LPC2138, LPC2138/01, LPC2141, LPC2142, LPC2144, LPC2146, LPC2148, LPC2157, LPC2158, LPC2194, LPC2210, LPC2212, LPC2214, LPC2220, LPC2290, LPC2292, LPC2294, LPC2361, LPC2362, LPC2364, LPC2365, LPC2366, LPC2367, LPC2368, LPC2377, LPC2378, LPC2387, LPC2388, LPC2460, LPC2468, LPC2470, LPC2478, LPC2880, LPC2888, LPC3xxx, LH7A400, LH7A404, LPC3130, LPC3131, LPC3141, LPC3143, LPC3152, LPC3154, LPC3180, LPC3181, LPC3180, LPC3220, LPC3230, LPC3240, LPC3250|
|ML674000, ML674001, ML674002, ML674003, ML675001, ML675002, ML675003, ML67Q4050, ML67Q4051, ML67Q4060, ML67Q4061, ML696201, ML69Q6203|
|RM7900, RM7935, RM7965, RM9000x1, RM9000x2, RM9150, RM9220 (RM9000x2GL), RM9222 (RM9000x2GL), RM9224 (RM9000x2GL)|
|Au1000, Au1100, Au1200, Au1210, Au1250, Au1500, Au1550, XLR, XLR308, XLR508, XLR516, XLR532, XLR716, XLR732, XLS202, XLS204, XLS404, XLS408, XLS608|
|Samsung||ARM7, ARM9, ARM9E|
|KS17C4000 , S3C4510 , S3C4530 , S3F441FX , S5N8947 , S3C3410, S3C44B0X, S3C4510B, S3F4A0KR, S3F4A1HR, S3F4A2FR, S3C2410, S3C2500 , S3C2410A, S3C2440, S3C2440A, S3C2442A, S3C2443, SC32442, S3C2412, S3C2413|
|ST Microelectronics||ARM7, ARM9, ARM10E|
|STA2064, STA2065, STA2051, STR710, STR710FZ1, STR710FZ2, STR711FR0, STR711FR1, STR711FR2, STR712FR0, STR712FR1, STR712FR2, STR715FR0, STR730, STR730FZ1, STR730FZ2, STR731FV0, STR731FV1, STR731FV2, STR735FZ1, STR735FZ2, STR736FV0, STR736FV1, STR750FL2, STR750FV0, STR750FV1, STR750FV2, STR751FR0, STR751FR1, STR751FR2, STR752FR0, STR752FR1, STR752FR2, STR755, STR755FR0, STR755FR1, STR755FR2, STR755FV0, STR755FV1, STR755FV2, STn8810, STn8810S12, STn8811A12, STn8815A09, STn8815A12|
|Texas Instruments||ARM7, DSP, OMAP|
|TMS470R1A128, TMS470R1A256, TMS470R1A288, TMS470R1A384, TMS470R1A64, TMS470R1B1M, TMS470R1B512, TMS470R1B768, TMS470R1VC336A, TMS470R1VC338, TMS470R1VC346A, TMS470R1VC348, TMS470R1VC688, TMS470R1VF288, TMS470R1VF336, TMS470R1VF336A, TMS470R1VF338, TMS470R1VF346A, TMS470R1VF348, TMS470R1VF356A, TMS470R1VF37A, TMS470R1VF448, TMS470R1VF45A, TMS470R1VF45AA, TMS470R1VF45B, TMS470R1VF45BA, TMS470R1VF478, TMS470R1VF48B, TMS470R1VF48C, TMS470R1VF55B, TMS470R1VF55BA, TMS470R1VF67A, TMS470R1VF688, TMS470R1VF689, TMS470R1VF76B, TMS470R1VF7AC, TMS320C5501, TMS320C5502, TMS320C5503, TMS320C5506, TMS320C5507, TMS320C5509, TMS320C5509A, TMS320C5510, TMS320C6202, TMS320C6412, TMS320C6413, TMS320C6415, TMS320C6416, TMS320C6455, TMS320C6711, TMS320C6713, TMS320C6713B, TMS320VC5510A, TMS320DM642, TMS320DM6446, TMS320DM6467, TMS320DM646x, OMAP3503, OMAP3515, OMAP3525, OMAP3530, OMAP35x, OMAP-L137, OMAP-L138, OMAP-L1x, OMAP5910, OMAP5912|
|WIN71711, WIN71718, WIN717D4, WIN717D6, WIN717P4, WIN717W3, WIN717W6, WIN730, WIN737, WIN737D4, WIN737M6, WIN737P4, WIN740P6, WIN747, WIN747D2, WIN747D4, WIN747P6, WIN747W6, WIN770, WIN770M6, WIN777, WIN777M6, WIN780, WIN780M6, WIN780W4, WIN787, WIN787D4, WIN787M6, WIN7xx, WIN867M6NFFI350 , WIN1xx|
|PPC405, Z-7010, Z-7015, Z-7020, Z7030, Z-7035, Z-7045, Z-7100, Z-7007S, Z-7012S, Z-7014S|
Corelis pioneered JTAG emulation and has provided customers with thousands of JTAG emulators for many CPU types. Corelis is also the world leader in boundary-scan test tools. Combining these two technologies into one product provides customers with an integrated development and execution test environment with a single point of contact and support.
The JET testing method depends on the UUT having a JTAG-enabled processor (CPU) on-board. The CPU dedicated JTAG Test Access Port (TAP) is generally routed to a single emulation connector on the board. Other JTAG interconnect scan chains may be connected to different JTAG connectors which are used for boundary-scan testing.
The CPU debug TAP brings control and visibility of the processor itself to the host. This is the same TAP employed by JTAG emulators for software development and debug. Included are access to the CPU register/control structures, attached memory, and the ability to utilize the CPU debug running/stepping facilities for testing.
The JET method harnesses the power of the target embedded CPU to assist in the code download, device programming, and testing operations at full processing speed. Several basic features are available:
Write to Registers and memory
Read from Registers and memory
Exchange parameters with the JTAG host
Display CPU status
The host software uses these features to download test/diagnostics routines into the CPU’s cache memory and into the target memory. These routines execute at speed and pass the test results to the host.
There is no need to modify the on-board application software, typically stored in Flash memory. The Flash memory itself can be similarly programmed using the CPU as an algorithm expediter. This avoids the slower wiggling approach of JTAG Flash programming.
Connecting to a UUT
JET requires a UUT with a JTAG-enabled processor having external access to its Test Access Port (TAP). A Corelis controller serves as the interface between the PC and the TAP interface.
Boards typically include a single JTAG TAP connector that is dedicated to the CPU. This TAP is often used for JTAG–based software debug and emulation. Boards may also include other JTAG TAP connectors, primarily being used for boundary-scan test and in-system programming.
The figure above depicts connecting a Corelis NetUSB-1149.1/E™ four-port JTAG controller to a board that includes three separate TAP connectors: a CPU with a dedicated JTAG port, and two additional JTAG ports containing other boundary-scan compatible devices.
The ScanExpress JET system is also able to handle cases where the CPU and other boundary-scan devices share the same scan-chain.
Using ScanExpress JET
The ScanExpress JET tool is available as a stand-alone application or as a plug-in to ScanExpress TPG. Functional tests that are generated using ScanExpress JET are also compatible with the ScanExpress Runner test executive. Figure 2 depicts the ScanExpress JET GUI.
The ScanExpress JET Integrated Development Environment (IDE) consists of the following major functions:
Preparation – Several screens that guide the user step by step on how to collect information about the devices and setup of various test options. Following these steps, the tool automatically produces the functional test steps.
Test Steps – Program that executes the test steps that were previously created by the preparation function.
Reports – Analysis program to view and calculate test coverage statistics.
Execution with the ScanExpress Runner option – Invokes the ScanExpress Runner test executive to run both boundary-scan and JET tests from a single test plan.
ScanExpress JET has the ability to record all feature selections and file references to enable recalling a given project. This serves as a mechanism to quickly retest previous target boards as well as providing a starting point for migrating similar test scenarios.
When operating as a plug-in to ScanExpress TPG™, ScanExpress JET inherits the boundary-scan environment parameters, including all settings and files of the host application.
This constitutes a set of sequential screens which guide a user in selecting options and declaring device specific parameters. It collects all the information required to perform automatic testing using the JET methodology. It also includes optional JTAG operations to assure minimal board connectivity at the outset.
The major pieces of information required by the tool include::
Devices – The tool requires knowledge of CPU visible resources in the circuit. This includes information such as memory device features including size, width of the addresses, etc. Much of this information can be obtained automatically by the tool.
Custom test scripts – User developed test routines beyond those automatically created by the tool.
The information collected becomes part of the project when saved.
Completion of the Preparation phase results in the automatic creation of scripts, download routines, and embedded testing steps required to perform specific board testing.
The Test Steps screen lists the test steps automatically created during the preparation phase and provides controls to run tests on the target and view results. The steps can be invoked individually, run in their entirety or with an enabled subset, and can even be looped.
Progress while the steps are underway is also indicated.
This screen shows a PASS/FAIL indication summarizing the overall outcome of all enabled test operations. Detailed diagnostics of failure causes is displayed.
The Reports function provides access to test coverage statistics enabling the user to determine the overall testability utilizing ScanExpress JET. Included are merged coverage statistics showing how well testing confirms board operability. Coverage information includes both JET steps as well as legacy boundary-scan tests.
ScanExpress JET test steps can be executed from the ScanExpress Runner environment. ScanExpress JET will automatically pass the generated test files to ScanExpress Runner. Clicking on the Runner icon in the shortcut pane on the left side of the ScanExpress JET main window launches ScanExpress Runner.
Using ScanExpress Runner to execute boundary-scan tests in conjunction with JET based tests provides a single test environment for a complete test using both test methods. Verifying structural integrity with JTAG interconnection test prior to running JET functional tests results in better overall diagnostics during failure conditions.
Figure 3 shows a test procedure within ScanExpress Runner that contains both boundary-scan and JET functional tests.
JET is able to increase board test coverage by quickly combining boundary-scan testing with at-speed functional testing.
JET assists in prototype debug before test firmware or test fixtures are available
JET is able to save coding time through automatic test and diagnostic generation.
Field Application Engineers
JET can be used to field validate a customer board or upgrade firmware on-site.
JET can identify board failures quickly reducing the repair cost per unit.
- ScanExpress JET Test Development System supporting both Test Program Generation and Execution.
- CPU specific support package for ScanExpress JET. Contact Corelis for a list of supported processors and part numbers.
Note: At least one CPU support package must be purchased with the ScanExpress JET Test Development System.