Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
APPARATUS AND METHOD FOR IMPLEMENTING DESIGN FOR TESTABILITY (DFT) FOR BITLINE DRIVERS OF MEMORY CIRCUITS
Document Type and Number:
WIPO Patent Application WO/2018/182957
Kind Code:
A1
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.

Inventors:
SINHA RAKESH KUMAR (US)
MATHURIA PRIYANKAR (IN)
GUPTA SHARAD KUMAR (US)
Application Number:
PCT/US2018/022003
Publication Date:
October 04, 2018
Filing Date:
March 12, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
QUALCOMM INC (US)
International Classes:
G11C29/32; G11C11/419; G11C29/02; G11C29/12
Foreign References:
US20140028362A12014-01-30
US20110072323A12011-03-24
Other References:
None
Attorney, Agent or Firm:
FOUNTAIN, George (US)
Download PDF:
Claims:
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.

21. An apparatus, comprising:

a first latch configured to:

latch a data signal in response to a first state of a clock signal if a write mask signal and a scan shift signal are 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 the test vector signal from the first latch in response to a second state of the clock signal if the scan shift signal is asserted.

22. The apparatus of claim 21, further comprising a gating device configured to route the data signal from a data input port to the first latch in response to the write mask signal and scan shift signal being deasserted.

23. The apparatus of claim 21, further comprising a gating device configured to prevent the routing of the data signal from a data input port to the first latch in response to the write mask signal being asserted.

24. The apparatus of claim 21, further comprising a gating device configured to route the test vector signal from a scan input port to the first latch in response to the scan shift signal being asserted.

25. The apparatus of claim 21, 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.

26. A method, comprising:

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;

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; and

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.

27. The method of claim 26, 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 write mask signal and scan shift signal being deasserted.

28. The method of claim 26, further comprising preventing the routing of the data signal from a data input port to a latch for latching the data signal at the first node in response to the write mask signal being asserted.

29. The method of claim 26, further comprising routing the test vector signal from a scan input port to a latch for latching the test vector signal at the first node in response to the scan shift signal being asserted.

30. The method of claim 26, further comprising writing data to a memory cell coupled to complementary bitlines based on the data signal if the write mask signal is deasserted.

Description:
APPARATUS AND METHOD FOR IMPLEMENTING DESIGN FOR TESTABILITY (DFT)

FOR BITLINE DRIVERS OF MEMORY CIRCUITS

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims priority to and the benefit of Non-Provisional Application No.

15/472,121 filed in the U.S. Patent and Trademark Office on March 28, 2017, the entire content of which is incorporated herein by reference.

BACKGROUND

Field

[0002] Aspects of the present disclosure relate generally to memory circuits, and in particular, to an apparatus and method for implementing design for testability (DFT) for bitline drivers of memory circuits.

Background

[0003] A memory circuit typically includes a two-dimensional array of memory cells. Memory cells common to rows (or columns) are coupled to a set of wordlines, respectively. Memory cells common to columns (or rows) are coupled to a set of complementary bitlines, respectively.

[0004] The memory circuit typically includes a wordline driver for selecting target memory cells upon which a data write or read operation will be performed. The wordline driver performs this selection by generating an asserted signal on the wordline coupled to the target memory cells, and generating deasserted signals on the remaining wordlines of the set. The asserted signal on the wordline causes the target memory cells to be coupled to complementary bitlines, respectively.

[0005] For reading data from the memory array, the memory circuit includes a sense amplifier coupled to the set of complementary bitlines. When the wordline driver selects a row (or column) of target memory cells for reading data therefrom, the sense amplifier senses the data on the complementary bitlines. The sense amplifier then reads out the data and provides it to a data output port.

[0006] For writing data into the memory array, the memory circuit includes a set of bitline drivers for generating data signals on the complementary bitlines for writing data into target memory cells, respectively. Each bitline driver of the set includes a data input port for receiving a data signal for writing data to the target memory cell. Each bitline driver of the set includes a write mask input port for receiving a write mask signal for masking the writing of data to a memory cell even if a data signal is present at the data input port.

[0007] This disclosure pertains to bitline drivers for improved functional and test mode operations.

SUMMARY

[0008] The following presents a simplified summary of one or more embodiments in order to provide a basic understanding of such embodiments. This summary is not an extensive overview of all contemplated embodiments, and is intended to neither identify key or critical elements of all embodiments nor delineate the scope of any or all embodiments. Its sole purpose is to present some concepts of one or more embodiments in a simplified form as a prelude to the more detailed description that is presented later.

[0009] An aspect of the disclosure relates to an apparatus including 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.

[0010] Another aspect of the disclosure relates to a method including 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.

[0011] Another aspect of the disclosure relates to an apparatus including a first latch configured to latch a data signal in response to a first state of a clock signal if a write mask signal and a scan shift signal are 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 the test vector signal from the first latch in response to a second state of the clock signal if the scan shift signal is asserted.

[0012] Another aspect of the disclosure relates to a method including 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; 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; and 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.

[0013] To the accomplishment of the foregoing and related ends, the one or more embodiments include the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative aspects of the one or more embodiments. These aspects are indicative, however, of but a few of the various ways in which the principles of various embodiments may be employed and the description embodiments are intended to include all such aspects and their equivalents.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014] FIG. 1A illustrates a block diagram of an exemplary memory circuit in accordance with an aspect of the disclosure.

[0015] FIG. IB illustrates a schematic diagram of an exemplary memory cell and precharge circuit in accordance with another aspect of the disclosure.

[0016] FIG. 2 illustrates a schematic diagram of an exemplary bitline driver in accordance with another aspect of the disclosure.

[0017] FIG. 3 illustrates a schematic diagram of another exemplary bitline driver in accordance with another aspect of the disclosure.

[0018] FIG. 4 illustrates a schematic diagram of another exemplary bitline driver in accordance with another aspect of the disclosure.

[0019] FIG. 5 illustrates a flow diagram of an exemplary method of operating a bitline driver in accordance with another aspect of the disclosure.

[0020] FIG. 6 illustrates a flow diagram of another exemplary method of operating a bitline driver in accordance with another aspect of the disclosure.

DETAILED DESCRIPTION [0021] 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.

[0022] FIG. 1A illustrates a block diagram of an exemplary memory circuit 100 in accordance with an aspect of the disclosure. The memory circuit 100 includes a memory array 110 of memory cells (C). In this example, the memory array 110 is configured as a two- dimensional array having a dimension of (n+1) by (m+1) memory cells (C). As discussed further herein, each memory cell (C) may be configured as a static random access memory (SRAM) type memory cell, or other type of memory cell.

[0023] 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.

[0024] 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/BL_0 to BL_n/BL_n, respectively. The bitline drivers 0 to n include data input ports din_0 to din n for receiving data for writing data to memory cells (C) coupled to the corresponding bitlines BL_0/BL_0 to BL_n/BL_n, respectively. The bitline drivers 0 to n include write mask input ports wbt_0 to wbt n for receiving write mask signals for masking the writing of data to memory cells (C) coupled to bitlines BL_0/BL_0 to BL_n/BL_n, respectively.

[0025] 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 l of bitline driver 1. Similarly, the bitline driver n-1 includes a scan output port sou_n-l coupled to the scan input port sin n of bitline driver n.

[0026] In general, for any intermediate bitline driver (where its position index k in the chain is not 0 or n), the k* bitline driver includes a scan input port sin k coupled to the scan output port sin_k-l of the k th -l bitline driver, and a scan output port sou k coupled to the scan input port sin_k+l of the k th +l bitline driver.

[0027] 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/BL_0 to BL_n/BL_n, respectively. The sense amplifier 130 further includes another input for receiving a control signal bl cntl for enabling the reading of data from the memory cells (C). Additionally, the sense amplifier 130 includes a data output port dout for outputting the read data.

[0028] 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.

[0029] 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 (elk) signals for the bitline drivers 0 to n, as discussed in more detail herein.

[0030] 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. [0031] 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/BL_0 to BL_n/BL_n (and generates deasserted signals on all remaining wordlines WL_1 to WL_m so that the corresponding memory cells are not coupled to bitlines BL_0/BL_0 to BL_n/BL_n). Based on the deasserted mask signals wbt_0 to wbt_n and the input data signals din_0 to din_n, the bit line drivers 0 to n write the corresponding data into the memory cells (C).

[0032] 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/BL_0, the wordline (WL) controller 120 generates an asserted signal (e.g., at a logic one (1) voltage level) on the wordline WL_0 (and generates deasserted signals (e.g., at logic zero (0) voltage levels) on the remaining wordlines WL_1 to WL_m), and the bitline driver 0 generates a logic one (1) voltage level on bitline BL 0 and a logic zero (0) voltage level on complementary bitline BL_0. If a logic zero (0) is to be written into the same memory cell (C), the wordline (WL) controller 120 generates the same asserted and deasserted signals, and the bitline driver 0 generates a logic zero (0) voltage level on bitline BL_0 and a logic one (1) voltage level on complementary bitline BL_0.

[0033] If the writing of data into one or more memory cells coupled to the bitlines BL_0/BL_0 to BL_n/BL_n is to be masked or suppressed (even though the data signal is present in the corresponding data input port(s)), the corresponding mask signal(s) is/are asserted (e.g., at a logic one (1) voltage level).

[0034] 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.

[0035] The sense amplifier 130 precharges the complementary bitlines BL 0/ BL_0 to BL_n/BL_n with a high logic voltage based on the bl cntl control signal. Based on the control signal wl cntl indicating that the memory cells (C) coupled to wordline WL 0 is to be read, the WL controller 120 generates an asserted signal on the wordline WL_0 to couple the corresponding memory cells to the bitlines BL_0/BL_0 to BL_n/BL_n (and generates deasserted signals on all remaining wordlines WL_1 to WL_m so that the corresponding memory cells are not coupled to bitlines BL_0/BL_0 to BL_n/BL_n. The precharged complementary bitlines BL_0/ BL_0 to BL_n/ BL_n change logic states depending on the data stored by the corresponding memory cells (C). The sense amplifier 130 senses the logic states on the complementary bitlines BL_0/BL_0 to BL_n/BL_n to read out and produce the data at the data output port dout.

[0036] 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 elk 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.

[0037] 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 (elk) 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.

[0038] 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 elk 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.

[0039] FIG. IB illustrates a schematic diagram of an exemplary memory cell 150 and a corresponding precharge circuit 160 in accordance with another aspect of the disclosure. As discussed above, each memory cell (C) of the memory circuit 100 may be configured as an SRAM type memory cell. In this example, the memory cell 150 is coupled to the j th wordline WLJ and the k th complementary bitlines BL_k/BL_k. [0040] Accordingly, the memory cell 150 includes a first inverter having a p-channel metal oxide semiconductor (PMOS) field effect transistor (FET) Ml 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).

[0041] The first and second inverters are cross-coupled. That is, the output of the first inverter (at the drains of FETs Ml 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 Ml and M2) of the first inverter.

[0042] The memory cell 150 further includes access NMOS FETs M5 and M6 with gates coupled to the corresponding wordline WLJ , drain/source coupled to the complementary bitlines BL_k/BL_k, and source/drain coupled to the outputs of the first and second inverters, respectively. As noted by the ellipsis above and below the memory cell 150, other similarly structured memory cells are coupled to the complementary bitlines BL_k/BL_k.

[0043] As mentioned above, each pair of complementary bitlines BL_k/ BL_k includes a corresponding precharge circuit 160 for precharging the bitlines pursuant to a read operation. In this example, the precharge circuit 160 includes a PMOS FET M7 coupled between the upper voltage rail (VDD) and bitline BL k; a PMOS FET M8 coupled between the upper voltage rail (VDD) and complementary bitline BL_k; and a PMOS FET M9 coupled between the complementary bitlines BL_k/BL_k.

[0044] 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/ BL_k pursuant to a read operation. That is, the asserted precharge signal (pre) turns on FETs M7, M8, and M9 to couple the upper voltage rail (VDD) to the complementary bitlines BL_k/BL_k to effectuate their precharging. After the bitlines BL_k/BL_k has been precharged, the precharge signal (pre) is deasserted to turn off the FETs M7, M8, and M9 and decouple the upper voltage rail (VDD) from the bitlines BL_k/BL_k.

[0045] FIG. 2 illustrates a schematic diagram of an exemplary bitline driver 200 in accordance with another aspect of the disclosure. The bitline driver 200 may be an example of one of the bitline drivers 0 to n of memory circuit 100 previously discussed. For instance, the bitline drive 200 may be the k th bitline driver of the bitline drivers 0 to n.

[0046] In particular, the bit line driver 200 includes a multiplexer 210 with tristate inverters I 1;

h, and Ig (generally, gating devices); a first master-latch 220 including a pass gate PGi, inverter I 3 and tristate inverter I 4 ; a first slave-latch 230 including a pass gate PG2, inverter I 5 and tristate inverter I 6 ; tristate inverter I 7 ; a second master-latch 240 including a pass gate PG3, inverter I9 and tristate inverter I 10 ; and a second slave-latch 250 including a pass gate PG4, inverter In and tristate inverter I 12 . The bit line driver 200 further includes a data write circuit 260 including first and second NOR-gates NGi and NG2, inverters I1 3 and I 14 , and pass gates PG5 and PG 6 coupled to complementary bitlines BL_k/BL_k. A column of memory cells (C) and a corresponding precharge circuit (both not shown in FIG. 2) are coupled to complementary bitline BL_k/BL_k, as previously discussed with respect to FIG. 1.

[0047] The tristate inverter Ii 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_k-l of the k^-l 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 Ii is enabled (outputs an inverted input signal) and disabled (produces a tristated output) based on complementary shift signals ishift/ lshift (e.g., enabled if ishift=l and ishift=0, and disabled if ishift=0 and ishift=l).

[0048] The tristate inverter I 2 of the multiplexer 210 includes an input coupled to the write mask port wbt k. The tristate inverter I 2 is enabled and disabled based on complementary shift signals ishift/ ishift (e.g., enabled if ishift=0 and ishift=l, and disabled if ishift=l and ishift=0). The outputs of the tristate inverters Ii and h are coupled together and to an input of the first master-latch 220 (in particularly, to the input of the pass gate PGi).

[0049] The pass gate PGi 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/clk (e.g., enabled if clk=0 and clk=l, and disabled if clk=l and clk=0). The output of the pass gate PGi is coupled to the input and output of inverters I 3 and I 4 of the master-latch 220, respectively. The inverters I3 and I 4 (serving as the latch mechanism of the master- latch 220) are enabled (cross-coupled for latching signal) and disabled (not cross- coupled for not latching signal) based on complementary clock signals elk/ elk (e.g., enabled if clk=l and clk=0, and disabled if clk=0 and clk=l). The output of the first master-latch 220 (at the input and output of inverters I4 and I3, respectively) is coupled to an input of the first slave-latch 230 (in particularly, to the input of pass gate PG2) and respective first inputs of NOR-gates NGi and NG2 of the data write circuit 260.

[0050] The second pass gate PG2 of the first slave-latch 230 is enabled and disabled based on complementary clock signals clk/clk (e.g., enabled if clk=l and clk=0, and disabled if clk=0 and clk=l). The output of the second pass gate PG2 is coupled to input and output of inverters I5 and Ιβ, respectively. The inverters I5 and ¾ (serving as the latch mechanism of the slave-latch 243) are enabled and disabled based on complementary clock signals clk/clk (e.g., enabled if clk=0 and clk=l, and disabled if clk=l and clk=0). The output of the first slave-latch 230 (at the input and output of inverters \e and I5, respectively) is coupled to an input of tristate inverter I 7 .

[0051] The tristate inverter I 7 is enabled and disabled based on complementary shift signals ishift/ishift (e.g., enabled if ishift=l and ishift=0, and disabled if ishift=0 and ishift=l). The output of the tristate inverter I 7 is coupled to an input of the second master-latch 240 (in particularly, to the input of pass gate PG3).

[0052] The other tristate inverter I 8 of the multiplexer 210 includes an input coupled to the data input port din k. The tristate inverter I 8 is enabled and disabled based on complementary shift signals ishift/ lshift (e.g., enabled if ishift=0 and ishift=l, and disabled if ishift=l and ishift=0). The output of the tristate inverter I 8 is also coupled to the input of the second master-latch 240 (in particularly, to the input of the third pass gate P G 3).

[0053] The pass gate PG 3 of the second master-latch 240 is enabled and disabled based on complementary clock signals clk/clk (e.g., enabled if clk=0 and clk=l, and disabled if clk=l and clk=0). The output of the pass gate PG 3 is coupled to input and output of inverters I9 and I 10 of the second master-latch 240, respectively, and a second input of NOR-gate NG2 of the data write circuit 260. The inverters I9 and I lo (operating as the latch mechanism of the second master-latch 240) are enabled and disabled based on complementary clock signals clk/clk (e.g., enabled if clk=l and clk=0, and disabled if clk=0 and clk=l). The output of the second master-latch 240 (at the input and output of inverters 110 and I9, respectively) is coupled to an input of the second slave-latch 250 (in particularly, to an input of the pass gate PG 4 ) and a second input of NOR-gate NGi of the data write circuit 260.

[0054] The pass gate PG4 of the second slave-latch 250 is enabled and disabled based on complementary clock signals clk/clk (e.g., enabled if clk=l and clk=0, and disabled if clk=0 and clk=l). The output of the pass gate PG4 is coupled to input and output of the inverters In and I 12 (operating as the latch mechanism of the second slave-latch 250), respectively. The inverters In and I 12 are enabled and disabled based on complementary clock signals clk/clk (e.g., enabled if clk=0 and clk=l, and disabled if clk=l and clk=0).

[0055] The output of the second slave-latch 250 (at the input and output of inverters In and I 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+l of the k th +l bitline driver if it is not bitline driver n or to an external output port if it is bitline driver n.

[0056] With regard to the data write circuit 260, the outputs of the NOR-gates NGi and NG 2 are coupled to inputs of inverters I1 3 and I 14 , respectively. The outputs of the inverters Ii 3 and I 14 are coupled to inputs of pass gates PG5 and PG 6 , respectively. The pass gates PG5 and PG 6 may be controlled by complementary bitline select signals wm/wm. The pass gates PG5 and PG 6 are enabled if the wm/wm signals are high/low, and disabled if the wm/wm signals are low/high. The outputs of the pass gates PG5 and PG 6 are coupled to the complementary bitlines BL_k/BL_k, respectively.

[0057] 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/BL_k in functional mode (e.g., non-test mode). In functional mode, the complementary shift signals ishift/ishift are logic zero (0) and logic one (1), respectively. Accordingly, the inverters Ii and I7 are disabled or tristated. In functional mode, the slave-latches 230 and 250 and inverter I 7 serve no function. Additionally, in functional mode, the tristated inverters h and Ig are enabled.

[0058] 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.

[0059] During a first half clock cycle when the complementary clock signals clk/clk are low/high, the write mask signal wbt k is routed from the write mask port wbt_k to the input of inverter I 3 by the tristate inverter I 2 and the pass gate PGi. Also, during the first half clock cycle, the input data signal din k is routed from the data input port din k to the input of the inverter I 9 and the second input of the NOR-gate NG 2 by the tristate inverter I 8 and the pass gate PG 3 .

[0060] During a second half clock cycle when the complementary clock signals elk/ elk are high/low, the pass gates PGi and PG 3 are disabled to prevent any signal or noise on the ports wbt_k and data din_k from affecting the latching of the write mask signal wbt k and the data signal din k by the enabled inverters I 3 /I4 and I9/I1 0 , respectively. During the second half clock cycle, the first master-latch 220 latches the write mask signal wbt k, and the second master-latch 240 latches the data signal din k.

[0061] The latched write mask signal wbt k is applied to the respective first inputs of the NOR- gates NGi and NG 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 NGi, and the latched and non-inverted data signal din k is applied to the second input of the NOR-gate NG2.

[0062] 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 NGi and NG 2 output logic low states. In response, the inverters I1 3 and I14 generate logic high states. The logic high states are produced on the complementary bitlines BL_k/BL_k via the pass gates PG 5 and ¥Ge, which are enabled via the bitline select signals wm/wm during a write operation. The logic high states on the complementary bitlines BL_k/BL_k prevent the changing of data stored by the memory cell (C) enabled by the asserted wordline.

[0063] 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 NGi and NG 2 output the inverted and non-inverted data signal din k. In response, the inverters 11 3 and 114 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/BL_k via the pass gates PG 5 and PG 6 , respectively. Accordingly, data based on the data signal din k is written into the target memory cell (C) enabled by the asserted wordline.

[0064] 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/ishift signal are high/low. Accordingly, the tristate inverters Ii an I 7 are enabled, and the tristate inverters and Ig are disabled. Thus, a scan path exists from the scan input port sin k to the scan output port sou k via the first master-latch 220, first slave-latch 230, inverter I 7 , second master latch 240, and second slave-latch 250.

[0065] During a first half clock cycle when the complementary clock signals elk/ elk are low/high, the test vector signal sin k is routed from the scan input port sin_k to the input of the inverter I3 by the tristate inverter Ii and pass gate PGi. During a second half clock cycle when the complementary clock signals clk/clk are high/low, the first master- latch 220 latches the test vector signal sin k. Also, during the second half clock cycle, the pass gate PG 2 passes the latched test vector signal sin k to the input of the inverter I 5 of the first slave-latch 250.

[0066] During a third half clock cycle when the complementary clock signals clk/clk are low/high, the first slave-latch 230 latches the test vector signal sin k. Also, during the third half clock cycle, the pass gate PG 3 passes the latched test vector signal sin k to the input of the inverter I 9 of the second master-latch 240. During a fourth half clock cycle when the complementary clock signals clk/clk are high/low, the second master-latch 240 latches the test vector signal sin k. Also, during the fourth half clock cycle, the pass gate PG 4 passes the latched test vector signal sin k to the input of the second slave- latch 250.

[0067] During a fifth half clock cycle when the complementary clock signals clk/clk are low/high, the second slave-latch 250 latches the test vector signal sin k to produce it at the scan output port sou k. Once the test vector signal has been scanned into all of the bitline drivers 0 to n, the bitline driver 200 is operated in scan capture mode where the clock signal elk is generated at a frequency in accordance with the prescribed test operation performed on the bitline driver 200. The captured test vector signal is then generated at the outputs of the master-latches 220 and 240. Then, the bitline driver 200 is operated again in a scan shift mode to scan out the captured test vector signal.

[0068] 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.

[0069] FIG. 3 illustrates a schematic diagram of another exemplary bitline driver 300 in accordance with an aspect of the disclosure. The bitline driver 300 may be an example of one of the bitline drivers 0 to n of memory circuit 100 previously discussed. For instance, the bitline drive 300 may be the k th bitline driver of the bitline drivers 0 to n.

[0070] 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.

[0071] 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.

[0072] In particular, the bitline driver 300 includes a multiplexer 310 including tristate inverters Ii and I3, inverter I 2 , and pass gates PGi and PG2; a first latch 320 including a pass gate PG 3 , inverter I 4 and tristate inverter I 5 ; a second latch 330 including a pass gate PG4, inverter I 6 and tristate inverter I 7 ; and a third latch 340 including a pass gate PG5, inverter Ig and tristate inverter I9. The bitline driver 300 further a data write circuit 350 including first and second NOR-gates NGi and NG2, inverters I 10 and In, and pass gates PG 6 and PG7. The pass gates PG 6 and PG7 are coupled to complementary bitlines BL_k/ BL_k , respectively. A column of memory cells including a corresponding precharge circuit (both not shown) are coupled to the complementary BL_k/BL_k, as previously discussed with reference to FIG. IB.

[0073] The tristate inverter Ii includes an input coupled to an input data port din k for receiving a data signal din k. The tristate inverter Ii is enabled and disabled based on complementary shift signals ishift/ lshift (e.g., enabled if ishift=0 and ishift=l, and disabled if ishift=l and ishift=0). The output of the tristate inverter Ii is coupled to an input of the first latch 320 (in particularly, to an input of the pass gate PG3). [0074] The inverter I 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_k-l of the k th -l 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 2 is coupled to respective inputs of the pass gates PGi and PG 2 .

[0075] The tristate inverter I 3 includes an input coupled to a write mask port wbt k for receiving a write mask signal wbt k. The tristate inverter I3 is enabled and disabled based on complementary shift signals ishift/ishift (e.g., enabled if ishift=0 and ishift=l, and disabled if ishift=l and ishift=0). The output of the tristate inverter I 3 is coupled to an input of the second latch 330 (in particular, to an input the pass gate PG 4 ).

[0076] The pass gates PGi and PG 2 are enabled and disabled based on the complementary shift signals shift/ishift (e.g., enabled if shift=l and ishift=0, and disabled if shift=0 and ishift=l). The output of the pass gate PGi is coupled to the input of the first latch 320 (in particularly, to the input of the pass gate PG3), and the output of the pass gate PG 2 is coupled to the input of the second latch 330 (in particularly, to the input of the pass gate PG 4 ).

[0077] The pass gates PG 3 and PG 4 are enabled and disabled based on the complementary clock signals clk/clk (e.g., enabled if clk=0 and clk=l, and disabled if clk=l and clk=0). The output of the pass gate PG 3 of the first latch 320 is coupled to the input and output of inverters I4 and I5, respectively, and to a first input of NOR-gate NG 2 of the data write circuit 350. The output of the pass gate PG 4 of the second latch 330 is coupled to the input and output of inverters \e and I7, respectively.

[0078] The first latch 320 is enabled and disabled based on complementary clock signals clk/clk (e.g., enabled if clk=l and clk=0, and disabled if clk=0 and clk=l). The output of the first latch 320 (at the input and output of inverters I4 and I3, respectively) is coupled to a first input of the NOR-gate NGi of the data write circuit 350.

[0079] The second latch 330 is enabled and disabled based on complementary clock signals clk/clk (e.g., enabled if clk=l and clk=0, and disabled if clk=0 and clk=l). The output of the second latch 330 (at the input and output of inverters I7 and Ιβ, respectively) is coupled to respective second inputs of the NOR-gates NGi and NG 2 of the data write circuit 350. [0080] With regard to the data write circuit 350, the outputs of the NOR-gates NGi and NG 2 are coupled to inputs of inverters I 10 and In, respectively. The outputs of the inverters Iio and In are coupled to inputs of pass gates PG 6 and PG7, respectively. The pass gates PG 6 and PG7 are controlled by complementary bitline select signals wm/wm. The pass gates PG 6 and PG7 are enabled if the signals wm/wm signal are high/low, and disabled if the signals wm/wm signal are low/high. The outputs of the pass gates PG 6 and PG7 are coupled to the complementary bitlines BL k/ B_L_k, respectively.

[0081] The output of the first NOR-gate NGi 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 PG5). The pass gates PG5 is enabled and disabled based on the complementary clock signals clk/clk (e.g., enabled if clk=l and clk=0, and disabled if clk=0 and clk=l). The output of the pass gate PG5 is coupled to the input and output of inverters Ig and I 9 , respectively. The output of the third latch 340 (at the input and output of inverters I 9 and Ig, respectively) is coupled to the scan output port sou k of the bitline driver 300. The scan output port sou_k is coupled to the scan input sin_k+l of the k^+l bitline driver if it is not bitline driver n or to an external output port if it is bitline driver n.

[0082] 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/BL_k in functional mode. In functional mode, the complementary shift signals ishift/ishift are logic zero (0) and one (1), respectively. Accordingly, the pass gates PGi and PG2 are disabled or tristated. In functional mode, the third latch 340 serves no function. Additionally, in functional mode, the tristated inverters Ii and I3 are enabled.

[0083] During a first half clock cycle when the complementary clock signals clk/clk are low/high, the data signal din k is routed from the data input port din_k to the input of the inverter I 4 and the first input of the NOR-gate NG2 by the inverter Ii and pass gate PG 3 . Also, during the first half clock cycle, the write mask signal wbt k is routed from the write mask port wbt k to the input of the inverter I 6 by the tristate inverter I 3 and pass gate PG4.

[0084] During a second half clock cycle when the complementary clock signals clk/clk is high/low, the pass gates PG3 and PG4 are disabled to prevent signal and/or noise at the ports din_k and wbt_k from affecting the latching of the data signal din k and write mask signal wbt k by the first and second latches 320 and 330, respectively. Also, during the second half clock cycle, the first latch 320 latches the data signal din k, and the second latch 230 latches the write mask signal wbt k.

[0085] The latched write mask signal wbt k is applied to the respective second inputs of the NOR-gates NGi and NG 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 2 , and the latched and non-inverted data signal din k is applied to the first input of the NOR-gate NGi.

[0086] 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 NGi and NG 2 output logic low states. In response, the inverters I1 3 and I14 generate logic high states. The logic high states are produced on the complementary bitlines BL_k/BL_k via the pass gates ¥Ge and PG 7 , which are enabled via the bitline select signals wm/wm during a write operation. The logic high states on the complementary bitlines BL_k/BL_k prevent the changing of data stored by the memory cell (C) enabled by the asserted wordline.

[0087] 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 NGi and NG 2 output the inverted and non-inverted data signal din k. In response, the inverters 11 3 and 114 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/BL_k via the pass gates PG 6 and PG 7 , respectively. Accordingly, data based on the data signal din k is written into the target memory cell (C) enabled by the asserted wordline.

[0088] 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/ishift are high/low, respectively. Accordingly, the pass gates PGi and PG 2 are enabled, and the tristate inverters Ii and I 3 are disabled or tristated. Thus, two parallel scan paths exist from the scan input port sin k to the scan output sou k: The first path traverses pass gate PGi and first latch 320; the second path traverses pass gate PG 2 and the second latch 330. The NOR-gate NGi merges the parallel scan paths into a single path, and continues to the scan output port sou k via the third latch 340.

[0089] During a first half clock cycle when the complementary clock signals elk/ elk are low/high, a test vector signal sin k is routed from the scan input port sin_k to the input of the inverter I 4 of the first latch 320 by the pass gates PGi and PG3. Also, during this first half clock cycle, the test vector signal sin k is also routed from the scan input port sin k to the input of the inverter I 6 of the second latch 330 by the pass gates PG 2 and PG 4 . During a second half clock cycle when the complementary clock signals clk/clk are high/low, the first and second latches 320 and 330 latch the test vector signal sin k.

[0090] Accordingly, the NOR-gate NGi outputs the test vector signal sin k (albeit, inverted).

Also, during the second half clock cycle, the pass gate PG 5 passes the inverted test vector signal sin k to the input of inverter Ig of the third latch 340. During the third half clock cycle when the complementary clock signals clk/clk are low/high, the third latch 340 latches the test vector signal sin k to produce it at the scan output port sou_k.

[0091] 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.

[0092] FIG. 4 illustrates a schematic diagram of another exemplary bitline driver 400 in accordance with another aspect of the disclosure. The bitline driver 400 may be an example of one of the bitline drivers 0 to n of memory circuit 100 previously discussed. For instance, the bitline drive 400 may be the k* bitline driver of the bitline drivers 0 to n.

[0093] In particular, the bitline driver 400 includes a multiplexer 410 (generally, a gating device or circuit) including inverters Ii and h, and NOR-gates NGi, NG 2 , and NG 3 ; a master-latch 420 including NG 4 , NG 5 , NG 6 , NG 7 , and NG 8 ; a slave-latch 430 including NOR-gates NG 9 , NG 10 , NGn, NG 12 , and NGi 3 ; and a data write circuit 440 including inverters I3 and I4, pass gates PGi and PG 2 .

[0094] The NOR-gates NGi, NG 2 , NG 4 , NG 5 , NG 6 , NG 7 , NG 8 , NGn, NG 12 , and NG13 are three-input NOR-gates, and the NOR-gates NG 3 , NG 9 , and NG 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. [0095] The data input port din k is coupled to an input of the inverter Ii and a first input of NOR-gate NGi. The output of the inverter Ii is coupled to a third input of NOR-gate NG 2 . The write mask port wbt_k is coupled to the respective second inputs of NOR- gates NGi and NG 2 . The scan shift signal ishift is applied to first and third inputs of NOR-gates NGi and NG 2 , respectively. The scan input port sin_k is coupled to an input of the inverter I 2 . The output of the inverter I 2 is coupled to a first input of the NOR- gate NG3. The complementary shift signal ishift is applied to a second input of the NOR-gate NG 3 .

[0096] The output of the NOR-gate NGi is coupled to a second input of the NOR-gate NG 4 .

The output of the NOR-gate NG 2 is coupled to a second input of the NOR-gate NG 5 . The output of the NOR-gate NG 3 is coupled to first and third inputs of NOR-gates NG 4 and NG5, respectively. The clock signal elk is applied to the third and first inputs of NOR-gates NG 4 and NG 5 , respectively.

[0097] The NOR-gates NG 6 and NG 7 are cross-coupled. That is, the output of NOR-gate NG 6 is coupled to a first input of NOR-gate NG 7 , and the output of NOR-gate NG 7 is coupled to a third input of NOR-gate NG 6 . The output of NOR-gate NG 4 is coupled to a second input of NOR-gate NG 6 . The output of NOR-gate NG 5 is coupled to a second input of NOR-gate NG 7 . The outputs of NOR-gates NG 6 and NG 7 are coupled to second and first inputs of NOR-gate NGg, respectively. The complementary clock signal elk is applied to a third input of NOR-gate NGg. The output of NOR-gate NGg is coupled to first and third inputs of NOR-gates NG 6 and NG 7 , respectively.

[0098] The output of NOR-gate NG 6 is also coupled to a first input of NOR-gate NG 9 and to an input of inverter I 3 . The output of NOR-gate NG 7 is coupled to a second input of NOR- gate NG 10 and to an input of inverter I 4 . The complementary clock signal elk is applied to second and first inputs of NOR-gates NG 9 and NG 10 , respectively.

[0099] The NOR-gates NG n and NGn are cross-coupled. That is, the output of NOR-gate NG 11 is coupled to a first input of NOR-gate NG 12 , and the output of NOR-gate NG 12 is coupled to a third input of NOR-gate NGn. The output of NOR-gate NG 9 is coupled to a second input of NOR-gate NGn. The output of NOR-gate NG 10 is coupled to a second input of NOR-gate NG 12 . The outputs of NOR-gates NGn and NG 12 are coupled to second and first inputs of NOR-gate NGn, respectively. The clock signal elk is applied to a third input of NOR-gate NGn. The output of NOR-gate NGn is coupled to first and third inputs of NOR-gates NGn and NG 12 , respectively. The scan output port sou_k for the bitline driver 300 is coupled to the output of the NOR-gate NG 12 .

[0100] The outputs of the inverters I3 and I4 are coupled to inputs of pass gates PGi and PG2, respectively. The outputs of the pass gates PGi and PG2 are coupled to the complementary bitlines BL_k/BL_k, respectively. A column of memory cells including a corresponding precharge circuit (both not shown) are coupled to the complementary BL_k/BL_k, as previously discussed with reference to FIG. IB.

[0101] 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/BL_k in functional mode. In functional mode, the complementary shift signals ishift/ishift are logic zero (0) and one (1), respectively. Also, in functional mode, the slave-latch 430 does not serve a function.

[0102] 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 NG6 and NG7. In response, the inverters I3 and I4 produce logic high signals on the complementary bitlines BL_k/BL_k via the pass gates PGi and PG2 enabled by the complementary bitline select signals wm/wm. The logic high signals on the bitlines BL_k/BL_k prevent the writing of data to a memory cell selected by a corresponding asserted wordline.

[0103] 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 (0s) and being applied to two inputs of the three-input NOR-gates NGi and NG2 essentially enable the gates to output inverted and non-inverted data signal din k, respectively. Further, the complementary shift signal ishift, being a logic one (1) in functional mode, causes the NOR-gate NG 3 to output a logic zero (0) so as to enable the NOR-gates NG4 and NG5 from the scan input perspective.

[0104] During a first half clock cycle when the complementary clock signals elk/ elk are low/high, the NOR-gates NG 4 and NG5 output the non-inverted and inverted data signal din k, respectively. Also, during the first half clock cycle, the NOR-gate NGg generates a logic zero (0) to enable the cross-coupled NOR-gates NG 6 and NG7 to output inverted and non-inverted data signal din k, respectively. [0105] During a second half clock cycle when the complementary clock signals clk/clk are high/low, respectively, the clock signal elk disables the NOR-gates NG 4 and NG 5 to prevent signal and/or noise at the data input port din k from affecting the data latched by the master-latch 420. The complementary clock signal elk causes the NOR-gate NGg to output a logic one (1) so that the cross-coupled NOR-gates NG6 and NG7 latch the inverted and non-inverted data signal din k at the outputs of the NOR-gates, respectively.

[0106] In response to the latched inverted and non-inverted data signal din k, the inverters I3 and I4 generate non-inverted and inverted data signal din k, respectively. Based on the bitline select signals wm/wm being asserted (e.g., at logic high and low, respectively), the pass gates PGi and PG 2 pass the non-inverted and inverted data signal din k to the complementary bitlines BL_k/BL_k, respectively. This causes the writing data into the target memory cell (C) based on the data signal din k.

[0107] In scan shift mode, the complementary shift signals ishift/ishift are logic one (1) and logic zero (0), respectively. The signal ishift being a logic one (1) effectively disables the NOR-gates NGi and NG 2 so that they both output logic zeros (Os). The inverter I 2 generates an inverted test vector signal sin k. The complementary signal ishift being a logic zero (0) causes the NOR-gate NG3 to output the non-inverted test vector signal sin k.

[0108] During a first half clock cycle, the complementary clock signals clk/clk are logic low and high, respectively. The clock signal elk being low causes the NOR-gates NG 4 and NG 5 to both output the inverted test vector signal sin k. The complementary clock signal elk being high causes the NOR-gate NGg to output a logic low. This causes the cross-coupled NOR-gates NG 6 and NG 7 to output the non-inverted test vector signal sin k.

[0109] During a second half clock cycle, the complementary clock signals clk/clk are logic high and low, respectively. The clock signal elk being high disables the NOR-gates NG 4 and NG 5 to prevent signal and/or noise at the scan input port sin_k from affecting the test vector signal sin k latched by the master-latch 420. The complementary clock signal elk being low causes the NOR-gate NGs to output a logic one (1) so that the cross-coupled NOR-gates NG 6 and NG 7 latch the non-inverted test vector signal sin k. The complementary clock signal elk being low also causes the NOR-gates NG 9 and NG 10 to output the inverted test vector signal sin k.

[0110] During a third half clock cycle, the complementary clock signals clk/clk are logic low and high, respectively. The complementary clock signal elk being high disables the NOR-gates NG 9 and NG 10 to prevent the output of the master-latch 420 from affecting the data latched by the slave-latch 430. The clock signal elk being low causes the NOR- gate NG 13 to output a logic one (1) so that the cross-coupled NOR-gates NGn and NG 12 latch the test vector signal sin k and provide it to the scan output port sou_k.

[0111] 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.

[0112] FIG. 5 illustrates a flow diagram of an exemplary method 500 of operating a bitline driver in accordance with another aspect of the disclosure.

[0113] 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 1; pass gate PGi, and the latch 320 of bitline driver 300.

[0114] 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 1; pass gate PGi, and the latch 320 of bitline driver 300.

[0115] 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 3 , pass gate PG 2 , and the latch 330 of bitline driver 300. [0116] 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 3 , pass gate PG 2 , and the latch 330 of bitline driver 300.

[0117] FIG. 6 illustrates a flow diagram of an exemplary method 600 of operating a bitline driver in accordance with another aspect of the disclosure.

[0118] 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.

[0119] 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.

[0120] 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.

[0121] 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.