ARM.SoC.Architecture

Byte writes however do require individual byte

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: d byte should be activated, and where the ARM supports half-words a half-word write should activate two of the four enables. It ensures that the data is ready before the processor continues. The simplest solution is to run mclk slowly enough to ensure that all the memory devices can be accessed within a single clock cycle. More sophisticated systems may have the clock set to suit RAM accesses and use wait states for (typically slower) ROM and peripheral accesses. The logic required for the above functions is quite straightforward and is illustrated in Figure 8.2. (All this logic can be implemented using a single program- Figure 8.2 Simple ARM memory system control logic. The ARM memory interface 211 mable logic device.) Perhaps the trickiest aspect of the design relates to the bidirectional data bus. Here it is very important to ensure that only one device drives the bus at any time, so care is needed when turning the bus around for a write cycle, or when switching between reading from the ROM and reading from the RAM. The solution illustrated in the figure activates the appropriate data source when mclk is high and turns all sources off when mclk is low, so dbe, the processor's data bus enable, should also be connected to mclk. This is a very conservative solution which will often compromise the performance of the system by limiting the maximum clock frequency that can be used. Note that this design assumes that the ARM outputs are stable to the end of the clock cycle, which will be the case on newer processors with the address pipeline enable (ape) control input tied low. Older processors should use ale = mclk to retime the address outputs, but will need an external transparent latch which is open when mclk is low to retime r/w and ~b/w (which replaces mas[l], and mas[0] is tied low). This simple memory system makes no use of mreq (or seq)\ it simply activates the memory on every cycle. This is safe since the ARM will only request a write cycle on a genuine memory access. The r/w control remains low during all internal and coprocesso...
View Full Document

Ask a homework question - tutors are online