65 lines
2.5 KiB
Coq
65 lines
2.5 KiB
Coq
|
`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
|