?? smc_interrupt.v
字號:
module SMC_interrupt(
clk_div ,
rst_preset_n_a ,
//interrupt enable
in_parity_en,
in_timeout_reset_en,
in_timeout_character_en,
in_timeout_block_en,
in_empty_en,
in_overrun_en,
in_dataValid_en,
//interrupt status
in_BWT_OvertimeIndicate_r, //BWT
in_CWT_OvertimeIndicate_r, //CWT
in_ATR_overtimeIndicator_r,
in_ATR_exceed9600ETUIndicator_r,
in_character_OvertimeIndicate_r,
//parityError signal
in_ParityErrorIndicator_r,
in_TransmitterEmptyIndictor,
in_OverrunErrorIndicator_r,
in_dataValid, //From rx_FIFO
//output
out_parity_status,
out_timeout_reset_status,
out_timeout_character_status,
out_timeout_block_status,
out_empty_status,
out_dataValid_status,
out_OverrunError_status,
int_SMC
);
input clk_div ;
input rst_preset_n_a ;
input in_parity_en;
input in_timeout_reset_en;
input in_timeout_character_en;
input in_timeout_block_en;
input in_empty_en;
input in_dataValid_en;
input in_overrun_en;
//interrupt status
input in_BWT_OvertimeIndicate_r; //BWT
input in_CWT_OvertimeIndicate_r; //CWT
input in_ATR_overtimeIndicator_r;
input in_ATR_exceed9600ETUIndicator_r;
input in_character_OvertimeIndicate_r;
//parityError signal
input in_ParityErrorIndicator_r;
input in_TransmitterEmptyIndictor;
input in_OverrunErrorIndicator_r;
input in_dataValid; //From rx_FIFO
//output
output out_parity_status;
output out_timeout_reset_status;
output out_timeout_character_status;
output out_timeout_block_status;
output out_empty_status;
output out_OverrunError_status;
output out_dataValid_status;
output int_SMC;
reg out_parity_status;
reg out_timeout_reset_status;
reg out_timeout_character_status;
reg out_timeout_block_status;
reg out_empty_status;
reg out_dataValid_status;
reg out_OverrunError_status;
always @(posedge clk_div or negedge rst_preset_n_a )
begin
if (!rst_preset_n_a )
begin
out_parity_status <= 1'b0;
out_timeout_reset_status <= 1'b0;
out_timeout_character_status <= 1'b0;
out_timeout_block_status <= 1'b0;
out_empty_status <= 1'b0;
out_OverrunError_status <= 1'b0;
out_dataValid_status <= 1'b0;
end
else
begin
out_parity_status <= in_ParityErrorIndicator_r & in_parity_en;
out_timeout_reset_status <= (in_ATR_overtimeIndicator_r | in_ATR_exceed9600ETUIndicator_r) & in_timeout_reset_en;
out_timeout_character_status <= in_character_OvertimeIndicate_r & in_timeout_character_en ;
out_timeout_block_status <= (in_BWT_OvertimeIndicate_r | in_CWT_OvertimeIndicate_r) & in_timeout_block_en;
out_empty_status <= in_TransmitterEmptyIndictor & in_empty_en;
out_OverrunError_status <= in_OverrunErrorIndicator_r & in_overrun_en;
out_dataValid_status <=in_dataValid & in_dataValid_en;
end
end
assign int_SMC = out_parity_status & out_timeout_reset_status & out_timeout_character_status & out_timeout_block_status & out_empty_status & out_dataValid_status;
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -