feat: add watchdog (wdg) module integration and update related components

- Updated file lists to include new watchdog RTL files in clusterip.
- Replaced async_reqack source in commonip file list with top-level CDC file.
- Modified clock and reset domain configurations to incorporate watchdog reset signals.
- Updated the SoC topology generation script and JSON to reflect changes in watchdog interrupt handling.
- Added watchdog source files to software makefile for compilation.
- Enhanced APB wrapper to connect watchdog reset request signal.
- Updated RCU module to handle watchdog reset requests.
- Modified testbench to validate watchdog reset functionality.
- Updated test cases to reflect changes in interrupt naming conventions for the watchdog.
This commit is contained in:
maksyuki committed 2026-08-10 22:26:33 +08:00
1 parent 150900b05c
commit da061e0070
21 files changed
+503 -378

No files matched your search

+14
View File
@@ -5,6 +5,7 @@ module pll_ctrl_tb;
logic xtal_clk_i = 1'b0;
logic aud_clk_i = 1'b0;
logic rst_n_i = 1'b0;
logic wdg_reset_req_i = 1'b0;
logic fault_valid_i = 1'b0;
logic [31:0] fault_addr_i = '0;
logic [ 3:0] fault_wstrb_i = '0;
@@ -28,6 +29,7 @@ module pll_ctrl_tb;
.ext_clk_i (ext_clk_i),
.aud_clk_i (aud_clk_i),
.ext_rst_n_i (rst_n_i),
.wdg_reset_req_i(wdg_reset_req_i),
`ifdef HAVE_PLL
.xtal_clk_i (xtal_clk_i),
`endif
@@ -109,8 +111,20 @@ module pll_ctrl_tb;
sysctrl.rtc_wake_i = 1'b0;
#100;
rst_n_i = 1'b1;
wait (aud_rst_n_o);
repeat (12) @(posedge sys_clk_o);
wdg_reset_req_i = 1'b1;
#1;
if (sys_rst_n_o || !aud_rst_n_o) begin
$fatal(1, "watchdog reset did not isolate system and audio reset domains");
end
wdg_reset_req_i = 1'b0;
repeat (8) @(posedge sys_clk_o);
if (!sys_rst_n_o || !aud_rst_n_o) begin
$fatal(1, "watchdog system reset did not deassert synchronously");
end
read_register(32'h1000_B01C, read_data);
`ifdef HAVE_PLL
if (read_data !== 32'h0000_0500) begin
+1 -1
View File
@@ -144,7 +144,7 @@ def test_topology_preserves_default_irq_compatibility_mapping() -> None:
("pwm", "apb", 1, 11, "pwm.irq_o"),
("ps2", "apb", 2, 12, "ps2.irq_o"),
("rtc", "apb", 3, 13, "u_rtc_if.irq_o"),
("watchdog_reset", "apb", 4, 14, "u_wdg_if.rst_o"),
("watchdog_early_warning", "apb", 4, 14, "u_wdg_if.irq_o"),
("advanced_timer", "apb", 5, 15, "u_tmr_if.irq_o"),
("rng", "apb", 6, 16, "s_rng_irq"),
("ws2812", "ribp", 10, 17, "ws2812.irq_o"),