SimAVR
AVR Simulator
doc.h
Go to the documentation of this file.
1 /*
2  * In order to maximize performance and parallelism, the AVR uses a Harvard architecture with
3  * separate memories and buses for program and data.
4  *
5  * Instructions in the program memory are executed with a single level pipelining. While one
6  * instruction is being executed, the next instruction is pre-fetched from the program memory. This
7  * concept enables instructions to be executed in every clock cycle. The program memory is In-System
8  * Reprogrammable Flash memory.
9  *
10  * The fast-access Register File contains 32 × 8-bit general purpose working registers with a single
11  * clock cycle access time. This allows single-cycle Arithmetic Logic Unit (ALU) operation. In a
12  * typical ALU operation, two operands are output from the Register File, the operation is executed,
13  * and the result is stored back in the Register File in one clock cycle.
14  *
15  * Six of the 32 registers can be used as three 16-bit indirect address register pointers for Data
16  * Space addressing – enabling efficient address calculations. One of the these address pointers can
17  * also be used as an address pointer for look up tables in Flash program memory. These added
18  * function registers are the 16-bit X-, Y-, and Z-register.
19  *
20  */