SPI_Test/rtl/rstgen/rst_gen_unit.v

65 lines
2.5 KiB
Coq
Raw Normal View History

2024-06-25 16:41:01 +08:00
`timescale 1ns/1ps
//====================================================
//Author : pwy
//Date : 2024-04-04
//Des : async set & sync release management unit
//====================================================
module rst_gen_unit(
//ext hardware async reset -- low active
input async_rstn_i
//power-on reset -- low active
,input por_rstn_i
//sys soft reset -- low active
,input sys_soft_resetn_i
//ch0 soft reset -- low active
,input ch0_soft_rstn_i
//ch1 soft reset -- low active
,input ch1_soft_rstn_i
//ch2 soft reset -- low active
,input ch2_soft_rstn_i
//ch3 soft reset -- low active
,input ch3_soft_rstn_i
//clock
,input clk
//reset output -- low active
,output ch0_rstn_o
,output ch1_rstn_o
,output ch2_rstn_o
,output ch3_rstn_o
//Phase-locked loop reset -- low active
,output pll_rstn_o
);
//ch0 reset --> async_rstn_i & por_rstn_i & sys_soft_resetn_i & ch0_soft_rstn_i
rst_sync ch0_rstn_sync (
.clk_d ( clk )
,.async_rstn ( async_rstn_i & por_rstn_i & sys_soft_resetn_i & ch0_soft_rstn_i )
,.sync_rstn ( ch0_rstn_o )
);
//ch1 reset --> async_rstn_i & por_rstn_i & sys_soft_resetn_i & ch1_soft_rstn_i
rst_sync ch1_rstn_sync (
.clk_d ( clk )
,.async_rstn ( async_rstn_i & por_rstn_i & sys_soft_resetn_i & ch1_soft_rstn_i )
,.sync_rstn ( ch1_rstn_o )
);
//ch2 reset --> async_rstn_i & por_rstn_i & sys_soft_resetn_i & ch2_soft_rstn_i
rst_sync ch2_rstn_sync (
.clk_d ( clk )
,.async_rstn ( async_rstn_i & por_rstn_i & sys_soft_resetn_i & ch2_soft_rstn_i )
,.sync_rstn ( ch2_rstn_o )
);
//ch3 reset --> async_rstn_i & por_rstn_i & sys_soft_resetn_i & ch3_soft_rstn_i
rst_sync ch3_rstn_sync (
.clk_d ( clk )
,.async_rstn ( async_rstn_i & por_rstn_i & sys_soft_resetn_i & ch3_soft_rstn_i )
,.sync_rstn ( ch3_rstn_o )
);
//Phase-locked loop reset -- low active
assign pll_rstn_o = async_rstn_i & por_rstn_i;
endmodule