Skip to content

Commit

Permalink
Update core/cva6_tip.sv
Browse files Browse the repository at this point in the history
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • Loading branch information
dassheladiya and github-actions[bot] authored Nov 13, 2024
1 parent 88bd5cc commit 04277bb
Showing 1 changed file with 17 additions and 39 deletions.
56 changes: 17 additions & 39 deletions core/cva6_tip.sv
Original file line number Diff line number Diff line change
Expand Up @@ -34,45 +34,23 @@ module cva6_tip
logic [15:0] itype_signals[0:1];
reg [3:0] itype_o[0:1];

riscv::priv_lvl_t priv_lvl;
//debug_mode
assign debug_mode = instr.debug_mode;
assign priv_lvl = instr.priv_lvl;


logic [63:0] taken_branch_pc_reg,not_taken_branch_pc_reg,uninforable_jump_pc_reg;

// branch
always@(posedge clk_i) begin
if(resolved_branch_i.cf_type == Branch && resolved_branch_i.is_taken == 1) begin
taken_branch_pc_reg <= resolved_branch_i.pc;// taken branch
end
else if(resolved_branch_i.cf_type == Branch && resolved_branch_i.is_taken == 0)begin
not_taken_branch_pc_reg <= resolved_branch_i.pc; //not taken branch
end
else if(resolved_branch_i.cf_type == JumpR)begin
uninforable_jump_pc_reg <= resolved_branch_i.pc; //JumpR
end
end


// itype signals encoding
generate
for (genvar i = 0; i < cva6_config_pkg::CVA6ConfigNrCommitPorts; i++) begin
assign itype_signals [i][1] = commit_instr_i[i].valid && ex_commit_i.valid;
assign itype_signals [i][2] = ( ipi_i || debug_req_i ); //time_irq_i (commit_ack_i[0] && !ex_commit_i.valid) &&
assign itype_signals [i][3] = eret_i;
assign itype_signals [i][4] = ((not_taken_branch_pc_reg == commit_instr_i[i].pc) && ~(commit_instr_i[i].pc == 0));
assign itype_signals [i][5] = ( (taken_branch_pc_reg == commit_instr_i[i].pc) && ~(commit_instr_i[i].pc == 0));
assign itype_signals [i][6] = ( (uninforable_jump_pc_reg == commit_instr_i[i].pc) && ~(commit_instr_i[i].pc == 0));
end
endgenerate

generate
for (genvar i = 0; i < cva6_config_pkg::CVA6ConfigNrCommitPorts; i++) begin

encoder_16_4 ec_0(.in(itype_signals[i]),.out(itype_o[i]),.valid());

riscv::priv_lvl_t priv_lvl;
//debug_mode
assign debug_mode = instr.debug_mode;
assign priv_lvl = instr.priv_lvl;


logic [63:0] taken_branch_pc_reg, not_taken_branch_pc_reg, uninforable_jump_pc_reg;

// branch
always @(posedge clk_i) begin
if (resolved_branch_i.cf_type == Branch && resolved_branch_i.is_taken == 1) begin
taken_branch_pc_reg <= resolved_branch_i.pc; // taken branch
end else if (resolved_branch_i.cf_type == Branch && resolved_branch_i.is_taken == 0) begin
not_taken_branch_pc_reg <= resolved_branch_i.pc; //not taken branch
end else if (resolved_branch_i.cf_type == JumpR) begin
uninforable_jump_pc_reg <= resolved_branch_i.pc; //JumpR
end
end
endgenerate

Expand Down

0 comments on commit 04277bb

Please sign in to comment.