The BRAM described above uses a single port, and consists of 256 single-bit entries. The number of addresses is controlled simply by the address bus width, and by the array size of ram_type1. Likewise, the word width is controlled by the data bus widths, and again in the element size of the type ram_type1. Also note that this BRAM writes first, then places data on the output bus. Read-then-write and no-change synchronizations are also supported. Here is an example of a dual-port BRAM.