always @(posedge clk or posedge rst) if(rst) event1_tgl_req <= 0; else if(event1) begin // do something and toggle request event1_tgl_req <= ~event1_tgl_ack; end
reg event2_tgl_req; reg event2_tgl_ack;
always @(posedge clk or posedge rst) if(rst) event2_tgl_req <= 0; else if(event2) begin // do something and toggle request event2_tgl_req <= ~event2_tgl_ack; end
reg [1:0] request;
always @(posedge clk or posedge rst) if(rst) begin event1_tgl_ack <= 0; event2_tgl_ack <= 0; end else begin event1_tgl_ack <= event1_tgl_req; event2_tgl_ack <= event2_tgl_req; if(event1_tgl_ack ^ event1_tgl_req) begin request <= 1; end else if(event2_tgl_ack ^ event2_tgl_req) begin request <= 2; end else request <= 0; end