+ rule rl_encoder(rg_plic_state==1);
+ Bit#(ir_bits) interrupt_id = irencoder.encode(rg_total_priority);
+ if(interrupt_id!=0 && rg_priority_threshold >= rg_winner_priority) begin
+ `ifdef verbose $display("Interrupt valid");`endif
+ rg_interrupt_id <= interrupt_id;
+ rg_interrupt_valid <= True;
+ $display($time,"\t The highest priority interrupt is %d and the priority is ", interrupt_id, rg_winner_priority);
+ end
+ rg_plic_state <= 0;
+
+
+ //if(lv_total_priority!=0)
+ //winner_interrupts = encoder(encoder_tree(lv_total_priority))[v_msb_priority:0];
+ //if(winner_interrupts!=0) begin
+ // if(winner_priority <= rg_priority_threshold)
+ // begin
+ //
+ // `ifdef verbose $display("Interrupt valid");`endif
+ // rg_interrupt_id <= winner_interrupts;
+ // rg_interrupt_valid <= True;
+ // $display($time,"\t The highest priority interrupt is %d and the priority is ", winner_interrupts, winner_priority);
+ // end
+ //end
+ endrule
+
+
+ //for(Integer i = 0; i<no_iterations; i=i+1) begin
+ // rule rl_encoder(rg_plic_state==1);
+ // Bit#(no_of_ir_pins) lv_total_priority = rg_total_priority;
+ // Vector#(tree_ir, Bit#(8)) lv_priority_ip;
+ // Bit#(tree_ir) level_encoder;
+ // Vector#(tree_ir, 3) ir_encoded;
+ //
+ // for(Integer i=0;i<tree_ir;i=i+1) begin
+ // lv_priority_ip[i]=lv_total_priority[i*8+7:i*8];
+ // end
+ // for(Integer i=0;i<tree_ir;i=i+1) begin
+ // level_encoder[i] = any_req(lv_priority_ip[i]);
+ // end
+ // for(Integer i=0;i<-tree_ir;i=i+1) begin
+ // ir_encoded[i] = encoder(priority_encoder(lv_priority_ip));
+ // end
+ // for(Integer i=0;i<-tree_ir;i=i+1) begin
+ // rg_prioritized_encoded <= ir_encoded;
+ // end
+ //
+ //
+ // //if(lv_total_priority!=0)
+ // //winner_interrupts = encoder(encoder_tree(lv_total_priority))[v_msb_priority:0];
+ // //if(winner_interrupts!=0) begin
+ // // ir_id_valid = encoder(rg_priority[winner_interrupts]);
+ // // if(winner_priority <= rg_priority_threshold)
+ // // begin
+ // //
+ // // `ifdef verbose $display("Interrupt valid");`endif
+ // // rg_interrupt_id <= winner_interrupts;
+ // // rg_interrupt_valid <= True;
+ // // $display($time,"\t The highest priority interrupt is %d and the priority is ", winner_interrupts, winner_priority);
+ // // end
+ // //end
+ // endrule
+ //end
+