Datasheet
ARMulator Reference
ARM DUI0058D Copyright © 1999-2001 ARM Limited. All rights reserved. 4-61
Example 2
This example describes a typical embedded system with 32KB of on-chip memory,
16-bit ROM and 32KB of external DRAM:
00000000 8000 SRAM 4 rw 1/1 1/1
00008000 8000 ROM 2 r 100/100 100/100
00010000 8000 DRAM 2 rw 150/100 150/100
7FFF8000 8000 Stack 2 rw 150/100 150/100
There are four regions of memory:
• A fast region from
0
to
0x7FFF
with a 32-bit data bus. This is labeled SRAM.
• A slower region from
0x8000
to
0xFFFF
with a 16-bit data bus. This is labelled
ROM and contains the image code. It is marked as read-only.
• A region of RAM from
0x10000
to
0x17FFF
that is used for image data.
• A region of RAM from
0x7FFF8000
to
0x7FFFFFFF
that is used for stack data. The
stack pointer is initialized to
0x80000000
.
In the final hardware, the two distinct regions of the external DRAM are combined. This
does not make any difference to the accuracy of the simulation.
To represent fast (no wait state) memory, the SRAM region is given access times of 1ns.
In effect, this means that each access takes 1 clock cycle, because ARMulator rounds
this up to the nearest clock cycle. However, specifying it as 1ns allows the same map
file to be used for a number of simulations with differing clock speeds.
Note
Note
To ensure accurate simulations, make sure that all areas of memory likely to be accessed
by the image you are simulating are described in the memory map.
To ensure that you have described all areas of memory that you think the image
accesses, you can define a single memory region that covers the entire address range as
the last line of the map file. For example, you could add the following line to the above
description:
00000000 80000000 Dummy 4 - 1/1 1/1
You can then detect if any reads or writes are occurring outside the regions of memory
you expect using the
print $memory_statistics
command.
Note
Note
A dummy memory region must be the last entry in a map file.