XC3000 | XC4000E | XC4000X | XC5200 | XC9000 | Spartan | SpartanXL | Spartan2 | Virtex |
---|---|---|---|---|---|---|---|---|
N/A | Primitive | Primitive | N/A | N/A | N/A | N/A | N/A | N/A |
RAM16X1 is a 16-word by 1-bit static read-write random access memory. When the write enable (WE) is High, the data on the data input (D) is loaded into the word selected by the 4-bit address (A3 - A0). The data output (O) reflects the selected (addressed) word, whether WE is High or Low. When WE is Low, the RAM content is unaffected by address or input data transitions. Address inputs must be stable before the High-to-Low WE transition for predictable performance.
You can initialize RAM16X1 during configuration. See Specifying Initial Contents of a RAM in this section.
Mode selection is shown in the following truth table.
Inputs | Outputs | |
---|---|---|
WE(mode) | D | O |
0(read) | X | Data |
1(write) | D | Data |
Data = word addressed by bits A3 - A0 |
You can use the INIT attribute to specify an initial value directly on the symbol only if the RAM is 1 bit wide and 16 or 32 bits deep. The value must be a hexadecimal number, for example, INIT=ABAC.
If the INIT attribute is not specified, the RAM is initialized with zero.