Line 53... |
Line 53... |
/* MEMORY SECTION
|
/* MEMORY SECTION
|
|
|
This section specifies how is initial memory generated and which blocks
|
This section specifies how is initial memory generated and which blocks
|
it consist of.
|
it consist of.
|
|
|
memory_table_file = ""
|
|
loads memory table from filename. If filename does not exists in the
|
|
current directory, it is loaded from ~/.or1k/.
|
|
Memory table file structure is as follows:
|
|
>start_address1 length1 type1 [ce1 [delayr1 [delayw1]]]
|
|
>start_address2 length2 type2 [ce2 [delayr2 [delayw2]]]
|
|
>start_address3 length3 type3 [ce3 [delayr3 [delayw3]]]
|
|
|
|
(each line start with '>')
|
|
Example:
|
|
>00000100 00001F00 flash 3 100
|
|
>80000000 00010000 RAM
|
|
|
|
type = random/unknown/pattern
|
type = random/unknown/pattern
|
specifies the initial memory values. 'random' parameter generate
|
specifies the initial memory values. 'random' parameter generate
|
random memory using seed 'random_seed' parameter. 'pattern' parameter
|
random memory using seed 'random_seed' parameter. 'pattern' parameter
|
fills memory with 'pattern' parameter and 'unknown' does not specify
|
fills memory with 'pattern' parameter and 'unknown' does not specify
|
how memory should be generated - the fastest option.
|
how memory should be generated - the fastest option.
|
Line 77... |
Line 64... |
random_seed =
|
random_seed =
|
random seed for randomizer, used if type = random
|
random seed for randomizer, used if type = random
|
|
|
pattern =
|
pattern =
|
pattern to fill memory, used if type = pattern
|
pattern to fill memory, used if type = pattern
|
|
|
|
nmemories =
|
|
number of memory instances connected
|
|
|
|
instance specific:
|
|
baseaddr =
|
|
memory start address
|
|
|
|
size =
|
|
memory size
|
|
|
|
name = ""
|
|
memory block name
|
|
|
|
ce =
|
|
chip enable index of the memory instance
|
|
|
|
delayr =
|
|
cycles, required for read access, -1 if instance does not support reading
|
|
|
|
delayw =
|
|
cycles, required for write access, -1 if instance does not support writing
|
|
|
|
16550 = 0/1
|
|
0, if this device is uart 16450 and 1, if it is 16550
|
|
|
|
log = ""
|
|
filename, where to log memory accesses to, no log, if log command is not specified
|
*/
|
*/
|
|
|
section memory
|
section memory
|
memory_table_file = "simmem.cfg"
|
|
/*random_seed = 12345
|
/*random_seed = 12345
|
type = random*/
|
type = random*/
|
pattern = 0x00
|
pattern = 0x00
|
type = unknown /* Fastest */
|
type = unknown /* Fastest */
|
|
|
|
nmemories = 2
|
|
device 0
|
|
name = "RAM"
|
|
ce = 0
|
|
baseaddr = 0x00000000
|
|
size = 0x00100000
|
|
delayr = 10
|
|
delayw = -1
|
|
enddevice
|
|
|
|
device 1
|
|
name = "FLASH"
|
|
ce = 1
|
|
baseaddr = 0x40000000
|
|
size = 0x00100000
|
|
delayr = 2
|
|
delayw = 4
|
|
enddevice
|
end
|
end
|
|
|
|
|
/* SIM SECTION
|
/* SIM SECTION
|
|
|