AMD devices have a dedicated global set/reset signal (GSR). This signal sets the initial value of all sequential cells in hardware at the end of device configuration.
If you do not specify an initial state, the system assigns sequential primitives as a default value. In most cases, the default value is zero. Exceptions are the FDSE and FDPE primitives that default to a logic one. Every register is at a known state at the end of configuration. Therefore, it is not necessary to code a global reset for the sole purpose of initializing a device on power up.
AMD highly recommends that you take special care in deciding when the design requires a reset, and when it does not. In many situations, resets can be required on the control path logic for proper operation. However, resets are generally less necessary on the data path logic. Limiting the use of resets:
- Limits the overall fanout of the reset net.
- Reduces the amount of interconnect necessary to route the reset.
- Simplifies the timing of the reset paths.
- Results in many cases in overall improvement in clock frequency, area, and power.
The functional simulation must easily identify if it needs a reset.
Logic without a coded reset offers much greater flexibility in selecting the device resources for mapping.
The synthesis tool can then pick the best resource for that code to arrive at a potentially superior result by considering, for example:
- Requested functionality
- Clock period requirements
- Available device resources
- Power