Professional Documents
Culture Documents
Paul Reuter
Mentor Graphics
superset of STIL with restrictions in the
Editor’s note: way patterns can be represented in
The Core Test Language, originally developed within the IEEE 1500 develop- STIL for test pattern reuse (see http://
ment working group but later spun out as an independent standard, grouper.ieee.org/groups/ctl).6 As a re-
specifies the standardized language in which core test information for both sult, every CTL pattern is a STIL
wrapped and still-to-be-wrapped cores is described. pattern, but not every STIL pattern is a
Erik Jan Marinissen, IMEC CTL pattern. Two extensions of the
CTL standard are currently under devel-
THE CORE TEST Language (CTL) began as a sub- opment, and these are discussed in the ‘‘Open
activity of IEEE Std 1500, the standard for core Compression Interface’’ and ‘‘Memory CTL’’ sidebars.
testing.1,2 It was initially proposed as one of the solu- In this article, we present a brief tutorial on CTL
tions for core testing competing with the hardware and describe its usage in the EDA industry. We also
proposal. Over time, CTL evolved into a general lan- describe the uses of CTL in various parts of a DFT
guage for core testing, and the hardware became flow. Released tools already include some of these
the wrapper technology. As a result, separate stan- uses; others will be included in tools still in
dards were needed for CTL and the hardware: development.
36
0740-7475/09/$25.00 c 2009 IEEE Copublished by the IEEE CS and the IEEE CASS IEEE Design & Test of Computers
[3B2-8] mdt2009010036.3d 6/1/09 11:10 Page 37
the same function, and a typical integrated test solution ScanCells (Figure 2). Therefore, these entities must
would need only one of the two. be defined in CTL such that information can be pro-
Within the mode, test information describes usage vided for them. Figure 1 shows the blocks of syntax
or characteristics of Signal, CoreInstances, and that define these entities in CTL relative to the Envi-
ronment block of statements that contains the mode
information. Within each mode, information is
defined for these entities or using these entities.
Signals ScanStr CoreInst
{} {} {}
CTLMode config2 {
Internal { }
External { }
}
}
Scan cells
January/February 2009 37
[3B2-8] mdt2009010036.3d 6/1/09 11:10 Page 38
Memory CTL
Saman Adham, LogicVision
Memory CTL (P1450.6.2) was created to MemoryPhysicalTopology {
// Physical info in this block
address some limitations of IEEE Std BitDistribution 1;
1450.6-2005 regarding embedded memo- ColumnMultiplexing 8;
BitLineMirroring 1;
ries. Although CTL can represent a memory
that has undergone BIST, the standard has // Address and Data Scrambling
limitations in supporting a flow in which infor- ScrambleDefinition AddMap {
// Address topology
mation must be represented for a memory TopologicalColumnAddress[0] = Add[0];
such that BIST logic can be created to test TopologicalColumnAddress[1] = Add[1];
TopologicalColumnAddress[2] = Add[2];
and repair that memory. As a result, TopologicalRowAddress[3] = Add[3];
P1450.6.2 is creating syntax and semantics TopologicalRowAddress[4] = Add[0]^Add[4];
TopologicalRowAddress[5] = Add[5];
to support this flow. New CTL blocks define TopologicalRowAddress[6] = Add0]^Add[6];
different aspects of the memory, enabling ef- TopologicalRowAddress[7] = Add[7];
ficient and accurate memory test: memory TopologicalRowAddress[8] = Add[0]^Add[8];
TopologicalRowAdd[9] = Add[9];
redundancy and repair is defined in one spe- TopologicalRowAddress[10]= Add[0]^Add[10];
cific CTL block, the memory’s physical }
ScrambleDefinition DataMap {
topology is defined in another block, and // Data topology
so on. TopologicalData[0] = Data[0] ^ Add[3];
TopologicalData[1] = ~Data[1] ^ Add[3];
Figure B shows an example of a memory TopologicalData[2] = Data[2] ^ Add[3];
described in this new syntax. A new block TopologicalData[3] = ~Data[3] ^ Add[3];
.
represents the physical information about .
memories. This example focuses on the TopologicalData[23] = ~Data[23] ^ Add[3];
scramble map. A three-port memory is }
Relation{
defined with the same address- and data- // All memory ports use same Scramble Map
scrambling for all ports. The relationship be- ScrambleMap AddMap + DataMap {Port 0}
ScrambleMap AddMap + Datamap {Port 1}
tween the topological address and data is ScrambleMap AddMap + DataMap {Port 2}
defined in terms of the pins to the memory }
}
being described.
Saman Adham is senior director of engi-
Figure B. Example of a memory described in the new syntax
neering at LogicVision. Contact him at
defined by Memory CTL (P1450.6.2).
saman@logicvision.com.
This information is partitioned into subblocks of that come with a core can be described in CTL
modes, as also shown in Figure 1. Figure 3 illustrates syntax. Of course, this information resides in the Pat-
the information described in a design and the blocks ternInformation{} portion of the syntax. The test
of syntax used in a CTLMode. patterns are restricted to be written with the data and
Relation{} describes relationships between sig- protocol portions separated. The data consists of the
nals of the design. Examples of such relationships 1s and 0s, and the protocol is the procedure that
include one-hot or differential. Internal{} describes applies the data to the signals such that the stimulus
information in the mode, which is indicated by the and observations occur in a special sequence that
shaded area from the signals inward. PatternInfor- could entail shift operations. This separation lets test
mation{} describes sequence information in a mode. engineers write pattern-porting applications, which ma-
The language achieves its generality by using sequen- nipulate the test patterns in an embedded core’s CTL
ces to describe the establishment of a mode or its such that they work from the SoC’s boundary. The in-
termination. complete code segment in Figure 4 shows how
One characteristic of the language that deserves patterns are described in CTL with the data and proto-
special mention is test pattern reusability. Test patterns col separated.
January/February 2009 39
[3B2-8] mdt2009010036.3d 6/1/09 11:10 Page 40
January/February 2009 41
[3B2-8] mdt2009010036.3d 6/1/09 11:10 Page 42
and an integral part of a DFT synthesis environment computer engineering from the University of Texas at
where abstraction is needed for capacity reasons. Austin. He is a Fellow of the IEEE.