![]()  | ![]()  | |||
| TAMS / Java / Hades / applets: contents | previous | next | ||||
| Hades Applets contents visual index   introduction  std_logic_1164  gatelevel circuits  delay models  flipflops  adders and arithm...  counters  LFSR and selftest  memories    ROM circuit    1Kx8 ROM demo    RAM structure    RAM write-cycle    RAM read-cycle    RAM write-ha...    RAM storage ...    RAM address ...    RAM bitline ...    74189 SRAM    74219 SRAM    74219 SRAM a...    6116 CMOS SRAM    multiple SRAMs  programmable logic  state-machine editor  misc. demos  I/O and displays  DCF-77 clock  relays (switch-le...  CMOS circuits (sw...  RTLIB logic  RTLIB registers  Prima processor  D*CORE  MicroJava  Pic16 cosimulation  Mips R3000 cosimu...  Intel MCS4 (i4004)  image processing ...  [Sch04] Codeumsetzer  [Sch04] Addierer  [Sch04] Flipflops  [Sch04] Schaltwerke  [Sch04] RALU, Min...  [Fer05] State-Mac...  [Fer05] PIC16F84/...  [Fer05] Miscellan...  [Fer05] Femtojava  FreeTTS | ROM (read-only memory) structure
Circuit Description
This applet demonstrates the internal structure of a 
read-only memory or ROM.
A rather small memory size of 16 words of 8 bits each is used.
From left to right, the circuit consists of three stages.
The first stage, usually called address-decoder in memory circuits,
is a standard demultiplexer.
For each binary address input pattern, exactly one of the 
wordlines (horizontal) is activated by the address-decoder.
In the example, a 4-to-16 demultiplexer is required
to control the 16 wordlines corresponding to the 16 memory addresses.
 
The memory matrix is the main part of the ROM.
For each wordline, a connection is made to those bitlines (vertical)
that should be activated for the corresponding memory word.
In bipolar technology, simple diodes can be used to make the 
connections of wordlines to bitlines.
However, usually transistors are used to amplify the wordline signal.
 In MOS technologies, N-type transistors are preferred, because they are faster than P-type transistors of the same size. The transistor gate is connected to the wordline, drain to the bitline, and the transistor source to Vss (ground). This results in the wired-AND structure shown in the applet. The pullup resistors on each bitline drive the bitline to a weak high voltage (logical H), when no transistors are active. If a transistor is used at the connection of a wordline and bitline, the transistor will conduct whenever the wordline is active, driving the bitline to a low voltage (logical 0). As N-type transistors are used in the memory matrix, an active bitline is driven to zero voltage, while an inactive bitline remains at (weak) high. Therefore, an additional stage of amplifiers and output buffers is required to generate a strong output signal. The applet uses a single stage of inverters. All together, the ROM shown in the applet implements the following logical function:addr A3 A3 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 15 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 0 0 0 0 0 0 0 0 0 13 1 1 0 1 1 0 0 1 0 0 0 0 12 1 1 0 0 0 0 0 0 0 0 1 1 11 1 0 1 1 0 0 0 0 1 1 1 1 10 1 0 1 0 1 1 1 1 0 0 0 0 9 1 0 0 1 0 0 0 0 0 0 0 0 8 1 0 0 0 0 0 0 0 0 0 0 0 7 0 1 1 1 0 0 0 0 0 0 0 1 6 0 1 1 0 0 0 0 0 0 0 1 0 5 0 1 0 1 0 0 0 0 0 1 0 0 4 0 1 0 0 0 0 0 0 1 0 0 0 3 0 0 1 1 0 0 0 1 0 0 0 0 2 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0Due to electrical reasons it is difficult to connect more that a few hundred transistors to one bitline or wordline. Therefore, larger ROMs use a slightly different architecture, with a set of smaller memory blocks instead of one single large memory block. Each memory block uses approximately the same number of wordlines and bitlines (the applet has 16 wordlines and 8 bitlines). For example, a good size for one memory block might consist of 256 wordlines and 256 bitlines. This means that a 64Kx8 bit ROM would be organized internally as a set of (65536x8) / (256x256) = 8 memory blocks. The top 3 address bits select the memory block to use, the next 8 bits select the wordline to use, and the remaining 5 address bits select which part of the memory block output of 256 bits is to be sent to the 8 data outputs.  | |||
| Print version | Run this demo in the Hades editor (via Java WebStart) | ||||
| Usage | FAQ | About | License | Feedback | Tutorial (PDF) | Referenzkarte (PDF, in German) | ||||
| Impressum | http://tams.informatik.uni-hamburg.de/applets/hades/webdemos/40-memories/20-rom/rom.html |