⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smc_interrupt.v

📁 自己设计的Smartcard功能模块
💻 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 + -