OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [sim/] [erc32/] [README.erc32] - Diff between revs 578 and 1765

Only display areas with differences | Details | Blame | View Log

Rev 578 Rev 1765
1. MEC and ERC32 emulation
1. MEC and ERC32 emulation
The file 'erc32.c' contains a model of the MEC, 512 K rom and 4 M ram.
The file 'erc32.c' contains a model of the MEC, 512 K rom and 4 M ram.
The following paragraphs outline the implemented MEC functions.
The following paragraphs outline the implemented MEC functions.
1.1 UARTs
1.1 UARTs
The UARTs are connected to two pseudo-devices, /dev/ttypc and /dev/ttypd.
The UARTs are connected to two pseudo-devices, /dev/ttypc and /dev/ttypd.
The following registers are implemeted:
The following registers are implemeted:
- UART A RX and TX register     (0x01f800e0)
- UART A RX and TX register     (0x01f800e0)
- UART B RX and TX register     (0x01f800e4)
- UART B RX and TX register     (0x01f800e4)
- UART status register          (0x01f800e8)
- UART status register          (0x01f800e8)
To speed up simulation, the UARTs operate at approximately 115200 baud.
To speed up simulation, the UARTs operate at approximately 115200 baud.
The UARTs generate interrupt 4 and 5 after each received or transmitted
The UARTs generate interrupt 4 and 5 after each received or transmitted
character.  The error interrupt is generated if overflow occurs - other
character.  The error interrupt is generated if overflow occurs - other
errors cannot occure.
errors cannot occure.
1.2 Real-time clock and general pupose timer A
1.2 Real-time clock and general pupose timer A
The following registers are implemeted:
The following registers are implemeted:
- Real-time clock timer                         (0x01f80080, read-only)
- Real-time clock timer                         (0x01f80080, read-only)
- Real-time clock scaler program register       (0x01f80084, write-only)
- Real-time clock scaler program register       (0x01f80084, write-only)
- Real-time clock counter program register      (0x01f80080, write-only)
- Real-time clock counter program register      (0x01f80080, write-only)
- Genearl pupose timer                          (0x01f80088, read-only)
- Genearl pupose timer                          (0x01f80088, read-only)
- Real-time clock scaler program register       (0x01f8008c, write-only)
- Real-time clock scaler program register       (0x01f8008c, write-only)
- General purpose timer counter prog. register  (0x01f80088, write-only)
- General purpose timer counter prog. register  (0x01f80088, write-only)
- Timer control register                        (0x01f80098, write-only)
- Timer control register                        (0x01f80098, write-only)
1.3 Interrupt controller
1.3 Interrupt controller
The interrupt controller is implemented as in the MEC specification with
The interrupt controller is implemented as in the MEC specification with
the exception of the interrupt shape register. Since external interrupts
the exception of the interrupt shape register. Since external interrupts
are not possible, the interrupt shape register is not implemented. The
are not possible, the interrupt shape register is not implemented. The
only internal interrupts that are generated are the real-time clock,
only internal interrupts that are generated are the real-time clock,
the general purpose timer and UARTs. However, all 15 interrupts
the general purpose timer and UARTs. However, all 15 interrupts
can be tested via the interrupt force register.
can be tested via the interrupt force register.
The following registers are implemeted:
The following registers are implemeted:
- Interrupt pending register                   (0x01f80048, read-only)
- Interrupt pending register                   (0x01f80048, read-only)
- Interrupt mask register                      (0x01f8004c, read-write)
- Interrupt mask register                      (0x01f8004c, read-write)
- Interrupt clear register                     (0x01f80050, write-only)
- Interrupt clear register                     (0x01f80050, write-only)
- Interrupt force register                     (0x01f80054, read-write)
- Interrupt force register                     (0x01f80054, read-write)
1.4 Breakpoint and watchpoint register
1.4 Breakpoint and watchpoint register
The breakpoint and watchpoint functions are implemented as in the MEC
The breakpoint and watchpoint functions are implemented as in the MEC
specification. Traps are correctly generated, and the system fault status
specification. Traps are correctly generated, and the system fault status
register is updated accordingly. Implemeted registers are:
register is updated accordingly. Implemeted registers are:
- Debug control register                        (0x01f800c0, read-write)
- Debug control register                        (0x01f800c0, read-write)
- Breakpoint register                           (0x01f800c4, write-only)
- Breakpoint register                           (0x01f800c4, write-only)
- Watchpoint register                           (0x01f800c8, write-only)
- Watchpoint register                           (0x01f800c8, write-only)
- System fault status register                  (0x01f800a0, read-write)
- System fault status register                  (0x01f800a0, read-write)
- Firts failing address register                (0x01f800a4, read-write)
- Firts failing address register                (0x01f800a4, read-write)
1.5 Memory interface
1.5 Memory interface
The following memory areas are valid for the ERC32 simulator:
The following memory areas are valid for the ERC32 simulator:
0x00000000 - 0x00080000         ROM (512 Kbyte, loaded at start-up)
0x00000000 - 0x00080000         ROM (512 Kbyte, loaded at start-up)
0x02000000 - 0x02400000         RAM (4 Mbyte, initialised to 0x0)
0x02000000 - 0x02400000         RAM (4 Mbyte, initialised to 0x0)
0x01f80000 - 0x01f800ff         MEC registers
0x01f80000 - 0x01f800ff         MEC registers
Access to unimplemented MEC registers or non-existing memory will result
Access to unimplemented MEC registers or non-existing memory will result
in a memory exception trap. However, access to unimplemented MEC registers
in a memory exception trap. However, access to unimplemented MEC registers
in the area 0x01f80000 - 0x01f80100 will not cause a memory exception trap.
in the area 0x01f80000 - 0x01f80100 will not cause a memory exception trap.
The written value will be stored in a register and can be read back. It
The written value will be stored in a register and can be read back. It
does however not affect the function in any way.
does however not affect the function in any way.
The memory configuartion register is used to define available memory
The memory configuartion register is used to define available memory
in the system. The fields RSIZ and PSIZ are used to set RAM and ROM
in the system. The fields RSIZ and PSIZ are used to set RAM and ROM
size, the remaining fields are not used.  NOTE: after reset, the MEC
size, the remaining fields are not used.  NOTE: after reset, the MEC
is set to decode 4 Kbyte of ROM and 256 Kbyte of RAM. The memory
is set to decode 4 Kbyte of ROM and 256 Kbyte of RAM. The memory
configuration register has to be updated to reflect the available memory.
configuration register has to be updated to reflect the available memory.
The waitstate configuration register is used to generate waitstates.
The waitstate configuration register is used to generate waitstates.
This register must also be updated with the correct configuration after
This register must also be updated with the correct configuration after
reset.
reset.
The memory protection scheme is implemented - it is enabled through bit 3
The memory protection scheme is implemented - it is enabled through bit 3
in the MEC control register.
in the MEC control register.
The following registers are implemeted:
The following registers are implemeted:
- MEC control register (bit 3 only)             (0x01f80000, read-write)
- MEC control register (bit 3 only)             (0x01f80000, read-write)
- Memory control register                       (0x01f80010, read-write)
- Memory control register                       (0x01f80010, read-write)
- Waitstate configuration register              (0x01f80018, read-write)
- Waitstate configuration register              (0x01f80018, read-write)
- Memory access register 0                      (0x01f80020, read-write)
- Memory access register 0                      (0x01f80020, read-write)
- Memory access register 1                      (0x01f80024, read-write)
- Memory access register 1                      (0x01f80024, read-write)
1.6 Watchdog
1.6 Watchdog
The watchdog is implemented as in the specification. The input clock is
The watchdog is implemented as in the specification. The input clock is
always the system clock regardsless of WDCS bit in mec configuration
always the system clock regardsless of WDCS bit in mec configuration
register.
register.
The following registers are implemeted:
The following registers are implemeted:
- Watchdog program and acknowledge register     (0x01f80060, write-only)
- Watchdog program and acknowledge register     (0x01f80060, write-only)
- Watchdog trap door set register               (0x01f80064, write-only)
- Watchdog trap door set register               (0x01f80064, write-only)
1.7 Software reset register
1.7 Software reset register
Implemented as in the specification (0x01f800004, write-only).
Implemented as in the specification (0x01f800004, write-only).
1.8 Power-down mode
1.8 Power-down mode
The power-down register (0x01f800008) is implemented as in the specification.
The power-down register (0x01f800008) is implemented as in the specification.
However, if the simulator event queue is empty, power-down mode is not
However, if the simulator event queue is empty, power-down mode is not
entered since no interrupt would be generated to exit from the mode. A
entered since no interrupt would be generated to exit from the mode. A
Ctrl-C in the simulator window will exit the power-down mode.
Ctrl-C in the simulator window will exit the power-down mode.
1.9 MEC control register
1.9 MEC control register
The following bits are implemented in the MEC control register:
The following bits are implemented in the MEC control register:
Bit     Name    Function
Bit     Name    Function
0        PRD     Power-down mode enable
0        PRD     Power-down mode enable
1       SWR     Soft reset enable
1       SWR     Soft reset enable
3       APR     Access protection enable
3       APR     Access protection enable
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.