Apparatus and method for implementing design for testability (DFT) for bitline drivers of memory circuits
09947419 ยท 2018-04-17
Assignee
Inventors
- Rakesh Kumar Sinha (Bangalore, IN)
- Priyankar MATHURIA (Bangalore, IN)
- Sharad Kumar GUPTA (Bangalore, IN)
Cpc classification
G11C29/02
PHYSICS
International classification
Abstract
A first bitline driver includes a multiplexer for outputting data and write mask signals in functional mode, and test vector signal in test mode; a latch to latch the data signal in functional mode and the test vector signal in test mode; a latch to latch the write mask signal in functional mode and the test vector signal in test mode; a latch to latch the test vector signal and provide it to a scan output; and a write circuit for writing data to a memory cell based on the data signal. A second bitline driver includes a latch to latch a data signal in functional mode if a write mask signal is deasserted and to latch a test vector signal in test mode; a latch to latch the test vector signal and provide it to a scan output; and a write circuit for writing data to a memory cell.
Claims
1. An apparatus, comprising: a first latch configured to: latch a data signal in response to a first state of a clock signal if a scan shift signal is deasserted; and latch a test vector signal in response to the first state of the clock signal if the scan shift signal is asserted; and a second latch configured to: latch a write mask signal in response to the first state of the clock signal if the scan shift signal is deasserted; and latch the test vector signal in response to the first state of the clock signal if the scan shift signal is asserted.
2. The apparatus of claim 1, further comprising a gating circuit configured to: route the test vector signal from a scan input port to the first and second latches in response to the scan shift signal being asserted; and prevent the routing of the test vector signal from the scan input port to the first and second latches in response to the scan shift signal being deasserted.
3. The apparatus of claim 2, wherein the gating circuit comprises: a first pass gate coupled between the scan input port and the first latch, wherein the first pass gate turns on in response to the scan shift signal being asserted, and turns off in response to the scan shift signal being deasserted; and a second pass gate coupled between the scan input port and the second latch, wherein the second pass gate turns on in response to the scan shift signal being asserted, and turns off in response to the scan shift signal being deasserted.
4. The apparatus of claim 1, further comprising a gating device coupled between a data input port for receiving the data signal and an input of the first latch, wherein the gating device is configured to: generate the data signal at an output of the gating device in response to the scan shift signal being deasserted; and tristate the output in response to the scan shift signal being asserted.
5. The apparatus of claim 1, further comprising a gating device coupled between a write mask input port for receiving the write mask signal and an input of the second latch, wherein the gating device is configured to: generate the write mask signal at an output of the gating device in response to the scan shift signal being deasserted; and tristate the output in response to the scan shift signal being asserted.
6. The apparatus of claim 1, wherein the first latch comprises: a first inverter; a pass gate configured to: pass the data signal or the test vector signal from an input of the pass gate to the first inverter in response to a second state of the clock signal; decouple the input from the first inverter in response to the first state of the clock signal; a second inverter configured to: be cross-coupled with the first inverter to latch the data signal or the test vector signal in response to the first state of the clock signal; and not be cross-coupled with the first inverter in response to the second state of the clock signal.
7. The apparatus of claim 1, wherein the second latch comprises: a first inverter; and a pass gate configured to: pass the write mask signal or the test vector signal from an input of the pass gate to the first inverter in response to a second state of the clock signal; decouple the input from the first inverter in response to the first state of the clock signal; a second inverter configured to: be cross-coupled with the first inverter to latch the write mask signal or the test vector signal in response to the first state of the clock signal; and not be cross-coupled with the first inverter in response to the second state of the clock signal.
8. The apparatus of claim 1, further comprising a third latch configured to latch the test vector signal in response to a second state of the clock signal if the scan shift signal is asserted, wherein the latched test vector signal is produced at a scan output port.
9. The apparatus of claim 1, wherein the third latch comprises: a first inverter; a pass gate configured to: pass the test vector signal from an input of the pass gate to the first inverter in response to the first state of the clock signal; decouple the input from the first inverter in response to the second state of the clock signal; a second inverter configured to: be cross-coupled with the first inverter to latch the test vector signal in response to the second state of the clock signal; and not be cross-coupled with the first inverter in response to the first state of the clock signal.
10. The apparatus of claim 1, further comprising a data write circuit configured to write data to a memory cell coupled to complementary bitlines based on the data signal if the write mask signal is deasserted.
11. The apparatus of claim 10, wherein the data write circuit comprises: a first OR-gate or first NOR-gate including a first input configured to receive the latched data signal from the first latch, a second input configured to receive the latched write mask signal from the second latch, and an output coupled to one of the complementary bitlines; and a second OR-gate or second NOR-gate including a first input configured to receive the data signal from the first latch, a second input configured to receive the latched write mask signal from the second latch, and an output coupled to the other of the complementary bitlines.
12. The apparatus of claim 11, wherein the data write circuit comprises: a first pass gate configured to route the data signal from the first OR-gate or the first NOR-gate to the one of the complementary bitlines in response to an asserted state of a bitline select signal; and a second pass gate configured to route the data signal from the second OR-gate or the second NOR-gate to the other of the complementary bitlines in response to the asserted state of the bitline select signal.
13. The apparatus of claim 11, further comprising a third latch configured to latch the test vector signal in response to a second state of the clock signal if the scan shift signal is asserted, wherein the latched test vector signal is produced at a scan output port, and wherein the first OR-gate or first NOR-gate is coupled between the first latch and the third latch.
14. A method, comprising: latching a data signal at a first node in response to a first state of a clock signal if a scan shift signal is deasserted; latching a test vector signal at the first node in response to the first state of the clock signal if the scan shift signal is asserted; latching a write mask signal at a second node in response to the first state of the clock signal if the scan shift signal is deasserted; and latching the test vector signal at the second node in response to the first state of the clock signal if the scan shift signal is asserted.
15. The method of claim 14, further comprising: routing the test vector signal from a scan input port to first and second latches for latching the test vector signal at the first and second nodes, respectively, in response to the scan shift signal being asserted; and decoupling the scan input port from the first and second latches in response to the scan shift signal being deasserted.
16. The method of claim 14, further comprising: routing the data signal from a data input port to a latch for latching the data signal at the first node in response to the scan shift signal being deasserted; and decoupling the data input port from the latch in response to the scan shift signal being asserted.
17. The method of claim 14, further comprising: routing the write mask signal from a write mask input port to a latch for latching the write mask signal at the first node in response to the scan shift signal being deasserted; and decoupling the write mask input port from the latch in response to the scan shift signal being asserted.
18. The method of claim 14, further comprising: latching the test vector signal at a third node in response to a second state of the clock signal if the scan shift signal is asserted; and routing the latched test vector to a scan output port.
19. The method of claim 14, further comprising writing data to a memory cell based on the data signal if the write mask signal is deasserted.
20. The method of claim 14, further comprising masking a writing of data to a memory cell if the write mask signal is asserted.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION
(8) The detailed description set forth below, in connection with the appended drawings, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
(9)
(10) The memory circuit 100 further includes a word line (WL) controller 120 for generating asserted signals on a set of wordlines WL_0 to WL_m based on a control signal wl_cntl for accessing one or more memory cells (C) coupled to the asserted wordlines, respectively. As illustrated, the wordlines WL_0 to WL_m are coupled to columns of memory cells (C), respectively.
(11) The memory circuit 100 further includes a set of bitline drivers 0 to n for generating complementary signals for writing data into rows of memory cells (C) coupled to complementary bitlines BL_0/
(12) In order to implement design for testability (DFT) for testing the operation of the bitline drivers 0 to n, the bitline driver 0 includes a scan input port sin_0 for receiving a test vector signal from an external test equipment, and the bitline driver n includes a scan output port sou_n for outputting a captured test vector signal to the external test equipment. The scan path is routed from the scan input port sin_0 to the scan output sou_n consecutively via all of the bit line drivers 0 to n. For instance, as illustrated, the bitline driver 0 includes a scan output port sou_0 coupled to the scan input port sin_1 of bitline driver 1. Similarly, the bitline driver n1 includes a scan output port sou_n1 coupled to the scan input port sin_n of bitline driver n.
(13) In general, for any intermediate bitline driver (where its position index k in the chain is not 0 or n), the k.sup.th bitline driver includes a scan input port sin_k coupled to the scan output port sin_k1 of the k.sup.th1 bitline driver, and a scan output port sou_k coupled to the scan input port sin_k+1 of the k.sup.th+1 bitline driver.
(14) For reading data from the memory array 110, the memory circuit 100 further includes a sense amplifier 130 including a set of complementary inputs coupled to the set of complementary bitlines BL_0/
(15) For controlling the writing and reading of data to and from the memory array 110 and the testing the bitline drivers 0 to n, the memory circuit 100 further includes a memory controller 140. The memory controller 140 includes: an input for receiving data to be written into the memory array 110; an input for receiving an address signal for identifying target memory cells (C) of the memory array 110 to or from which data is to be written or read; an input for receiving a read/write (R/W) control signal for specifying whether the current memory operation is a read or write operation; and an input for receiving a test signal for operating the bitline drivers 0 to n in test mode.
(16) In response to the aforementioned inputs, the memory controller 140 generates data signals din< > (din_0 to din_n) and write mask signals wbt< > (wbt_0 to wbt_n) for the bitline drivers 0 to n, wl_cntl control signal for the wordline (WL) controller 120, bl_cntl control signal for the sense amplifier 130, and shift and clock (clk) signals for the bitline drivers 0 to n, as discussed in more detail herein.
(17) The writing of data into memory circuit 100 may operate as follows: In this example, the writing of data into one or more memory cells (C) coupled to wordline WL_0 is discussed. It shall be understood that the writing of data into one or more memory cells (C) coupled to other wordlines operates in a similar manner.
(18) For instance, if data is to be written into all of the memory cells (C) coupled to wordline WL_0, the corresponding write mask signals wbt_0 to wbt_n are deasserted (e.g., at a logic zero (0) voltage level) so that the writing of data to the memory cells (C) is not masked. The particular data to be written into the memory cells (C) are applied to the data input ports din_0 to din_n. Additionally, based on the control signal wl_cntl, the WL controller 120 generates an asserted signal on the wordline WL_0 to couple the corresponding memory cells to the bitlines BL_0/
(19) For example, if a logic one (1) is to be written into the memory cell (C) coupled to the wordline WL_0 and complementary bitlines BL_0/
(20) If the writing of data into one or more memory cells coupled to the bitlines BL_0/
(21) The reading of data from memory circuit 100 may operate as follows: In this example, the reading of data from memory cells (C) coupled to wordline WL_0 is discussed. It shall be understood that the reading of data from memory cells (C) coupled to other word lines operates in a similar manner.
(22) The sense amplifier 130 precharges the complementary bitlines BL_0/
(23) The testing of the bitlines drivers may operate as follows: In response to the test signal indicating a scan shift test mode, the memory controller 140 generates an asserted scan shift signal (e.g., at a high logic voltage). A test vector signal from an external test equipment (not shown) is applied to the scan input sin_0 of the bitline driver 0. And, the memory controller 140 generates a clock signal clk at a relatively low frequency (e.g., shift mode frequency) to accurately cause the test vector signal to propagate from bitline driver 0 to bitline driver n.
(24) In response to the test signal indicating a scan capture test mode, the memory controller 140 generates a deasserted scan shift signal (e.g., at a low logic voltage) and generates the clock signal (clk) at a relatively high frequency (e.g., functional mode frequency or frequency at which latches of the bitline driver will be tested). The test vector signal is then captured by the corresponding latches of the bitline drivers 0 to n.
(25) Then, in response to the test signal again indicating a scan shift testing mode, the memory controller 140 generates the asserted scan shift signal and the clock signal clk at the relatively low frequency (e.g., shift mode frequency) to accurately shift out the captured test vector signal from the bitline drivers 0 to n to the external test equipment via the scan output port sou_n of bitline driver n. Based on the input test vector signal and the captured test vector signal, the test equipment is able to determine operational errors in the bitline drivers 0 to n.
(26)
(27) Accordingly, the memory cell 150 includes a first inverter having a p-channel metal oxide semiconductor (PMOS) field effect transistor (FET) M1 coupled in series with an n-channel metal oxide semiconductor (NMOS) FET M2 between an upper voltage rail (VDD) and a lower voltage rail (e.g., ground). The memory cell 150 further includes a second inverter including a PMOS FET M3 coupled in series with an NMOS FET M4 between the upper voltage rail (VDD) and the lower voltage rail (ground).
(28) The first and second inverters are cross-coupled. That is, the output of the first inverter (at the drains of FETs M1 and M2) is coupled to the input (at the gates of FETs M3 and M4) of the second inverter, and the output of the second inverter (at the drains of FETs M3 and M4) is coupled to an input (at the gates of FETs M1 and M2) of the first inverter.
(29) The memory cell 150 further includes access NMOS FETs M5 and M6 with gates coupled to the corresponding wordline WL_j, drain/source coupled to the complementary bitlines BL_k/
(30) As mentioned above, each pair of complementary bitlines BL_k/
(31) The sense amplifier 130 generates an asserted precharge signal (pre) (e.g., at a low logic voltage level) in order to precharge the complementary bitlines BL_k/
(32)
(33) In particular, the bit line driver 200 includes a multiplexer 210 with tristate inverters I.sub.1, I.sub.2, and I.sub.8 (generally, gating devices); a first master-latch 220 including a pass gate PG.sub.1, inverter I.sub.3 and tristate inverter I.sub.4; a first slave-latch 230 including a pass gate PG.sub.2, inverter I.sub.5 and tristate inverter I.sub.6; tristate inverter I.sub.7; a second master-latch 240 including a pass gate PG.sub.3, inverter I.sub.9 and tristate inverter I.sub.10; and a second slave-latch 250 including a pass gate PG.sub.4, inverter I.sub.11 and tristate inverter I.sub.12. The bit line driver 200 further includes a data write circuit 260 including first and second NOR-gates NG.sub.1 and NG.sub.2, inverters I.sub.13 and I.sub.14, and pass gates PG.sub.5 and PG.sub.6 coupled to complementary bitlines BL_k/
(34) The tristate inverter I.sub.1 of the multiplexer 210 includes an input coupled to a scan input port sin_k for receiving a test vector signal. The scan input port sin_k is coupled to the scan output sou_k1 of the k.sup.th1 bit line driver if it is not bitline driver 0 or to an external input port if it is bitline driver 0. The tristate inverter I.sub.1 is enabled (outputs an inverted input signal) and disabled (produces a tristated output) based on complementary shift signals ishift/
(35) The tristate inverter I.sub.2 of the multiplexer 210 includes an input coupled to the write mask port wbt_k. The tristate inverter I.sub.2 is enabled and disabled based on complementary shift signals ishift/
(36) The pass gate PG.sub.1 of the master-latch 220 is enabled (passes its input signal) and disabled (does not pass its input signal) based on complementary clock signals clk/
(37) The second pass gate PG.sub.2 of the first slave-latch 230 is enabled and disabled based on complementary clock signals clk/
(38) The tristate inverter I.sub.7 is enabled and disabled based on complementary shift signals ishift/
(39) The other tristate inverter I.sub.8 of the multiplexer 210 includes an input coupled to the data input port din_k. The tristate inverter I.sub.8 is enabled and disabled based on complementary shift signals ishift/
(40) The pass gate PG.sub.3 of the second master-latch 240 is enabled and disabled based on complementary clock signals clk/
(41) The pass gate PG.sub.4 of the second slave-latch 250 is enabled and disabled based on complementary clock signals clk/
(42) The output of the second slave-latch 250 (at the input and output of inverters I.sub.11 and I.sub.12, respectively) is coupled to the scan output port sou_k of the bit line driver 200. The scan output port sou_k is coupled to the scan input port sin_k+1 of the k.sup.th+1 bitline driver if it is not bitline driver n or to an external output port if it is bitline driver n.
(43) With regard to the data write circuit 260, the outputs of the NOR-gates NG.sub.1 and NG.sub.2 are coupled to inputs of inverters I.sub.13 and I.sub.14, respectively. The outputs of the inverters I.sub.13 and I.sub.14 are coupled to inputs of pass gates PG.sub.5 and PG.sub.6, respectively. The pass gates PG.sub.5 and PG.sub.6 may be controlled by complementary bitline select signals wm/
(44) The following describes the writing of data to (as well as masking the writing of data from) a memory cell coupled to the complementary bitlines BL_k/
(45) To distinguish signals from ports, signals will be represented with an italicized font and corresponding ports with non-italicized font. Further, signals may be inverted and reinverted as they are processed by the bitline driver 200, but are, nonetheless, the same signals whether they are in the inverted domain or non-inverted domain.
(46) During a first half clock cycle when the complementary clock signals clk/
(47) During a second half clock cycle when the complementary clock signals clk/
(48) The latched write mask signal wbt_k is applied to the respective first inputs of the NOR-gates NG.sub.1 and NG.sub.2 of the data write circuit 260. The unlatched and inverted data signal data signal din_k is applied to the second input of the NOR-gate NG.sub.1, and the latched and non-inverted data signal din_k is applied to the second input of the NOR-gate NG.sub.2.
(49) If the write mask signal wbt_k is asserted (e.g., at a logic one (1)) to mask the writing of data into a memory cell (C), the NOR-gates NG.sub.1 and NG.sub.2 output logic low states. In response, the inverters I.sub.13 and I.sub.14 generate logic high states. The logic high states are produced on the complementary bitlines BL_k/
(50) If the write mask signal wbt_k is deasserted (e.g., at a logic zero (0)) so as not to mask the writing of data into a target memory cell (C), the NOR-gates NG.sub.1 and NG.sub.2 output the inverted and non-inverted data signal din_k. In response, the inverters I.sub.13 and I.sub.14 output the non-inverted and inverted data signal din_k. The non-inverted and inverted data signal din_k is applied to complementary bitlines BL_k/
(51) The following describes a method of testing an operation of the bitline driver 200. The testing of an operation of the bitline driver 200 may begin in scan shift mode whereby a test vector signal is shifted into the bitline driver 200. In scan shift mode, the complementary shift signals ishift/
(52) During a first half clock cycle when the complementary clock signals clk/
(53) During a third half clock cycle when the complementary clock signals clk/
(54) During a fifth half clock cycle when the complementary clock signals clk/
(55) Thus, as described above, it takes 2.5 clock cycles for the test vector signal sin_k to propagate through the bit line driver 200. Additionally, the bit line driver 200 includes four (4) latches 220, 230, 240, and 250. For faster test operation, it would be desirable to reduce the number of clock cycles for the test vector signal sin_k to propagate through the bitline driver 200. Further, to reduce the integrated circuit area and power consumption, it would be desirable to reduce the number of latches required for the bitline driver 200.
(56)
(57) In summary, the scan path of bitline driver 300 is split into two parallel paths: a first path through a latch for the input data signal din_k, and a second path through a latch for the write mask signal wbt_k. A NOR-gate of a data write circuit merges the two parallel scan paths into one, and then the merged scan path proceeds to a scan output latch.
(58) In this configuration, the propagating of the test vector signal sin_k through the bitline driver 300 only requires 1.5 clock cycles, which is much faster than the 2.5 clock cycles required by bitline driver 200. Additionally, the bitline driver 300 is implemented with three (3) latches instead of four (4) latches as required by the bitline driver 200. This translates into substantial savings in IC area and power consumption, as there may be a large number of bitline drivers in a memory circuit.
(59) In particular, the bitline driver 300 includes a multiplexer 310 including tristate inverters and I.sub.3, inverter I.sub.2, and pass gates PG.sub.1 and PG.sub.2; a first latch 320 including a pass gate PG.sub.3, inverter I.sub.4 and tristate inverter I.sub.5; a second latch 330 including a pass gate PG.sub.4, inverter I.sub.6 and tristate inverter I.sub.7; and a third latch 340 including a pass gate PG.sub.5, inverter I.sub.8 and tristate inverter I.sub.9. The bitline driver 300 further a data write circuit 350 including first and second NOR-gates NG.sub.1 and NG.sub.2, inverters I.sub.10 and I.sub.11, and pass gates PG.sub.6 and PG.sub.7. The pass gates PG.sub.6 and PG.sub.7 are coupled to complementary bitlines BL_k/
(60) The tristate inverter I.sub.1 includes an input coupled to an input data port din_k for receiving a data signal din_k. The tristate inverter I.sub.1 is enabled and disabled based on complementary shift signals ishift/
(61) The inverter I.sub.2 includes an input coupled to the scan input port sin_k for receiving a test vector signal sin_k. The scan input port sin_k is coupled to the scan output port sou_k1 of the k.sup.th1 bitline driver if it is not bitline driver 0 or to an external input port if it is bitline driver 0. The output of the inverter I.sub.2 is coupled to respective inputs of the pass gates PG.sub.1 and PG.sub.2.
(62) The tristate inverter I.sub.3 includes an input coupled to a write mask port wbt_k for receiving a write mask signal wbt_k. The tristate inverter I.sub.3 is enabled and disabled based on complementary shift signals ishift/
(63) The pass gates PG.sub.1 and PG.sub.2 are enabled and disabled based on the complementary shift signals shift/
(64) The pass gates PG.sub.3 and PG.sub.4 are enabled and disabled based on the complementary clock signals clk/
(65) The first latch 320 is enabled and disabled based on complementary clock signals clk/
(66) The second latch 330 is enabled and disabled based on complementary clock signals clk/
(67) With regard to the data write circuit 350, the outputs of the NOR-gates NG.sub.1 and NG.sub.2 are coupled to inputs of inverters I.sub.10 and I.sub.11, respectively. The outputs of the inverters I.sub.10 and I.sub.11 are coupled to inputs of pass gates PG.sub.6 and PG.sub.7, respectively. The pass gates PG.sub.6 and PG.sub.7 are controlled by complementary bitline select signals wm/wm. The pass gates PG.sub.6 and PG.sub.7 are enabled if the signals wm/
(68) The output of the first NOR-gate NG.sub.1 of the data write circuit 350 is coupled to an input of the third latch 340 (in particularly, to an input of the pass gate PG.sub.5). The pass gates PG.sub.5 is enabled and disabled based on the complementary clock signals clk/
(69) The following describes the writing of data to (as well as masking the writing of data from) a memory cell (C) coupled to complementary bitline BL_k/
(70) During a first half clock cycle when the complementary clock signals clk/
(71) During a second half clock cycle when the complementary clock signals clk/
(72) The latched write mask signal wbt_k is applied to the respective second inputs of the NOR-gates NG.sub.1 and NG.sub.2 of the data write circuit 350. The unlatched and inverted data signal data signal din_k is applied to the first input of the NOR-gate NG.sub.2, and the latched and non-inverted data signal din_k is applied to the first input of the NOR-gate NG.sub.1.
(73) If the write mask signal wbt_k is asserted (e.g., at a logic one (1)) to mask the writing of data into a memory cell (C), the NOR-gates NG.sub.1 and NG.sub.2 output logic low states. In response, the inverters I.sub.13 and I.sub.14 generate logic high states. The logic high states are produced on the complementary bitlines BL_k/
(74) If the write mask signal wbt_k is deasserted (e.g., at a logic zero (0)) so as not to mask the writing of data into a target memory cell (C), the NOR-gates NG.sub.1 and NG.sub.2 output the inverted and non-inverted data signal din_k. In response, the inverters I.sub.13 and I.sub.14 output the non-inverted and inverted data signal din_k. The non-inverted and inverted data signal din_k are applied to complementary bitlines BL_k/
(75) The following describes the shifting in of a test vector signal for testing the operation of the bit line driver 300. In scan shift mode, the complementary shift signals ishift/
(76) During a first half clock cycle when the complementary clock signals clk/
(77) Accordingly, the NOR-gate NG.sub.1 outputs the test vector signal sin_k (albeit, inverted). Also, during the second half clock cycle, the pass gate PG.sub.5 passes the inverted test vector signal sin_k to the input of inverter I.sub.8 of the third latch 340. During the third half clock cycle when the complementary clock signals clk/
(78) Thus, as described above, it takes 1.5 clock cycles for the test vector signal sin_k to propagate through the bitline driver 300, instead of 2.5 clock cycles required by the bitline driver 200. Thus, the bitline driver 300 is able to propagate a test vector signal much faster than bitline driver 200. Additionally, the bitline driver 300 has only three (3) latches, whereas bitline driver 200 has four (4) latches. This translates to substantial savings in IC area and power consumption as the IC may include many bitline drivers depending on the size of the corresponding memory array.
(79)
(80) In particular, the bitline driver 400 includes a multiplexer 410 (generally, a gating device or circuit) including inverters I.sub.1 and I.sub.2, and NOR-gates NG.sub.1, NG.sub.2, and NG.sub.3; a master-latch 420 including NG.sub.4, NG.sub.5, NG.sub.6, NG.sub.7, and NG.sub.8; a slave-latch 430 including NOR-gates NG.sub.9, NG.sub.10, NG.sub.11, NG.sub.12, and NG.sub.13; and a data write circuit 440 including inverters I.sub.3 and I.sub.4, pass gates PG.sub.1 and PG.sub.2.
(81) The NOR-gates NG.sub.1, NG.sub.2, NG.sub.4, NG.sub.5, NG.sub.6, NG.sub.7, NG.sub.8, NG.sub.11, NG.sub.12, and NG.sub.13 are three-input NOR-gates, and the NOR-gates NG.sub.3, NG.sub.9, and NG.sub.10 are two-input NOR-gates. For description purposes, the inputs of each NOR-gate are referred to below in consecutive order beginning with first input for the upper input, second input for the middle input of a three-input NOR-gate and lower input of a two-input NOR-gate, and third input for the lower input of a three-input NOR-gate.
(82) The data input port din_k is coupled to an input of the inverter I.sub.1 and a first input of NOR-gate NG.sub.1. The output of the inverter I.sub.1 is coupled to a third input of NOR-gate NG.sub.2. The write mask port wbt_k is coupled to the respective second inputs of NOR-gates NG.sub.1 and NG.sub.2. The scan shift signal ishift is applied to first and third inputs of NOR-gates NG.sub.1 and NG.sub.2, respectively. The scan input port sin_k is coupled to an input of the inverter I.sub.2. The output of the inverter I.sub.2 is coupled to a first input of the NOR-gate NG.sub.3. The complementary shift signal
(83) The output of the NOR-gate NG.sub.1 is coupled to a second input of the NOR-gate NG.sub.4. The output of the NOR-gate NG.sub.2 is coupled to a second input of the NOR-gate NG.sub.5. The output of the NOR-gate NG.sub.3 is coupled to first and third inputs of NOR-gates NG.sub.4 and NG.sub.5, respectively. The clock signal clk is applied to the third and first inputs of NOR-gates NG.sub.4 and NG.sub.5, respectively.
(84) The NOR-gates NG.sub.6 and NG.sub.7 are cross-coupled. That is, the output of NOR-gate NG.sub.6 is coupled to a first input of NOR-gate NG.sub.7, and the output of NOR-gate NG.sub.7 is coupled to a third input of NOR-gate NG.sub.6. The output of NOR-gate NG.sub.4 is coupled to a second input of NOR-gate NG.sub.6. The output of NOR-gate NG.sub.5 is coupled to a second input of NOR-gate NG.sub.7. The outputs of NOR-gates NG.sub.6 and NG.sub.7 are coupled to second and first inputs of NOR-gate NG.sub.8, respectively. The complementary clock signal clk is applied to a third input of NOR-gate NG.sub.8. The output of NOR-gate NG.sub.8 is coupled to first and third inputs of NOR-gates NG.sub.6 and NG.sub.7, respectively.
(85) The output of NOR-gate NG.sub.6 is also coupled to a first input of NOR-gate NG.sub.9 and to an input of inverter I.sub.3. The output of NOR-gate NG.sub.7 is coupled to a second input of NOR-gate NG.sub.10 and to an input of inverter I.sub.4. The complementary clock signal clk is applied to second and first inputs of NOR-gates NG.sub.9 and NG.sub.10, respectively.
(86) The NOR-gates NG.sub.11 and NG.sub.12 are cross-coupled. That is, the output of NOR-gate NG.sub.11 is coupled to a first input of NOR-gate NG.sub.12, and the output of NOR-gate NG.sub.12 is coupled to a third input of NOR-gate NG.sub.11. The output of NOR-gate NG.sub.9 is coupled to a second input of NOR-gate NG.sub.11. The output of NOR-gate NG.sub.10 is coupled to a second input of NOR-gate NG.sub.12. The outputs of NOR-gates NG.sub.11 and NG.sub.12 are coupled to second and first inputs of NOR-gate NG.sub.13, respectively. The clock signal clk is applied to a third input of NOR-gate NG.sub.13. The output of NOR-gate NG.sub.13 is coupled to first and third inputs of NOR-gates NG.sub.11 and NG.sub.12, respectively. The scan output port sou_k for the bitline driver 300 is coupled to the output of the NOR-gate NG.sub.12.
(87) The outputs of the inverters I.sub.3 and I.sub.4 are coupled to inputs of pass gates PG.sub.1 and PG.sub.2, respectively. The outputs of the pass gates PG.sub.1 and PG.sub.2 are coupled to the complementary bitlines BL_k/
(88) The following describes the writing of data to (as well as masking the writing of data from) a memory cell (C) coupled to complementary bitline BL_k/
(89) In this example, the write mask signal wbt_k is deasserted (e.g., at a logic zero (0)) so as not to mask the writing of data into the target memory cell (C). If the write mask signal wbt_k were asserted (e.g., at a logic one (1)), the master-latch 420 latches two logic low signals at the outputs of NOR-gates NG.sub.6 and NG.sub.7. In response, the inverters I.sub.3 and I.sub.4 produce logic high signals on the complementary bitlines BL_k/
(90) With the ishift and write mask signals being deasserted, the multiplexer 410 outputs the data signal din_k. That is, the ishift and write mask signals being logic zeros (Os) and being applied to two inputs of the three-input NOR-gates NG.sub.1 and NG.sub.2 essentially enable the gates to output inverted and non-inverted data signal din_k, respectively. Further, the complementary shift signal
(91) During a first half clock cycle when the complementary clock signals clk/
(92) During a second half clock cycle when the complementary clock signals clk/
(93) In response to the latched inverted and non-inverted data signal din_k, the inverters I.sub.3 and I.sub.4 generate non-inverted and inverted data signal din_k, respectively. Based on the bitline select signals wm/
(94) In scan shift mode, the complementary shift signals ishift/
(95) During a first half clock cycle, the complementary clock signals clk/
(96) During a second half clock cycle, the complementary clock signals clk/
(97) During a third half clock cycle, the complementary clock signals clk/
(98) Thus, as described above, it takes 1.5 clock cycles for the test vector signal sin_k to propagate through the bitline driver 400, instead of 2.5 clock cycles required by the bitline driver 200. Thus, the bitline driver 400 is able to propagate a test vector signal much faster than bitline driver 200. Additionally, the bitline driver 400 has only two (2) latches, whereas bitline driver 200 has four (4) latches. This translates to substantial savings in IC area and power consumption as the IC may include many bitline drivers depending on the size of the corresponding memory array.
(99)
(100) The method 500 includes latching a data signal at a first node in response to a first state of a clock signal if a scan shift signal is deasserted (block 510). An example of a means for latching a data signal at a first node in response to a first state of a clock signal if a scan shift signal is deasserted includes tristate inverter I.sub.1, pass gate PG.sub.1, and the latch 320 of bitline driver 300.
(101) The method 500 further includes latching a test vector signal at the first node in response to the first state of the clock signal if the scan shift signal is asserted (block 520). An example of a means for latching a test vector signal at the first node in response to the first state of the clock signal if the scan shift signal is asserted includes tristate inverter I.sub.1, pass gate PG.sub.1, and the latch 320 of bitline driver 300.
(102) The method 500 further includes latching a write mask signal at a second node in response to the first state of the clock signal if the scan shift signal is deasserted (block 530). An example of a means for latching a write mask signal at a second node in response to the first state of the clock signal if the scan shift signal is deasserted includes tristate inverter I.sub.3, pass gate PG.sub.2, and the latch 330 of bitline driver 300.
(103) The method 500 further includes latching the test vector signal at the second node in response to the first state of the clock signal if the scan shift signal is asserted (block 540). An example of a means for latching the test vector signal at the second node in response to the first state of the clock signal if the scan shift signal is asserted includes tristate inverter I.sub.3, pass gate PG.sub.2, and the latch 330 of bitline driver 300.
(104)
(105) The method 600 includes latching a data signal at a first node in response to a first state of a clock signal if a write mask signal and a scan shift signal are deasserted (block 610). An example of a means for latching a data signal at a first node in response to a first state of a clock signal if a write mask signal and a scan shift signal are deasserted includes the master-latch 420 of bitline driver 400.
(106) The method 600 further includes latching a test vector signal at the first node in response to the first state of the clock signal if the scan shift signal is asserted (block 620). An example of a means for latching a test vector signal at the first node in response to the first state of the clock signal if the scan shift signal is asserted includes the master-latch 420 of bitline driver 400.
(107) The method 600 further includes latching the test vector signal at a second node in response to a second state of the clock signal if the scan shift signal is asserted (block 630). An example of a means for latching the test vector signal at a second node in response to a second state of the clock signal if the scan shift signal is asserted includes the slave-latch 430 of bitline driver 400.
(108) The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.