ALU Based Address Generation For RAMs
ALU Based Address Generation For RAMs
ALU Based Address Generation For RAMs
1. Introduction
Built-In Self-Test (BIST) has become a standard industrial practice for testing memories since memory cores constitute a major part of the die area [1, 4, 5, 15, 12]; it is anticipated that by 2014 memories will take up 94% of the die area [16]. In addition, memories are more susceptible to defects, and hence, to faults due to that they are designed with minimal design rule tolerances. In memory BIST, accesses are performed at-speed [2]-[5], [7][9], while the technology (45 nm and beyond) results in speed-related faults [3, 8, 11, 19]. Therefore low-cost, memory BIST schemes should support a variety of algorithms, while allowing for a simple implementation. One of the key components of memory BIST is the address generator (AG). In order to detect speedrelated faults, the address generator has to generate different address sequences to allow for appropriate address transitions. Its complexity is a major design issue since it requires large area and limits the BIST speed. It has been shown that the relative area (in %) occupied by the address generator for the schemes proposed in [4, 15, 12] varies between 26% and 33% of the memory BIST scheme. For memory testing, the address generator has to generate different Counting Methods (CMs) since each counting method has its own detection
Table 1: Linear and Address Complement counting methods In this work we contribute to the field of memory BIST by proposing a novel address generator based on an ALU. ALU modules commonly exist in current circuits; moreover, the outputs of ALU modules drive the address input of RAM modules, as shown in the elementary schematic diagram of the MIPS architecture of Figure1 [13]. Therefore, the utilization of the existing ALUs as address
-1-
2012 International Conference on Design & Technology of Integrated Systems in Nanoscale Era
generators for the testing of RAMs may drive down the hardware overhead.
[14] also proposed the scheme shown in Figure 2(b) which uses the signal M1 to control the multiplexers. The scheme presented in Figure 2(b), apart from the n-stage counter, requires n 4-to-1 multiplexers and one 2-to-1 multiplexer, as well as some logic to control the value of the 2-bit signal M1.
3. Proposed scheme
In this work we propose an ALU based address generator; the proposed scheme assumes an accumulator-like structure, like the one shown in Figure 3(a).
2. Previous Work
Address generator implementations that can combine linear and address complement counting methods have been proposed in [14]. In [20] the implementation proposed in [14] was integrated into a more generic scheme to generate more counting methods. In Figure 2(a) we present the address complement address generator implementation using a counter proposed in [14]. The U/D signal controls the most-significant address bit O3, which is the least-significant counter bit 0, because O3 of address complement changes with each clock period. The output of bit0 controls the muxes of all bitsx, with x>0. The address generator module shown in Figure 1(a), generates the sequence shown in Table 1 (third column) or its inverse, depending on the value of the signal Up/Down.
R in ALU Add/sub cin en
(a)
Li in ALU Add/sub
en
cin
(a)
(b) Figure 3: The proposed scheme for the generation of the counting methods (a) Address Complement (b) combined Linear and Address Complement We utilize the following signals: (a) the in signal provides the value to be fed to the one input of the ALU. (b) the add/sub decides on the addition/subtraction to be performed by the ALU. (c) the en signal enables the register (R) to capture the ALU output; when en=0, the register does not change value. (d) the cin signal provides the carry input to the ALU. for the case where a combined Linear/Address Complement address generator is required, an additional signal
(b)
Figure 2: 4-bit address generator (a) Address Complement and (b) combined Address Complement and Linear proposed in [14] In order to generalize the generator in order to also generate the linear counting method, the authors of
-2-
2012 International Conference on Design & Technology of Integrated Systems in Nanoscale Era
(e) Li/Ac enables the multiplexer to select the low-order input of the ALU between the in and the steady 1 signal. For the case of the combined Linear/Address Complement address generator shown in Figure 3(b), when Linear count is required: (a) the Li/Ac signal enables the low order inut of the ALU to be constantly to 1, (b) the in signal is constantly to 0, (c) the en; signal is enabled in every cycle, (d) the cin signal is constantly 0 The add/sub is 0/1 depending on whether up or down linear count is required.
cycle# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 in 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 add/sub (+/-) 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 R 0000 0000 0000 0001 0001 0010 0010 0011 0011 0100 0100 0101 0101 0110 0110 0111 en 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 cin 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ALU 0000 1111 0001 1110 0010 1101 0011 1100 0100 1011 0101 1010 0110 1001 0111 1000
(#0) 0 +
0 0 0 0 en 1
(#1) 1
0 0 0 0 en 0
0 0 0 0
1 1 1 1 en 0
(#2) 0 +
0 0 0 0 en 1
(#3) 1
0001
0 0 0 1
1 1 1 0
(#4) 0 +
0001
en 1
(#5) 1
0 0 1 0 en 0
0 0 1 0
1 1 0 1 en 0
Table 2(a): Address complement counting method generated by the proposed address generatorincreasing order
cycle# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 in 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 add/sub (+/-) 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 R 0111 1000 1000 1001 1001 1010 1010 1011 1011 1100 1100 1101 1101 1110 1110 1111 en 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 cin 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ALU 1000 0111 1001 0110 1010 0101 1011 0100 1100 0011 1101 0010 1110 0001 1111 0000
(#6) 0 +
0 0 1 0 en 1
(#7) 1
0011
0 0 1 1
en 1
1 1 0 0
0 1 0 0 en 0
(#8) 0 +
0011
(#9) 1
0 1 0 0
1 0 1 1
(#10) 0 +
0 1 0 0 en 1
(#11) 1
0101
en 0
Table 2(b): Address complement counting method generated by the proposed address generatordecreasing order For the address complement counting method, the signal denoted Li is constantly 0. The operation of the proposed scheme for the case of a 4-stage
0 1 0 1
1 0 1 0
-3-
2012 International Conference on Design & Technology of Integrated Systems in Nanoscale Era
(#8)
en 1
1011
en 1
(#9) 1
1 1 0 0 en 0
0
(#13) 1 0 1 1 0 en 0
(#12) 0 +
0101
1 1 0 0
0 0 1 1
0 1 1 0
1 0 0 1
(#10)
en 1
1 1 0 0 en 1
(#11) 1
1101
en 0
0 + 1
(#14) 0 +
0 1 1 0 en 1
(#15) 1
0111
1 1 0 1
0 0 1 0
0 1 1 1
1 0 0 0 (#12) 0 + 1101
Figure 4: Operation of the proposed scheme for Address Complement generation (increasing sequence)
en 1
en 1
(#13) 1
1 1 1 0 en 0
(#0) 0 +
0111
(#1) 1
1 0 0 0 en 0
1 1 1 0
0 0 0 1
(#14) 0
1 1 1 0 en 1
(#15) 1
1111
en 0
1 0 0 0
0 1 1 1
(#2) 0 +
1 0 0 0 en 1
(#3) 1
1001
en 0
1 1 1 1
0 0 0 0
1 0 0 1
0 1 1 0
Figure 5: Operation of the proposed scheme for Address Complement generation (decreasing sequence)
(#4) 0 +
1001
en 1
(#5) 1
1 0 1 0 en 0
1 0 1 0
0 1 0 1
(#6) 0 +
1 0 1 0 en 1
(#7) 1
1011
en 0
1 0 1 1
0 1 0 0
-4-
2012 International Conference on Design & Technology of Integrated Systems in Nanoscale Era
scheme [14] requires 3 times more than the proposed here. An additional merit of the proposed scheme is that in typical configuration (like the MIPS architecture shown in Figure 1) an ALU driving the address inputs of the memory is either already available, or can be easily incorporated in the design while counter modules usually must be inserted in the design of the circuit.
5. Conclusions
In this work we have proposed the utilization of ALU modules for the address generation for memory BIST. The proposed generator can generate the linear and address complement counting methods. The proposed method evolves naturally in systems where the address inputs of memories are driven by ALU modules. Comparatively to a previously proposed scheme based on counters, the proposed one presents lower hardware overhead when the combined power of linear and address complement counting methods are required.
Acknowledgments
This research has been co-funded by the European Union (European Social Fund) and Greek national resources under the framework of the Archimedes III: Funding of Research Groups in TEI of Athens project of the Education & Lifelong Learning Operational Programme.
References
[1] R. Aitken, et. al, Modular Wrapper Enabling High Speed BIST and Repair for Small Wide Memories, Proc. of Int. Test Conference, pp. 9971005, 2004. [2] Z. Conroy, et.al, A practical perspective on reducing ASIC NTFs, Proc. of Int. Test Conference, pp. 349, 2005. [3] L. Dilillo, et.al, Dynamic read destructive fault in embedded-SRAMs: analysis and march test solution, Proceedings Ninth IEEE European Test Symposium, pp. 140-145, 2004. [4] X. Du, N. Mukherjee, W.T Cheng and S.M Reddy, Full-speed field-programmable memory BIST architecture, Proc. of Int. Test Conference, pp. 1173-1182, 2005. [5] X. Du, N. Mukherjee, W-T Cheng, S. M. Reddy A Field-Programmable Memory BIST Architecture Supporting Algorithms and Multiple Nested Loops, Proc. of the Asian Test Symposium, paper 45.3, 2006. [6] S. Hamdioui, A. van de Goor and M. Rodgers, Memory Fault Modeling Trends: A Case Study, Journal of Electronic Testing: Theory and
Applications (JETTA), Vol. 20, Nr. 3, pp. 245255, 2004. [7] J.B. Khare, A.B. Shah, A. Raman and G. Rayas, Embedded Memory Field Returns - Trials and Tribulations, Proc. of Int. Test Conference, pp. 16, 2006. [8] M. Klaus and A. J. van de Goor, Tests for Resistive and Capacitive Defects in Address Decoders, Proc. of the 10th Asian Test Symposium, pp. 31-36, 2001. [9] T. Powell, et.al, Chasing subtle embedded RAM defects for nanometer technologies, Proc. of Int. Test Conference, pp. 860, 2005. [10] A.J. van de Goor, Testing Semiconductor Memories: Theory and Practice, ComTex Publishing, The Netherlands, 1998, Ad.vd.Goor@kpnplanet.nl. [11] A.J. van de Goor, S. Hamdioui and G. N. Gaydadjiev, New Algorithms for Address Decoder Delay Faults and Bit Line Imbalance faults, Proc. of the 18th Asian Test Symposium, pp. 31-36, 2009. [12] H. Kukner, Generic and Orthogonal March Element based Memory BIST Engine Master Thesis, CE-MS-2010-01, Delft University of Technology, September 2010. [13] D. Paterson and J. Hennessy, Computer Organization and Design, Fourth Edition: The Hardware/Software Interface, The Morgan Kaufmann Series in Computer Architecture and Design. [14] Ad J. van de Goor, H. Kukner, S. Hamdioui, Optimizing Memory BIST Address Generator Implementations, Proceedings of the 2011 Conference on Design and Technology of Integrated Systems in nanoscale era, Athens, Greece, April 2011. [15] Y. Park, J. Park, T. Han, and S. Kang, An Effective Programmable Memory BIST for Embedded Memory, IEICE Transactions on Information and Systems E92-D (2009), no. 12, 25082511. [16] ITRS2001. International Technology Roadmap for Semiconductors 2001. http://public.itrs.net/Files/20001ITRS/?Home.html [17] A. van de Goor, C. Jung, S. Hamdioui and G.N. Gaydadjiev, Low-cost, Customized and Flexible SRAM MBIST Engine, In Proc. of the IEEE Int. Symp. on Design and Diagnostics of Electronic Circuits and Systems, Vienna, 2010, pp. 382-387. [18] P. Mazumder, Parallel Testing of Parametric Faults in a Three Dimensional Random-access Memory, In Proc. of the IEEE Int. Test Conf. , pp. 933-941, 1988.
-5-
2012 International Conference on Design & Technology of Integrated Systems in Nanoscale Era
[19] S. Hamdioui, Z. Al-Ars, A.J. van de Goor, M. Rodgers, Dynamic Faults in Random-AccessMemories: Concept, Fault Models and Tests, Journal of Electronic Testing: Theory and Applications, pp. 195-205, April 2003. [20] S. Hamdioui, A.J. van de Goor, J.D. Reyes, and M.Rodgers, Memory test experiment: industrial results and data, IEE Proceedings of Computers and Digital Techniques, Vol. 153, Issue: 1, pp. 1-8, 2006.
-6-