Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/MDAT.2016.2590982, IEEE Design
and Test
Abstract: Analog test buses and serial digital access to ADC of an N-bit ADC, or updates the input to an N-bit DAC, it is
and DAC ports are widely used analog DFT techniques. But often necessary to continuously shift the data so that periodic
they cannot be described in a standard way to facilitate digital samples of an analog waveform are conveyed. For
automatic test pattern generation, and serial access is typically instance, when an ADC samples a 1 MHz sine wave, the
too inefficient for periodic sampling. This paper shows that if signal would usually be sampled at a much higher frequency
a small amount of digital circuitry is added to each ADC/DAC than the sine wave’s, for example at 10 MHz. If the ADC has
parallel port, it could be described in IEEE 1687’s instrument an 8-bit parallel output, then the 8-bit samples would be
connection language (ICL) to facilitate optimally efficient, shifted out serially at 80 Mb/s. If the ADC’s register was only
automated streaming access to the parallel ports. accessible in series with other shift register stages, and all of
the shift register’s bits must be shifted out before capturing a
Keywords: mixed-signal DFT, IEEE 1687 next sample, then many more clock cycles would be needed to
convey each 8-bit sample, and thus an even higher clock rate
PRESENTLY THERE ARE no commercially available would be needed.
automation tools for general analog design-for-test (DFT) or The IEEE 1687 “Standard for Access and Control of
automatic test pattern generation (ATPG). It is widely thought Instrumentation Embedded with a Semiconductor Device” [4]
that this is due to the lack of any analog DFT technique that is solves three aspects of this problem. First, it enables serial
as general and widely-used as scan-based DFT is for random shift register reconfiguration so that only the desired register
logic. bits for a given test (e.g., ADC and DAC registers) are
In fact, analog test buses have been implemented in ICs included in the shift register. Second, it allows serial access
for over 30 years [1], and continue to be used in even the latest through functional interfaces without additional dedicated test
production CMOS technologies (e.g., 14 nm at AMD). ICs points. Third, it allows ATPG for serial access to registers
often have multiple analog test buses because separate buses within an IC, in a way that allows automated re-targeting of
are needed for forcing/driving a voltage (or current) and for the patterns when the registers are connected serially in a
sensing the resulting voltage, and doing this in each voltage different order in a new IC design. However, 1687 was not
domain of the IC. In the early 1990s, development of the IEEE developed with periodic sampling in mind.
1149.4 mixed-signal test bus [2] attempted to standardize
analog test access, but the cost of adding two analog test bus Parallel/Serial Conversion Schemes
pins in addition to the IEEE 1149.1 test access port’s four pins A variety of parallel-to-serial data conversion schemes
[3] has proven too expensive for most mixed-signal ICs since has been developed over the years for general access to on-
they often have fewer than 30 signal pins. Reusing an IC chip registers, such as the inter-IC bus (I2C) [5], serial
function’s analog-to-digital converter (ADC) and/or digital-to- peripheral interface (SPI), and IEEE 1149.1 [3], but these are
analog converter (DAC) can provide a lower-cost and digital not intended for conveying samples of analog signals at a
method to convey analog test bus voltages into and out of pin- constant or maximal parallel-sampling rate. For example, I2C
limited designs. requires 8-bit bytes and an acknowledge bit per byte, and it is
Another DFT technique that is widely used for mixed- half-duplex; SPI requires a constant length serial register.
signal functions is serial digital access. Serial shift registers 1149.1 requires reading/writing an entire test data register
control CMOS transmission gates connected to analog buses, (TDR), which encourages the use of a dedicated TDR for each
and control surrounding digital logic functions, in addition to ADC and DAC; but if each ADC or DAC is contained in a
providing serial access to the digital ports of ADCs and DACs. different TDR, then interleaving accesses to multiple ADCs
Serial access is often used even for ICs having hundreds of and DACs requires changing the addressed TDR for each
pins because parallel test access to ADCs and DACs would access.
require too much chip area, especially if the bus width equals Various serial data communications protocols include
the number of bits of the highest resolution converter. Serial provision for accessing parallel registers. The circuits use
access can also be provided via functional interfaces (e.g. I2C) coding, or insert special periodic bit sequences or start bits to
which are already part of many mixed-signal designs. delineate data packet or frame boundaries, which reduces the
When a data register to be accessed captures the output number of samples that can be conveyed in a given time
2168-2356 (c) 2016 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/MDAT.2016.2590982, IEEE Design
and Test
2168-2356 (c) 2016 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/MDAT.2016.2590982, IEEE Design
and Test
For these circuits, after the Packet-size and Offset have simply the sum of the bit-widths of the parallel-in-serial-out
been shifted in, an Update occurs that instructs a segment (PISO) registers associated with the respective ADCs. Row 3
insertion bit (SIB) to exclude the Packet-size register and shows that when accessing the DAC, a relatively large offset
counter from the shift register and activate counting (if Packet- is needed, since it is the number of register bits from test data
size > 0). Excluding these ensures they do not respond to in (TDI) to the furthest bit of the DAC serial-in-parallel-out
activity on the Capture Enable (CE), Shift Enable (SE), and (SIPO) register, plus one. The fourth row shows a Packet-size
Update Enable (UE) signals. Initialization of the Packet-size of 14 when the two ADCs and the DAC are accessed, showing
and Offset registers happens once, then they are bypassed by that Packet-size is the sum of ADC and DAC bit-widths when
the SIB and out of the active shift register during the they are all accessed simultaneously.
remainder of the test. The Packet-size register must be large
enough to hold the largest anticipated Packet-size, which we
expect will usually be less than 64, hence 6 bits is sufficient.
The Offset counter must be large enough to hold an
Offset equal to the largest number of clock cycles that could
occur before updates or captures occur. For a DAC, the Offset
is equal to the number of shift register bits preceding the DAC,
plus the DAC’s bits, plus one (since the update pulse occurs
after the bits have arrived in the DAC’s register); a sum which
we expect will usually be less than 1024, hence, 10 bits is
sufficient. For an ADC, the largest Offset would be equal to
the number of scan register bits between the ADC and the
immediately preceding ADC (that would be simultaneously
accessed), or equal to zero if there are none.
Top-level design could ensure that the maximum number
of bits to access any ADC or DAC never exceeds 1024, for
instance, or could adjust the size of parameterized registers
and counters based on the actual size of the ADCs and DACs
included in the design.
The next section discusses an example having multiple
converters and additional shift register bits to illustrate how
packet streaming is programmed and how packets are
assembled on-the-fly as they are shifted by each ADC or DAC
register.
A Realistic Example
The circuit of Fig. 3 shows a simplified schematic in
which three parallel data registers are connected to two ADCs
and one DAC, all of different bit-widths, in a single shift
register.
The shift register includes segments for the Packet-size
and Offset registers that can be selectively bypassed using
SIBs, each of which consists of a single shift-register bit, an
update register bit, and a multiplexer. As shown in the
schematic, the number of bits stored in each Packet-size
register or Offset counter may differ, and the number of
intervening shift-register stages between each parallel register Figure 3. Realistic example circuit with two ADCs and one DAC
may differ.
Table I shows Packet-sizes and Offsets for the circuit TABLE I
that would be initialized for four example configurations of EXAMPLE SETTINGS FOR THE CIRCUIT IN FIG. 3
the streaming shift register. In all these configurations, the
4b 7b 3b
length of the shift register is 24 bits, but the periodic action Row Settings to access … ADC ADC DAC Notes
taken on the bits depends on the values initialized into the 1 4b ADC Packet 4 0 0
Packet-size and Offset registers. Offset 0 - - No offset, since 1st ADC
2 4b and 7b ADCs Packet 11 11 0 11=4+7
The first row of Table I shows a Packet-size of 4 when Offset 0 3 - 3 bits between ADCs
only the 4-bit ADC is accessed via the shift register. The 3 3b DAC Packet 0 0 3
second row shows a Packet-size of 11 when both the 4-bit and Offset - - 24 from TDI to DAC LSB +1
4 Both ADCs and DAC Packet 14 14 14 14=4+7+3
7-bit ADCs are accessed, showing that the Packet-size is Offset 2 5 24 5= 2bits to TDI + 3bits between
2168-2356 (c) 2016 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/MDAT.2016.2590982, IEEE Design
and Test
Table II shows bits (as letters, indicating associated for the ADCs. If the order of the parallel registers within the
parallel data register) that would be present in each register bit shift register is changed, or additional shift register bits are
in the circuit of Fig. 3, when the circuit’s Packet-size and inserted before, between, or after the parallel registers, then
Offsets are set according to row 4 of Table I, labeled “Both different initial counts (Offsets) are loaded into the counters.
ADCs and DAC”. All three packet-size registers are set to 14.
The 4-bit ADC’s parallel register is in bit positions 3 to 6, and Using IEEE 1687 Automation
has an initial count (Offset) of 2; the 7-bit ADC’s register is in The circuit connectivity in the preceding figures can be
bit positions 10 to 16, and has an initial count of 5; the 3-bit described in IEEE 1687’s instrument connectivity language
DAC’s register is in bit positions 21 to 23, and has an initial (ICL). As an illustrative example, ICL code for the ADC
count of 24. access circuitry in Fig. 2 is shown next (for a 4-bit ADC):
TABLE II
SHIFT REGISTER CONTENTS FOR THE CIRCUIT IN FIG. 3 Module myADC4 {
AND TABLE I SETTINGS FOR BOTH ADCS AND DAC ScanInPort SI;
ScanOutPort SO {Source DataSample[0];}
ShiftEnPort SE;
UpdateEnPort UE;
SelectPort SEL;
TCKPort TCK;
CaptureEnPort CE;
ScanRegister PacketSize[3:0] {
ScanInSource SI;
}
ScanRegister Offset[3:0] {
ScanInSource PacketSize[0];
}
Instance SIB1 of SIB {
InputPort SI = SI;
InputPort FSO = Offset[0];
}
ScanRegister DataSample[3:0] {
Attribute istream_type = “out”; // “in” for DAC
Attribute istream_packet_size_reg = “PacketSize”;
Attribute istream_packet_offset_reg = “Offset”;
ScanInSource SIB1.SO;
}
}
2168-2356 (c) 2016 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/MDAT.2016.2590982, IEEE Design
and Test
2168-2356 (c) 2016 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/MDAT.2016.2590982, IEEE Design
and Test
2168-2356 (c) 2016 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.