Skip to content
Snippets Groups Projects
Commit 1ca430bd authored by Alban Gruin's avatar Alban Gruin
Browse files

id_stage: add a signal to indicate whether or not there is a CF


Signed-off-by: default avatarAlban Gruin <alban.gruin@irit.fr>
parent afc4a8ce
Branches
Tags
No related merge requests found
...@@ -95,6 +95,7 @@ module ariane import ariane_pkg::*; #( ...@@ -95,6 +95,7 @@ module ariane import ariane_pkg::*; #(
// ID -> verifier // ID -> verifier
// -------------- // --------------
logic has_mem_access_id_verif; logic has_mem_access_id_verif;
logic has_ctrl_flow_id_icache;
// -------------- // --------------
// ISSUE -> verifier // ISSUE -> verifier
...@@ -303,6 +304,7 @@ module ariane import ariane_pkg::*; #( ...@@ -303,6 +304,7 @@ module ariane import ariane_pkg::*; #(
.issue_entry_valid_o ( issue_entry_valid_id_issue ), .issue_entry_valid_o ( issue_entry_valid_id_issue ),
.is_ctrl_flow_o ( is_ctrl_fow_id_issue ), .is_ctrl_flow_o ( is_ctrl_fow_id_issue ),
.is_mem_instr_o ( has_mem_access_id_verif ), .is_mem_instr_o ( has_mem_access_id_verif ),
.has_ctrl_flow_o ( has_ctrl_flow_id_icache ),
.issue_instr_ack_i ( issue_instr_issue_id ), .issue_instr_ack_i ( issue_instr_issue_id ),
.priv_lvl_i ( priv_lvl ), .priv_lvl_i ( priv_lvl ),
......
...@@ -38,7 +38,8 @@ module id_stage ( ...@@ -38,7 +38,8 @@ module id_stage (
input logic tvm_i, input logic tvm_i,
input logic tw_i, input logic tw_i,
input logic tsr_i, input logic tsr_i,
output logic is_mem_instr_o output logic is_mem_instr_o,
output logic has_ctrl_flow_o // speculative CF (ie. no jals)
); );
// ID/ISSUE register stage // ID/ISSUE register stage
struct packed { struct packed {
...@@ -96,6 +97,7 @@ module id_stage ( ...@@ -96,6 +97,7 @@ module id_stage (
assign issue_entry_o = issue_q.sbe; assign issue_entry_o = issue_q.sbe;
assign issue_entry_valid_o = issue_q.valid; assign issue_entry_valid_o = issue_q.valid;
assign is_ctrl_flow_o = issue_q.is_ctrl_flow; assign is_ctrl_flow_o = issue_q.is_ctrl_flow;
assign has_ctrl_flow_o = issue_q.valid && issue_q.is_ctrl_flow && issue_q.sbe.op != ariane_pkg::ADD;
assign is_mem_instr_o = is_mem_instr_q; assign is_mem_instr_o = is_mem_instr_q;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment