[func] add sam support for sliced llc and scu
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
module hn_router_sam
|
||||
import rvh_noc_pkg::*;
|
||||
#(
|
||||
parameter type flit_payload_t = logic[256-1:0]
|
||||
parameter type flit_payload_t = logic[256-1:0],
|
||||
parameter int sliced_llc = 0
|
||||
// parameter VC_NUM_IDX_W = 1
|
||||
)
|
||||
(
|
||||
@@ -22,18 +23,32 @@ assign flit_dec_o.qos_value = flit_i.qos_value;
|
||||
|
||||
always_comb begin
|
||||
flit_o = flit_i;
|
||||
flit_o.tgt_id.x_position = flit_i.id.cid ? (flit_i.id.cid + 1) % NODE_NUM_X_DIMESION : '0;
|
||||
flit_o.tgt_id.y_position = flit_i.id.cid ? (flit_i.id.cid + 1) / NODE_NUM_X_DIMESION : '0;
|
||||
if(sliced_llc) begin
|
||||
flit_o.tgt_id.x_position = flit_i.id.cid % NODE_NUM_X_DIMESION;
|
||||
flit_o.tgt_id.y_position = flit_i.id.cid / NODE_NUM_Y_DIMESION;
|
||||
end else begin // when the hn is at (1,0)
|
||||
flit_o.tgt_id.x_position = flit_i.id.cid ? (flit_i.id.cid + 1) % NODE_NUM_X_DIMESION : '0;
|
||||
flit_o.tgt_id.y_position = flit_i.id.cid ? (flit_i.id.cid + 1) / NODE_NUM_Y_DIMESION : '0;
|
||||
end
|
||||
flit_o.tgt_id.device_port = 0;
|
||||
flit_o.tgt_id.device_id = 0;
|
||||
flit_o.src_id.x_position = node_id_x_i;
|
||||
flit_o.src_id.y_position = node_id_y_i;
|
||||
flit_o.src_id.device_port = 0;
|
||||
flit_o.src_id.device_id = 0;
|
||||
|
||||
flit_o.id.sid = node_id_y_i * NODE_NUM_Y_DIMESION + node_id_x_i;
|
||||
end
|
||||
|
||||
assign flit_dec_o.tgt_id.x_position = flit_i.id.cid ? (flit_i.id.cid + 1) % NODE_NUM_X_DIMESION : '0;
|
||||
assign flit_dec_o.tgt_id.y_position = flit_i.id.cid ? (flit_i.id.cid + 1) / NODE_NUM_X_DIMESION : '0;
|
||||
generate
|
||||
if(sliced_llc) begin: gen_sliced_llc
|
||||
assign flit_dec_o.tgt_id.x_position = flit_i.id.cid % NODE_NUM_X_DIMESION;
|
||||
assign flit_dec_o.tgt_id.y_position = flit_i.id.cid / NODE_NUM_Y_DIMESION;
|
||||
end else begin: gen_whole_llc // when the hn is at (1,0)
|
||||
assign flit_dec_o.tgt_id.x_position = flit_i.id.cid ? (flit_i.id.cid + 1) % NODE_NUM_X_DIMESION : '0;
|
||||
assign flit_dec_o.tgt_id.y_position = flit_i.id.cid ? (flit_i.id.cid + 1) / NODE_NUM_Y_DIMESION : '0;
|
||||
end
|
||||
endgenerate
|
||||
assign flit_dec_o.tgt_id.device_port = 0;
|
||||
assign flit_dec_o.tgt_id.device_id = 0;
|
||||
assign flit_dec_o.src_id.x_position = node_id_x_i;
|
||||
|
||||
Reference in New Issue
Block a user