Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[rtl] rework reset system #345

Merged
merged 12 commits into from
Jun 12, 2022
Merged

[rtl] rework reset system #345

merged 12 commits into from
Jun 12, 2022

Conversation

stnolting
Copy link
Owner

@stnolting stnolting commented Jun 11, 2022

This PR reworks the processor's internal reset generator system and also the behavior of the watchdog's "lock" feature.

Reset System

The reset generator system has been split into an external and an internal system. The external reset is triggered by the processor's rstn_i signal while the internal reset is triggered by the processor's rstn_i signal, the watchdog or the on-chip debugger.

Whenever a valid reset request occurs (internal or external) the reset generator ensures that the reset applied to the system is active for at least 4 cycles. Furthermore, the reset applied to system will be release on falling edge of the system clock to avoid metastable situation (= reset is de-asserted during a rising edge). More information can be found in this nice article: https://www.eetimes.com/how-do-i-reset-my-fpga/

Watchdog

The watchdog is now reset by the internal processor reset, which can be triggered via the external hardware reset signal rstn_i, the on-chip debugger or the watchdog itself (system reset on watchdog timeout).

  • ⚠️ The watchdog now requires an "access password" in the upper most 16 bits (MSB-aligned) of the data to be written. If the password is incorrect no data will be written to the watchdog control register adn the according bus access will not be acknowledged resulting in a store access fault exception**. The password is hardwired to 0xCA36 and is used by the WDT library functions.

@stnolting stnolting added HW Hardware-related optimization Make things faster, smaller and more efficient labels Jun 11, 2022
@stnolting stnolting self-assigned this Jun 11, 2022
@stnolting stnolting marked this pull request as ready for review June 11, 2022 19:19
@stnolting stnolting merged commit 7063877 into main Jun 12, 2022
@stnolting stnolting deleted the rework_system_reset branch June 12, 2022 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
HW Hardware-related optimization Make things faster, smaller and more efficient
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant