System id core, Core overview, Functional description – Altera Embedded Peripherals IP User Manual
Page 298: System id core -1, Core overview -1, Functional description -1

System ID Core
30
2014.24.07
UG-01085
Core Overview
The system ID core with Avalon
®
interface is a simple read-only device that provides Qsys systems with a
unique identifier. Nios
®
II processor systems use the system ID core to verify that an executable program
was compiled targeting the actual hardware image configured in the target FPGA. If the expected ID in
the executable does not match the system ID core in the FPGA, it is possible that the software will not
execute correctly.
Functional Description
The system ID core provides a read-only Avalon Memory-Mapped (Avalon-MM) slave interface. This
interface has two 32-bit registers, as shown in the table below. The value of each register is determined at
system generation time, and always returns a constant value.
Table 30-1: System ID Core Register Map
Offs
et
Register
Name
R/W Description
0
id
R
A unique 32-bit value that is based on the contents of the Qsys system.
The id is similar to a check-sum value; Qsys systems with different
components, different configuration options, or both, produce
different id values.
1
timestamp
R
A unique 32-bit value that is based on the system generation time.
The value is equivalent to the number of seconds after Jan. 1, 1970.
There are two basic ways to use the system ID core:
• Verify the system ID before downloading new software to a system. This method is used by software
development tools, such as the Nios II integrated development environment (IDE). There is little point
in downloading a program to a target hardware system, if the program is compiled for different
hardware. Therefore, the Nios II IDE checks that the system ID core in hardware matches the expected
system ID of the software before downloading a program to run or debug.
• Check system ID after reset. If a program is running on hardware other than the expected Qsys system,
the program may fail to function altogether. If the program does not crash, it can behave erroneously
in subtle ways that are difficult to debug. To protect against this case, a program can compare the
expected system ID against the system ID core, and report an error if they do not match.
©
2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at
www.altera.com/common/legal.html
. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134