The MMU-600 is delivered as synthesizable RTL. Before it can be used in a product, it must go through the following processes:
- The implementer configures and synthesizes the RTL to produce a hard macrocell. This process might include integrating RAMs into the design.
- The integrator connects the implemented design into a SoC. Integration includes connecting the design to a memory system and peripherals.
- The system programmer develops the software to configure and initialize the MMU-600, and tests the required application software.
Each process is separate, and can include implementation and integration choices that affect the behavior and features of the MMU-600.
The operation of the final device depends on:
- Build configuration
- The implementer chooses the options that affect how the RTL source files are pre-processed. These options usually include or exclude logic that affects one or more of the following:
- Maximum frequency.
- Features of the resulting macrocell.
- Configuration inputs
- The integrator configures some features of the MMU-600 by tying inputs to specific values. These configurations affect the start-up behavior before any software configuration is made. They can also limit the options that are available to the software, for example, by enabling QoS features.
- Software configuration
- The programmer configures the MMU-600 by programming particular values into registers. This configuration affects the behavior of the MMU-600.