A device includes a programmable ROM circuit, an address circuit, and a processor. The programmable ROM circuit includes multiple physically contiguous pairs of bit-cells, each pair of bit-cells includes an active layer trace extending continuously across both of the bit-cells, each pair of bit-cells comprises a shared contact layer point when the pair of bit-cells is programmed to a value of one and no shared contact layer point when the pair of bit-cells is programmed to a value of zero. The address circuit is coupled to the programmable ROM circuit and configured to address only a first bit-cell of each pair of bit-cells. The processor is coupled to the address circuit and the programmable ROM circuit and configured to use the address circuit to read data from one or more pairs of bit-cells of the programmable ROM circuit.
|
1. A device comprising:
a memory array that includes a set of bit cells arranged in pairs of bit cells such that:
each pair of bit cells includes:
a first contact aligned in a first direction with the first contact of a remainder of the pairs of bit cells;
a second contact aligned in the first direction with the second contact of the remainder of the pairs of bit cells; and
a conductor trace extending between the first contact and the second contact in a second direction that is perpendicular to the first direction;
a first subset of the pairs of bit cells, wherein each represent a first value and each include a third contact aligned in the first direction with the third contact of a remainder of the first subset; and
a second subset of the pairs of bit cells, wherein each represent a second value and each are free of a third contact aligned in the first direction with the third contacts of the first subset.
13. A device comprising:
a processor;
a memory circuit coupled to the processor that includes:
a first set of bit cells arranged in pairs of bit cells such that:
each pair of bit cells includes:
a first contact aligned in a first direction with the first contact of a remainder of the pairs of bit cells;
a second contact aligned in the first direction with the second contact of the remainder of the pairs of bit cells; and
a conductor trace extending between the first contact and the second contact in a second direction that is perpendicular to the first direction;
a first subset of the pairs of bit cells, wherein each represent a first value and each include a third contact aligned in the first direction with the third contact of a remainder of the first subset; and
a second subset of the pairs of bit cells, wherein each represent a second value and each are free of a third contact aligned in the first direction with the third contacts of the first subset; and
a second set of bit cells arranged in a column such that:
each bit cell of the second set of bit cells includes:
a first contact aligned in the first direction with the first contact of a remainder of the second set of bit cells; and
a second contact aligned in the first direction with the second contact of the remainder of the second set of bit cells;
a first subset of the second set of bit cells, wherein each represent a third value and each include a conductor trace extending between the first contact and the second contact; and
a second subset of the second set of bit cells, wherein each represent a fourth value and each are free of a conductor trace extending between the first contact and the second contact; and
an address circuit coupled to the processor and configured to:
receive an address from the processor;
determine, based on the memory circuit, a value associated with the address; and
provide the value to the processor.
2. The device of
3. The device of
4. The device of
5. The device of
7. The device of
receive an address;
based on the address, determine a value associated with a bit cell of the memory array; and
provide the value.
8. The device of
9. The device of
10. The device of
the memory array is a first memory array;
the set of bit cells is a first set of bit cells; and
the device further comprises a second memory array that includes a second set of bit cells arranged such that:
each bit cell of the second set of bit cells includes:
a first contact aligned in the first direction with the first contact of a remainder of the second set of bit cells; and
a second contact aligned in the first direction with the second contact of the remainder of the second set of bit cells;
a first subset of the second set of bit cells, wherein each represent a third value and each include a conductor trace extending between the first contact and the second contact; and
a second subset of the second set of bit cells, wherein each represent a fourth value and each are free of a conductor trace extending between the first contact and the second contact.
11. The device of
the first value and the third value are the same; and
the second value and the fourth value are the same.
12. The device of
each bit cell of the second subset of the second set of bit cells includes a portion of a conductor trace;
and the portion of the conductor trace of each bit cell of the second subset does not extend between the respective first contact and the respective second contact.
14. The device of
the first value and the third value represent one; and
the second value and the fourth value represent zero.
15. The device of
16. The device of
17. The device of
19. The device of
each bit cell of the second subset of the second set of bit cells includes a portion of a conductor trace; and
the portion of the conductor trace of each bit cell of the second subset does not extend between the respective first contact and the respective second contact.
20. The device of
|
This application is a continuation of U.S. patent application Ser. No. 17/460,368, filed Aug. 30, 2021, which is incorporated by reference herein in its entirety.
A system on a chip (SoC) is an integrated circuit that includes components of an electronic system. These components may include, on a single substrate or microchip, a microcontroller, microprocessor or one or more processor cores; read-only memory (ROM) and random access memory (RAM) of various types; coprocessor circuits such as security circuits and graphics processing units (GPUs); analog interfaces; serial and parallel input/output ports; and ethernet, Wi-Fi, and cellular communication interfaces. An SoC may be coupled to external devices by the analog interfaces, the serial and/or parallel input/output ports, or the ethernet, Wi-Fi, and/or cellular communication interfaces.
In examples, a device includes a programmable ROM circuit, an address circuit, and a processor. The programmable ROM circuit includes multiple physically contiguous pairs of bit-cells, each pair of bit-cells includes an active layer trace extending continuously across both of the bit-cells of the pair of bit-cells, each pair of bit-cells comprises a contact layer point shared among the bit-cells in the pair when each bit-cell in the pair is programmed to a value of one and no contact layer point shared among the bit-cells in the pair when each bit-cell in the pair is programmed to a value of zero. The address circuit is coupled to the programmable ROM circuit and configured to address only a first bit-cell of each pair of bit-cells. The processor is coupled to the address circuit and the programmable ROM circuit and configured to use the address circuit to read data from one or more pairs of bit-cells of the programmable ROM circuit.
In another example, a device includes a programmable ROM circuit, an address circuit, and a processor. The programmable ROM circuit includes a first plurality of bit-cells that include multiple non-overlapping single-cell byte-subsets of the bit-cells, each single-cell byte-subset including m bit-cells, and a second plurality of bit-cells that include multiple physically contiguous pairs of bit-cells, each pair of bit-cells including an active layer trace extending continuously across both of the bit-cells of the pair of bit-cells. Each pair of bit-cells of the second plurality of bit-cells includes a contact layer point shared among the bit-cells in the pair when each bit-cell in the pair is programmed to a value of one and no contact layer point shared among the bit-cells in the pair when each bit-cell in the pair is programmed to a value of zero. The multiple physically contiguous pairs of bit-cells include a plurality of non-overlapping paired-cell byte-subsets of the pairs of bit-cells and each paired-cell byte-subset includes n pairs of bit-cells. The address circuit is coupled to the programmable ROM circuit and is configured to address simultaneously the bit-cells of a selected single-cell byte-subset or only a first bit-cell of each pair of bit-cells of a selected paired-cell byte-subset. The processor is coupled to the address circuit and the programmable ROM circuit and is configured to use the address circuit to read data from the selected single-cell byte-subset or selected paired-cell byte-subset of the programmable ROM circuit.
In a further example, a method includes initiating fabrication of a first SoC based on a first GDSII chip layout file, the first GDSII chip layout file defining the first SoC as including a programmable ROM circuit. The programmable ROM circuit includes multiple physically contiguous pairs of bit-cells, each pair of bit-cells including an active layer trace that extends continuously across both of the bit-cells of the pair of bit-cells, and each pair of bit-cells includes a contact layer point shared among the bit-cells in the pair when each bit-cell in the pair is programmed to a value of one and no contact layer point shared among the bit-cells in the pair when each bit-cell in the pair is programmed to a value of zero. The method further includes testing the first SoC and, in response to determining that firmware of the first SoC should be changed, halting fabrication of the first SoC and generating a new ROM image. The method further includes initiating generation of a second GDSII chip layout file defining a second SoC that differs from the first GDSII chip layout file at least in locations of the shared contact layer points of the pairs of bit-cells of the programmable ROM circuit in the first SoC and in the second SoC, and initiating fabrication of the second SoC based on the second GDSII chip layout file.
For a detailed description of various examples, reference will now be made to the accompanying drawings in which:
An SoC includes ROM programmed during fabrication with some functionality of the SoC. The functionality may include basic functions, such as an operating system, communication protocols, or loading additional programs from an external source to add higher level functionality to the SoC. Some SoCs are designed to operate as standalone devices and the ROMs of such SoCs include firmware for higher level functionality.
After an SoC design is completed, fabrication of the SoC is initiated. The fabricated devices are tested to confirm that, as manufactured, the devices function according to requirements and the design. If problems are found with the fabricated devices, fabrication is halted while changes are made to the hardware and/or firmware of the SoC to correct the problems. Where the changes are only to the firmware, only the ROM design of the SoC is modified to include the changed firmware and fabrication is reinitiated to build SoCs according to the new design. Some partially fabricated SoCs of the first design may be discarded, representing significant opportunity costs and efficiency losses. In addition, the fabrication system may stand idle while the firmware and the ROM design are changed, negatively impacting production and revenue.
Bit-cells of one type of ROM technology are programmed to values of 1 (one) and 0 (zero) by configuration of both an active layer and a contact layer of the ROM circuit. Such bit-cell structures may be used to maximize bit-cell density. However, it may be desirable in some applications for bit-cells to be programmed by configuration of only the contact layer of the ROM circuit despite any potential impact on bit-cell density.
In various embodiments of the present disclosure, programmable ROM circuits have at least some bit-cells with active layer configurations that allow the ROM circuits to be programmed to values of 1 (one) and 0 (zero) by configuration of the contact layers of the ROM circuits. This allows for quicker design turnaround of a new ROM design that has changed firmware, permitting fabrication to resume more quickly. Furthermore, in a fabrication process where the contact layer of the ROM circuit is deposited after the active layer, partially fabricated SoCs of the previous ROM design that had not reached deposition of the contact layer of the old design may be used with the new ROM design by resuming fabrication using the contact layer of the new design, thus reducing the number of partially fabricated SoCs of the first design that may be discarded.
The core processor 102 is also coupled via a communication interface 108 to one or more communication links 110 to facilitate communication with other devices. The core processor 102 is further coupled to peripheral interface circuits 112 for connection to external devices via analog link 114 and/or serial link 116. The analog link 114 and the serial link 116 may represent a plurality of analog or serial links, respectively. The SoC 100 includes other circuits and processors that are not shown in
By designing pairs of bit-cells with depositing a continuous active layer trace across both bit-cells of the pair, programmable ROM circuits may be programmed by configuring the contact layer points of the ROM circuits without changing the active layer traces. Thus, the time required to turn around a new ROM design having changed firmware is reduced, permitting fabrication to resume more quickly. Furthermore, in a fabrication process where the contact layer of the ROM circuit is deposited after the active layer, partially fabricated SoCs of the previous ROM design that had not reached the stage of depositing the contact layer may be used with the new ROM design by resuming fabrication by depositing the contact layer of the new design, thus reducing the number of partially fabricated SoCs of the first design that may be discarded.
A continuous active layer trace extends across both bit-cells of each bit-pair row 506, 508, 510, and 512. As
In contrast, as described above, the first ROM memory circuit 600 may also be configured as pairs of bit-cells programmed to store a single bit of data-a value of 1 or 0 based on the presence or absence, respectively, of a shared contact layer point between the bit-cells of the pair. The paired bit-cells in the columns 602 and 604 form a first group of four four-bit byte-subsets, 610, 612, 614, and 616. The paired bit-cells in the columns 606 and 608 form a second group of four four-bit byte-subsets, 618, 620, 622, and 624.
In some embodiments, described with reference to the SoC 100 of
Thus, the address circuit 104 addresses bit-cells 0000-0015 of a first group of four four-bit byte-subsets, 610, 612, 614, and 616, and bit-cells 0032-0047 of a second group of four four-bit byte-subsets, 618, 620, 622, and 624. In such an embodiment, the address circuit 104 does not address individual bit-cell addresses 0016-0031 and 0048-0063. Bit-cell addresses 0000-0015 are contiguous bit-cell addresses, bit-cell addresses 0032-0047 are contiguous bit-cell addresses, and the bit-cell address range 0000-0015 is discontiguous from the bit-cell address range 0032-0047.
Byte-subsets according to the disclosure may include any number of pairs of bit-pairs per byte-subset. Byte-subsets 502 and 504 of
Unlike the first ROM memory circuit 600, the second ROM memory circuit 700 is configured as a hybrid ROM circuit comprising both single-cell byte-subsets (710, 712, 714, 716, 718, 720, 722 and 724), each comprising four individual bit-cells and paired-cell byte-subsets (726, 728, 730, and 732), each comprising four bit-cell pairs. As described above, each bit-cell pair is included in only one paired-cell byte-subset, and thus the paired-cell byte-subsets may be referred to as ‘non-overlapping paired-cell byte-subsets’. Similarly, each individual bit-cell of a single-cell byte-subset is included in only one single-cell byte-subset, and thus the single-cell byte-subsets may be referred to as ‘non-overlapping single-cell byte-subsets.’
As described herein, when testing of SoC designs reveals that firmware should be changed, paired bit-cells of a ROM programmable memory circuit according to the disclosure may provide a quicker turnaround and reduced wastage of partially fabricated chips. By designing pairs of bit-cells with depositing a continuous active layer trace across both bit-cells of the pair, programmable ROM circuits may be reprogrammed by reconfiguring the contact layer points of the ROM circuits without changing the active layer traces. Thus the time required to turn around a new ROM design having changed firmware is reduced, permitting fabrication to resume more quickly. Furthermore, in a fabrication process where the contact layer of the ROM circuit is deposited after the active layer, partially fabricated SoCs of the previous ROM design that had not reached the stage of depositing the contact layer may be used with the new ROM design by resuming fabrication by depositing the contact layer of the new design, thus reducing the number of partially fabricated SoCs of the first design that may be discarded.
In some applications, some of the firmware in the SoC may be well-tested and unlikely to be revised during testing. Because single-cell byte-subsets provide more efficient storage of data than paired-cell byte-subsets (one bit-cell per bit of data, rather than two bit-cells per bit of data), SoC developers may consider that such well-tested firmware may be suitable for programming into single-cell byte-subsets. The second ROM memory circuit 700 provides for storage of twelve four-bit bytes of data, compared to the eight four-bit bytes of data stored by the first ROM memory circuit 600.
TABLE 1
Proc.
Byte-
Bit-Cell
Byte
Addr.
Subset
Addrs.
Value
0000
710
0000-0003
1100
0001
712
0004-0007
1000
0002
714
0016-0019
0110
0003
716
0020-0023
0010
0004
718
0032-0035
0110
0005
720
0036-0039
1011
0006
722
0048-0051
0011
0007
724
0052-0055
1110
0008
726
0008-0011
1010
0009
728
0012-0015
0110
0010
730
0040-0043
1010
0011
732
0044-0047
0110
Table 1 shows, for the embodiment illustrated in
As shown in Table 1, the core processor 102 reads selected four-bit bytes of the second ROM memory circuit 700 at processor addresses 0000-00011 via the address circuit 104. The address circuit 104 of the SoC 100 is configured to address the single-cell byte-subsets 710, 712, 714, 716, 718, 720, 722 and 724 at processor addresses 0000-0007 and the paired-cell byte-subsets 726, 728, 730, and 732 at processor addresses 0008-0011. As an example, when the core processor 102 reads from the processor address 0000, the address circuit 104 selects single-cell byte-subset 710 and addresses individual bit-cell addresses 0000-0003.
The address circuit 104 of the SoC 100 is configured to address only a first one of the bit-cells in the paired-cell byte-subsets 726, 728, 730, and 732, for example, only the bit-cells in columns 702 and 706. As an example, when the core processor 102 reads from the processor address 0008, the address circuit 104 selects paired-cell byte-subset 726 and addresses individual bit-cell addresses 0008-0011. Similarly, when the core processor 102 reads from the processor address 0011, the address circuit 104 selects paired-cell byte-subset 732 and addresses individual bit-cell addresses 0044-0047. In some embodiments, the core processor 102 simultaneously reads the addressed bits from the selected single-cell byte-subset or the selected paired-cell byte-subset of the second ROM memory circuit 700.
Thus, the address circuit 104 addresses bit-cells 0008-0015 of a first group of two four-bit paired-cell byte-subsets, 726 and 728, and bit-cells 0040-0047 of a second group of two four-bit paired-cell byte-subsets, 730 and 732. In such an embodiment, the address circuit 104 does not address individual bit-cell addresses 0024-0031 and 0056-0063. Bit-cell addresses 0008-0015 are contiguous bit-cell addresses, bit-cell addresses 0040-0047 are contiguous bit-cell addresses, and the bit-cell address range 0008-0015 is discontiguous from the bit-cell address range 0040-0047.
Single-cell byte-subsets 710, 712, 714, 716, 718, 720, 722 and 724 and paired-cell byte-subsets 726, 728, 730, and 732 each comprise four bit-cells and four paired bit-cells, respectively. In other embodiments, single-cell byte-subsets according to the disclosure may include m bit-cells, where m is equal to eight or any other desired value. In still other embodiments, paired-cell byte-subsets according to the disclosure may include n bit-cells, where n is equal to eight or any other desired value. In the embodiment shown in
SoC fabrication is initiated in step 810, based on a first Graphic Design System Information Interchange (GDSII) chip layout file 812 received from the chip design process of step 804. The chip design process defines a programmable ROM memory circuit and address circuit according to the disclosure, such as the ROM memory circuit 600 according to the disclosure and the address circuit 104 described above.
As the fabrication process initiated in step 810 begins producing first SoCs, testing of the first SoCs is performed in step 814. In response to the testing determining that the initial firmware of the SoCs should be changed, the fabrication process initiated in step 810 is halted and firmware code revision is performed in step 816, generating a new ROM image 806. The chip design and verification process of step 804 is repeated, using the new ROM image 806 to generate a second GDSII chip layout file 812.
The fabrication process of step 810 is initiated again, beginning production of second SoCs based on the second GDSII chip layout file. If testing of the second SoCs in step 814 determines that no further change is needed to the firmware of the SoCs, the development process 800 terminates in step 818 with release of the second SoCs.
In step 904, at least one of the first SoCs is tested and, in step 906, it is determined whether the firmware of the first SoCs should be changed. If no change to the firmware of the first SoCs is needed, then the method 900 terminates in step 908 with the SoCs being released and the fabrication of first SoCs initiated in step 902 continuing. However, if it is determined in step 906 that the firmware of the first SoCs should be changed, then in step 910 the fabrication of first SoCs initiated in step 902 is halted.
In step 912, the SoC firmware is revised and a new ROM image is generated that includes the changes to the firmware. In step 914, generation of a second GDSII chip layout file is initiated. The second GDSII chip layout file differs from the first GDSII chip layout file at least in locations of the shared contact layer points of the pairs of bit-cells of the programmable ROM circuit of the SoC. In some embodiments, the only difference between the second GDSII chip layout file and the first GDSII chip layout file is the locations of the shared contact layer points.
After step 914, the method 900 goes back to step 902, where fabrication of second SoCs is initiated, based on the second GDSII chip layout file. The method 900 continues, looping back from step 914 to step 902, until terminated in step 908.
The term “couple” is used throughout the specification. The term may cover connections, communications, or signal paths that enable a functional relationship consistent with this description. For example, if device A generates a signal to control device B to perform an action, in a first example device A is coupled to device B, or in a second example device A is coupled to device B through intervening component C if intervening component C does not substantially alter the functional relationship between device A and device B such that device B is controlled by device A via the control signal generated by device A.
A device that is “configured to” perform a task or function may be configured (e.g., programmed and/or hardwired) at a time of manufacturing by a manufacturer to perform the function and/or may be configurable (or re-configurable) by a user after manufacturing to perform the function and/or other additional or alternative functions. The configuring may be through firmware and/or software programming of the device, through a construction and/or layout of hardware components and interconnections of the device, or a combination thereof.
A circuit or device that is described herein as including certain components may instead be adapted to be coupled to those components to form the described circuitry or device. For example, a structure described as including a processor, communication interface, and memory may instead include only the processor and may be adapted to be coupled to either one or both of the communication interface and memory to form the described structure either at a time of manufacture or after a time of manufacture, for example, by an end-user and/or a third-party.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
11373719, | Aug 30 2021 | Texas Instruments Incorporated | Contact layer traces to program programmable ROM |
7002827, | Feb 10 2003 | Synopsys, Inc | Methods and apparatuses for a ROM memory array having a virtually grounded line |
9373395, | Mar 04 2015 | TAHOE RESEARCH, LTD | Apparatus to reduce retention failure in complementary resistive memory |
20090316463, | |||
20160093351, | |||
20160093353, | |||
20160093354, | |||
20210073619, | |||
20210110854, | |||
20210407986, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 24 2022 | Texas Instmments Incorporated | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jun 24 2022 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Date | Maintenance Schedule |
Jun 13 2026 | 4 years fee payment window open |
Dec 13 2026 | 6 months grace period start (w surcharge) |
Jun 13 2027 | patent expiry (for year 4) |
Jun 13 2029 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 13 2030 | 8 years fee payment window open |
Dec 13 2030 | 6 months grace period start (w surcharge) |
Jun 13 2031 | patent expiry (for year 8) |
Jun 13 2033 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 13 2034 | 12 years fee payment window open |
Dec 13 2034 | 6 months grace period start (w surcharge) |
Jun 13 2035 | patent expiry (for year 12) |
Jun 13 2037 | 2 years to revive unintentionally abandoned end. (for year 12) |