To be effective, the user interface must allow the designer to flexibly model the target architecture within the system, such as defining all relevant chip-level and board-level attributes, specifying register formats, memory layouts, peripherals, ASICs or other devices.