Skip to content
This repository has been archived by the owner on Mar 24, 2021. It is now read-only.

Fix combination loop in icb_claim_irq and icb_complete_irq. #28

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions rtl/e203/perips/sirv_plic_man.v
Original file line number Diff line number Diff line change
Expand Up @@ -413,8 +413,8 @@ localparam PLIC_PEND_ARRAY = (((PLIC_IRQ_NUM-1)/32) + 1);
end//}

//
//0x0C00 1000 Start of target 0 enable array
//0x0C00 107C End of target 0 enable array
//0x0C00 2000 Start of target 0 enable array
//0x0C00 207C End of target 0 enable array
//.... target 1
//.... target 2
for(i=0; i<(PLIC_PEND_ARRAY);i=i+1) begin: sel_enab_i//{
Expand Down Expand Up @@ -504,7 +504,6 @@ localparam PLIC_PEND_ARRAY = (((PLIC_IRQ_NUM-1)/32) + 1);
endgenerate



generate
//
for(i=0; i<PLIC_IRQ_NUM;i=i+1) begin: claim_complete_gen//{
Expand All @@ -514,9 +513,9 @@ localparam PLIC_PEND_ARRAY = (((PLIC_IRQ_NUM-1)/32) + 1);
icb_complete_irq[i] = 1'b0;

// The read data (claimed ID) is equal to the interrupt source ID
icb_claim_irq [i] = icb_claim_irq[i] | ((icb_rsp_rdata == i) & icb_cmd_sel_clam & icb_cmd_rd_hsked);
icb_claim_irq [i] = ((icb_rsp_rdata == i) & icb_cmd_sel_clam & icb_cmd_rd_hsked);
// The write data (complete ID) is equal to the interrupt source ID
icb_complete_irq[i] = icb_complete_irq[i] | ((icb_cmd_wdata[PLIC_IRQ_NUM_LOG2-1:0] == i) & icb_cmd_sel_clam & icb_cmd_wr_hsked);
icb_complete_irq[i] = ((icb_cmd_wdata[PLIC_IRQ_NUM_LOG2-1:0] == i) & icb_cmd_sel_clam & icb_cmd_wr_hsked);

end//}

Expand Down