This subject matter is generally related to microcontroller configuration using metal mask programmable features.
Conventional fabrication techniques for microcontrollers use metal 1 layer configuration cells to encode a device configuration or setting. For example, consider a 32-bit “Device ID” configuration word located inside a microcontroller that is used by programming or debugging tools to identify the microcontroller model. The Device ID word can contain 4 bits describing the revision of a die. These 4 bits can be, for example, “0000” for the first revision of the silicon and can be incremented by one (e.g., from 0000 to 0001) for each new version of the silicon. The 4 revision bits can be programmed using 1-metal layer configuration cells. The metal wires that support a revision number can be connected to the outputs of the cells to provide the desired logic level. These conventional techniques can require fabrication of a new metal 1 layer mask each time a change is made to the configuration or setting, even if the change is simple, such as changing the polarity of a single bit.
A semiconductor multi-layer connection cell is disclosed that includes configuration layers and “via” layers disposed between the configuration layers to allow configuration of signals at any layer in the connection cell. The layers include column structures extending through the layers. Each column structure includes a hole in a layer that can be filled to form an electrical connection between layers.
Referring to
Referring to
Referring to
Referring to
In the 5-metal layer cell 400 there are 9 columns; one column for each layer in the cell 400. The columns are created in the cell 400 with a “hole” inside each column for each metal and via layer. The columns are represented in
For example, the first column in the cell 400 includes 8 layers and a hole 402 in metal layer M5. An electrical connection can be made in M5 to connect layers M1 and M5 by filling hole 402 with conductive material and leaving the other holes 404-418 in the cell 400 unfilled. If M5 includes an output pin and M1 is VCC or GND, then the result would be VCC or GND applied to the output pin.
Similarly, electrical connections or signal configurations can be made in any layer of the cell 400 to connect layers M1 and M5 by filling a hole in a column for the layer for which an electrical connection is desired to be made. For example, filling the hole 404 will result in an electrical connection in the VIA4 layer, filling the hole 406 will result in an electrical connection in the M4 layer, filling the hole 408 will result in an electrical connection being made in the VIA3 layer and so forth. The cell 400 can be used as a building block for other multi-layer connection cell configurations, such as the multi-layer connection cell 500, as described in reference to
The left half of the cell 500 includes a number of spaced apart columns. In this example, there are 9 columns or one column for each layer of the left side of cell 500. The left half of the cell 500 can be configured to make electrical connections between ground voltages G1-G5 and an output pin of the cell 500 by way of the M5 layer. For example, filling a hole 502 will result in an electrical connection in the M5 layer, thereby connecting ground G5 to the pin by way of the M5 layer. Filling a hole 504 will result in an electrical connection in the VIA4 layer, thereby connecting ground G45 to the pin by way of the M5 layer. Filling a hole 506 will result in an electrical connection being made in the M4 layer, thereby connecting ground G4 to the pin by way of the M5 layer. This pattern of selectively filling holes can be done for any of the holes 502-518 to electrically connect a ground voltage to the pin by way of the M5 layer.
The right half of the cell 500 also includes a number of spaced apart columns. In this example, there are 9 columns or one column for each layer of right side of the cell 500. The right half of the cell 500 can be configured to make electrical connections between voltages V1-V4 and an output pin of the cell 500 by way of the M5 layer. For example, filling a hole 530 will result in an electrical connection in the M4 layer, thereby connecting voltage V4 to the pin by way of the M5 layer. Filling a hole 530 will result in an electrical connection in the VIA3 layer, thereby connecting voltage V34 to the pin by way of the M5 layer. Filling a hole 528 will result in an electrical connection being made in the M3 layer, thereby connecting voltage V3 to the pin by way of the M5 layer. This pattern of selectively filling holes can be done for any of the holes 520-530 to electrically connect a voltage to the pin by way of the M5 layer.
A “via” layer is formed on the first configuration layer (606). The “via” layer includes spaced-apart column segments and a second hole extending through the “via” layer. A first column segment in the “via” layer is aligned with the first hole in the first configuration layer. The second hole is optionally filled with conductive material (608).
A second configuration layer is formed on the “via” layer (610). The second configuration layer includes a third hole extending through the second configuration layer. The third hole is aligned with a second column segment in the “via” layer. The third hole is optionally filled with conductive material (612).
The process 600 described above can be repeated for n-layers in a n-layer connection cell. The number of via layers is equal to n−1. Each layer in the cell includes a single hole for a total of n holes. Each layer in the cell includes a number of column segments equal to two times the total number of via layers. The resulting cell structure includes n spaced apart columns. Each column includes a single hole and n−2 column segments. Each hole can optionally be filled to form an electrical connection between two layers. For example, a 6 layer connection cell (n=6) in an unconnected state includes 11 total layers: 6 configuration layers and 5 via layers. Each layer in the cell includes 9 column segments and there are 11 columns in the cell.
While this document contains many specific implementation details, these should not be construed as limitations on the scope what may be claimed, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.