<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">OALibJ</journal-id><journal-title-group><journal-title>Open Access Library Journal</journal-title></journal-title-group><issn pub-type="epub">2333-9705</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/oalib.1106294</article-id><article-id pub-id-type="publisher-id">OALibJ-99748</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Biomedical&amp;Life Sciences</subject><subject> Business&amp;Economics</subject><subject> Chemistry&amp;Materials Science</subject><subject> Computer Science&amp;Communications</subject><subject> Earth&amp;Environmental Sciences</subject><subject> Engineering</subject><subject> Medicine&amp;Healthcare</subject><subject> Physics&amp;Mathematics</subject><subject> Social Sciences&amp;Humanities</subject></subj-group></article-categories><title-group><article-title>
 
 
  Multi-Memory Grouping Wrapper with Top Level BIST Algorithm
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Narek</surname><given-names>Mamikonyan</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Suren</surname><given-names>Abazyan</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Vakhtang</surname><given-names>Janpoladov</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Yerevan State University, Yerevan, Armenia</addr-line></aff><aff id="aff2"><addr-line>Russian-Armenian University, Yerevan, Armenia</addr-line></aff><pub-date pub-type="epub"><day>23</day><month>04</month><year>2020</year></pub-date><volume>07</volume><issue>05</issue><fpage>1</fpage><lpage>7</lpage><history><date date-type="received"><day>2,</day>	<month>April</month>	<year>2020</year></date><date date-type="rev-recd"><day>21,</day>	<month>April</month>	<year>2020</year>	</date><date date-type="accepted"><day>24,</day>	<month>April</month>	<year>2020</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  
    This algorithm integrates second level Built in self-test (BIST) into multiple memory grouping wrapper. Second level BIST brings additional reliability into the memory system while fastening testing time. Main approach is to test whole memory modules from top level by numerous step count of which can be modified based on power consumption requirement and overheat conditions. The worst case of the algorithm can be observed by the time when the number of steps is equal to the number of memory modules, otherwise the testing time will be relative to 1/N (N is the number of steps). The main advantage of memory wrapping methodology is the possibility of increasing variety of the number of bits and the number of cells in the memory, while using limited memories provided by foundry. 
  
 
</p></abstract><kwd-group><kwd>BIST</kwd><kwd> Memory Wrapper</kwd><kwd> Memory Bit</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>This paper represents combination of two main units:</p><p>• Memory wrapper for increasing flexibility of designing memory-integrated designs.</p><p>• Top level BIST method which can reduce testing time of the whole system in one wrapper.</p><p>The memory wrapping method commonly used in the VLSI [<xref ref-type="bibr" rid="scirp.99748-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.99748-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.99748-ref3">3</xref>] : the main disadvantage of existing methods [<xref ref-type="bibr" rid="scirp.99748-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.99748-ref4">4</xref>] is that the memory wrapper concatenates only memories with the same bit sizes. In other words, the old memory wrappers extend the memory size (capacitance) but not bit size [<xref ref-type="bibr" rid="scirp.99748-ref5">5</xref>] . The standard memory wrapper structures combine concatenation of memory address and simple memory selecting method and the same selecting method is used for memory input and output data pins (<xref ref-type="fig" rid="fig1">Figure 1</xref>).</p><p>Basic memory wrapper consists of few elements:</p><p>• U1 unit is combined memories provided from foundry,</p><p>• U2 and U3 are the address decoder and memory select decoder,</p><p>• U4 is the logical unit which controls data input distribution between memories,</p><p>• U5 is the logical unit which controls data output distribution between memories.</p><p>The schematic model of U2 and U3 is address decoder, U4 and U5 functionality is the same, both modules selecting connection between wrapper input/output and memory which have been selected based on U3.</p><p>The input of U2 and U3 can be combined as address select. With correct concatenation and distribution of the memory pins (clock, write enable, read enable, etc.), the wrapper can be fully functional unit. After above mentioned transformation, the memory wrapper can be used as single memory in the different designs.</p><p>Basic BIST for memories has been created for finding broken cells in the memory by writing and reading data bits into/from memory cells [<xref ref-type="bibr" rid="scirp.99748-ref5">5</xref>] . Moreover, mapping of the broken cell address into the reserved memory block addresses is the biggest advantage of the BIST. In other words, the memory BIST directly increases yield of the memory module by additional memory cell mapping. The main disadvantage of the BIST is the power consumption while testing memory cells [<xref ref-type="bibr" rid="scirp.99748-ref6">6</xref>] . BIST core is combination of testing engine and reserved memory (<xref ref-type="fig" rid="fig2">Figure 2</xref>).</p><p>Following is the unit (marked as U) and pin (marked as P) description for <xref ref-type="fig" rid="fig2">Figure 2</xref>.</p><p>1) MUT―The memory which is under test.</p><p>2) BIST consists of few units:</p><p>a) Address generator―Unit for address list generation, which will be given to memory under test (MUT);</p><p>b) Data generator―Unit for generating test data to be given to MUT as input;</p><p>c) Comparator―Unit to compare generated data with MUT outputted data from under test address;</p><p>d) Memory array―Unit for storing data lines which were supposed to be written in broken addresses of MUT;</p><p>e) BIST core―Unit for controlling all above mentioned 4 units’ works and mapping broken data line addressed of MUT to memory array addresses.</p><p>This module has 2 main working modes:</p><p>1) BIST mode―to test MUT and remap broken addresses. This mode is self-working mode and does not have connection with external pins.</p><p>2) Use mode―to unable the BIST test/repair functionality and leave mapping functionality only. In this mode external pins are being used as Address input and Data input/output.</p><p>Modes can be switched with BIST Enable (BE) input signal.</p><p>The main aim of having BIST is having ability to check memory cells by writing and reading in/from each cell. For this matter, BIST is writing and reading different values (either logic 0 or logic 1) to be able to cover cases of stacked 0 and stacked 1 in cell. If broken cell is found and there is empty (not linked) cell address in BIST’s memory array, BIST core will link broken address of proposed memory cell to BIST memory array address.</p><p>Based on memory size, upper mentioned BIST run process can take long initialization time. In memory dominant designs, parallel BIST process can lead to die overheating, which can cause to broken chip.</p><p>To overcome overheating and long runtime issues under BIST mode, quasi-parallel BIST implementation can be used. Technic is called quasi-parallel as at each period of BIST, some counts of memories are in test mode, while others are in waiting mode. Main constraint of quasi-parallel BIST is to ensure that on each period of BIST, under-test memories are enough far from each other, in point of physical placement, to prevent chip from local overheating.</p></sec><sec id="s2"><title>2. BIST Control-Based Wrapper</title><p>Above mentioned issue can be solved using BIST control logic with multiple memories, which are already integrated with BIST. BIST control logic will enable BIST mode on some amount of memories base on wrapper compile process selected option (<xref ref-type="fig" rid="fig3">Figure 3</xref>).</p><p>Wrapper contains 3 main units:</p><p>• BIST control―Unit to control BIST mode selection process and concatenate memories and addresses, data input/output (makes system as one memory);</p><p>• Standard stand-alone BIST―Upper mentioned standard memory BIST;</p><p>• Memory under test―Foundry provided memories.</p><p>The option which is selected in compilation time (the amount of parallel-checked memories) will bring to internal grouping of memories, which must be under parallel BIST run. Memories from one internal group must be placed with bigger distance while physical placement process and this will prevent local overheating.</p></sec><sec id="s3"><title>3. Top Level BIST Algorithm</title><p>Top level BIST algorithm has two main components (<xref ref-type="fig" rid="fig4">Figure 4</xref>):</p><p>1) Commonly used BIST methodology for one memory that is integrated with already wrapped memories. This method is the same as memory BIST but addresses and data sizes are extended (wrapped memories). Difference with common BIST is that in top level BIST algorithm BIST is divided into two separate process: checking and repairing.</p><p>a) Checking―Checking if the memory cell is working.</p><p>b) Repairing―Mapping memory address to BIST backup array.</p><p>2) Internal memory BIST enablement core―After checking process this algorithm gets memories with non-working cells as input and enables internal BIST</p><p>for them. Once internal BIST is done the TOP level BIST is running again, but this time combined with repairing process.</p><p>In <xref ref-type="fig" rid="fig4">Figure 4</xref> can be possible two scenarios:</p><p>1) After Top level BIST check all memories are working correctly. In this case no need more action, this scenario is the best in terms of testing time;</p><p>2) After Top level BIST check there are memories which need cell address mapping. This scenario will pass through all units mentioned in <xref ref-type="fig" rid="fig4">Figure 4</xref> starting from memory BIST check until memory BIST repair (memory BIST check ?&gt; internal memory BIST enablement core ?&gt; memory BIST check ?&gt; memory BIST rapier).</p></sec><sec id="s4"><title>4. Memory Grouping Wrapper with Top Level BITS Algorithm</title><p>Memory grouping wrapper with top level BIST algorithm is the integration of top level BIST algorithm and BIST control-based wrapper. Main difference of this method compared with one memory BIST method is that BIST core logic combines wrapper grouping methodology and internal memory BIST enablement core (<xref ref-type="fig" rid="fig5">Figure 5</xref>).</p><p>On the other hand, top level BIST can be interpreted as single memory BIST, if memories address and data are combined. Only need to be under consideration BE enablement signal of memories on top level BIST.</p><p>Memory grouping wrapper with TOP level BIST contains:</p><p>1) Memories under test,</p><p>2) Single memory BIST units,</p><p>3) TOP BIST unit with BIST core.</p></sec><sec id="s5"><title>5. Testing Results</title><p>For testing BIST, selected MARCH C algorithm as a reference and implemented MARCH C for memory and top-level BIST. Implementation has been tested in</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Comparison results</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Memory cell Count</th><th align="center" valign="middle" >Testing time</th><th align="center" valign="middle" >Testing time without top level BIST</th><th align="center" valign="middle" >Redundancy address count only memory</th><th align="center" valign="middle" >Redundancy address count difference Top level</th></tr></thead><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >23.7 ms</td><td align="center" valign="middle" >19.4 ms</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >27.6 ms</td><td align="center" valign="middle" >22.7 ms</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >4</td></tr><tr><td align="center" valign="middle" >20</td><td align="center" valign="middle" >31.4 ms</td><td align="center" valign="middle" >24.5 ms</td><td align="center" valign="middle" >200</td><td align="center" valign="middle" >6</td></tr></tbody></table></table-wrap><p>the Xilinx Inc spartan 6 FPGA with constricted same 64x8 memory cell. Results are shown in <xref ref-type="table" rid="table1">Table 1</xref>.</p><p>New architecture has approximately 13% more STD cells and memory testing time increases by 22% and added approximately 3% more redundancy addresses. The redundancy addresses bring additional reliability in the memory System.</p></sec><sec id="s6"><title>6. Conclusion</title><p>This technique brings additional relatability in the memory system. According to the test results using this method memory testing time will be increased, but the memory system will get additional top-level memory BIST. Based on test results top-level BIST brings 3% more redundancy addresses. Results are expected as we are adding more redundancy addresses.</p></sec><sec id="s7"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s8"><title>Cite this paper</title><p>Mamikonyan, N., Abazyan, S. and Janpoladov, V. (2020) Multi-Memory Grouping Wrapper with Top Level BIST Algorithm. Open Access Library Journal, 7: e6294. https://doi.org/10.4236/oalib.1106294</p></sec></body><back><ref-list><title>References</title><ref id="scirp.99748-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Gharsalli, F., Meftali, S., Rousseau, F. and Jerraya, A. (2002) Automatic Generation of Embedded Memory Wrapper for Multiprocessor SoC. Proceedings 2002 Design Automation Conference (IEEE Cat. No.02CH37324), New Orleans, LA, 10-14 June 2002, 596-601. https://doi.org/10.1109/DAC.2002.1012695</mixed-citation></ref><ref id="scirp.99748-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Kukner, H. (2010) Generic and Orthogonal March Element based Memory BIST Engine. Master Thesis, Delft University of Technology, Delft, CE-MS-2010-01.</mixed-citation></ref><ref id="scirp.99748-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Cheng, A.C. (2002) Comprehensive Study on Designing Memory BIST Algorithms, Implementations and Trade-Offs. The University of Michigan, Ann Arbor, MI 48109-2122.</mixed-citation></ref><ref id="scirp.99748-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Miyazaki, T. and Fujiwara, H. (2006) A Memory Grouping Method for Sharing Memory BIST Logic. Asia and South Pacific Conference on Design Automation, Yokohama, 24-27 January 2006, 10-25. https://doi.org/10.1145/1118299.1118457</mixed-citation></ref><ref id="scirp.99748-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Pavani, P., Anitha, G., Bhavana, J. and Praneet Raj, J. (2016) A Novel Architecture Design of Address Generators for BIST Algorithms. International Journal of Scientific &amp; Engineering Research, 7, 3-8.</mixed-citation></ref><ref id="scirp.99748-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Ojha, S.K., Singh, O.P., Mishra, G.R. and Vaya, P.R. (2019) An Efficient Use of Memory Grouping Algorithm for Implementation of BIST in Self. Test Journal of Engineering and Applied Sciences, 14, 2695-2700.  
https://doi.org/10.36478/jeasci.2019.2695.2700</mixed-citation></ref></ref-list></back></article>