allowing partial cache request submissions, io bus support broken
This commit is contained in:
@@ -32,24 +32,9 @@ module Vortex (
|
||||
// Snoop response
|
||||
output wire snp_rsp_valid,
|
||||
output wire [`VX_SNP_TAG_WIDTH-1:0] snp_rsp_tag,
|
||||
input wire snp_rsp_ready,
|
||||
input wire snp_rsp_ready,
|
||||
|
||||
// I/O request
|
||||
output wire [`NUM_THREADS-1:0] io_req_valid,
|
||||
output wire io_req_rw,
|
||||
output wire [`NUM_THREADS-1:0][3:0] io_req_byteen,
|
||||
output wire [`NUM_THREADS-1:0][29:0] io_req_addr,
|
||||
output wire [`NUM_THREADS-1:0][31:0] io_req_data,
|
||||
output wire [`VX_CORE_TAG_WIDTH-1:0] io_req_tag,
|
||||
input wire io_req_ready,
|
||||
|
||||
// I/O response
|
||||
input wire io_rsp_valid,
|
||||
input wire [31:0] io_rsp_data,
|
||||
input wire [`VX_CORE_TAG_WIDTH-1:0] io_rsp_tag,
|
||||
output wire io_rsp_ready,
|
||||
|
||||
// CSR I/O Request
|
||||
// CSR Request
|
||||
input wire csr_io_req_valid,
|
||||
input wire [`VX_CSR_ID_WIDTH-1:0] csr_io_req_coreid,
|
||||
input wire [11:0] csr_io_req_addr,
|
||||
@@ -57,7 +42,7 @@ module Vortex (
|
||||
input wire [31:0] csr_io_req_data,
|
||||
output wire csr_io_req_ready,
|
||||
|
||||
// CSR I/O Response
|
||||
// CSR Response
|
||||
output wire csr_io_rsp_valid,
|
||||
output wire [31:0] csr_io_rsp_data,
|
||||
input wire csr_io_rsp_ready,
|
||||
@@ -89,19 +74,6 @@ module Vortex (
|
||||
wire [`NUM_CLUSTERS-1:0][`L2SNP_TAG_WIDTH-1:0] per_cluster_snp_rsp_tag;
|
||||
wire [`NUM_CLUSTERS-1:0] per_cluster_snp_rsp_ready;
|
||||
|
||||
wire [`NUM_CLUSTERS-1:0][`NUM_THREADS-1:0] per_cluster_io_req_valid;
|
||||
wire [`NUM_CLUSTERS-1:0] per_cluster_io_req_rw;
|
||||
wire [`NUM_CLUSTERS-1:0][`NUM_THREADS-1:0][3:0] per_cluster_io_req_byteen;
|
||||
wire [`NUM_CLUSTERS-1:0][`NUM_THREADS-1:0][29:0] per_cluster_io_req_addr;
|
||||
wire [`NUM_CLUSTERS-1:0][`NUM_THREADS-1:0][31:0] per_cluster_io_req_data;
|
||||
wire [`NUM_CLUSTERS-1:0][`L2CORE_TAG_WIDTH-1:0] per_cluster_io_req_tag;
|
||||
wire [`NUM_CLUSTERS-1:0] per_cluster_io_req_ready;
|
||||
|
||||
wire [`NUM_CLUSTERS-1:0] per_cluster_io_rsp_valid;
|
||||
wire [`NUM_CLUSTERS-1:0][`L2CORE_TAG_WIDTH-1:0] per_cluster_io_rsp_tag;
|
||||
wire [`NUM_CLUSTERS-1:0][31:0] per_cluster_io_rsp_data;
|
||||
wire [`NUM_CLUSTERS-1:0] per_cluster_io_rsp_ready;
|
||||
|
||||
wire [`NUM_CLUSTERS-1:0] per_cluster_csr_io_req_valid;
|
||||
wire [`NUM_CLUSTERS-1:0][11:0] per_cluster_csr_io_req_addr;
|
||||
wire [`NUM_CLUSTERS-1:0] per_cluster_csr_io_req_rw;
|
||||
@@ -150,19 +122,6 @@ module Vortex (
|
||||
.snp_rsp_tag (per_cluster_snp_rsp_tag [i]),
|
||||
.snp_rsp_ready (per_cluster_snp_rsp_ready [i]),
|
||||
|
||||
.io_req_valid (per_cluster_io_req_valid [i]),
|
||||
.io_req_rw (per_cluster_io_req_rw [i]),
|
||||
.io_req_byteen (per_cluster_io_req_byteen [i]),
|
||||
.io_req_addr (per_cluster_io_req_addr [i]),
|
||||
.io_req_data (per_cluster_io_req_data [i]),
|
||||
.io_req_tag (per_cluster_io_req_tag [i]),
|
||||
.io_req_ready (per_cluster_io_req_ready [i]),
|
||||
|
||||
.io_rsp_valid (per_cluster_io_rsp_valid [i]),
|
||||
.io_rsp_data (per_cluster_io_rsp_data [i]),
|
||||
.io_rsp_tag (per_cluster_io_rsp_tag [i]),
|
||||
.io_rsp_ready (per_cluster_io_rsp_ready [i]),
|
||||
|
||||
.csr_io_req_valid (per_cluster_csr_io_req_valid[i]),
|
||||
.csr_io_req_coreid (csr_io_core_id),
|
||||
.csr_io_req_rw (per_cluster_csr_io_req_rw [i]),
|
||||
@@ -179,48 +138,6 @@ module Vortex (
|
||||
);
|
||||
end
|
||||
|
||||
VX_databus_arb #(
|
||||
.NUM_REQS (`NUM_CLUSTERS),
|
||||
.WORD_SIZE (4),
|
||||
.TAG_IN_WIDTH (`L2CORE_TAG_WIDTH),
|
||||
.TAG_OUT_WIDTH (`L3CORE_TAG_WIDTH),
|
||||
.BUFFERED_REQ (1),
|
||||
.BUFFERED_RSP (`NUM_CLUSTERS >= 4)
|
||||
) io_arb (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
// input requests
|
||||
.req_valid_in (per_cluster_io_req_valid),
|
||||
.req_rw_in (per_cluster_io_req_rw),
|
||||
.req_byteen_in (per_cluster_io_req_byteen),
|
||||
.req_addr_in (per_cluster_io_req_addr),
|
||||
.req_data_in (per_cluster_io_req_data),
|
||||
.req_tag_in (per_cluster_io_req_tag),
|
||||
.req_ready_in (per_cluster_io_req_ready),
|
||||
|
||||
// output request
|
||||
.req_valid_out (io_req_valid),
|
||||
.req_rw_out (io_req_rw),
|
||||
.req_byteen_out (io_req_byteen),
|
||||
.req_addr_out (io_req_addr),
|
||||
.req_data_out (io_req_data),
|
||||
.req_tag_out (io_req_tag),
|
||||
.req_ready_out (io_req_ready),
|
||||
|
||||
// input response
|
||||
.rsp_valid_in (io_rsp_valid),
|
||||
.rsp_tag_in (io_rsp_tag),
|
||||
.rsp_data_in (io_rsp_data),
|
||||
.rsp_ready_in (io_rsp_ready),
|
||||
|
||||
// output responses
|
||||
.rsp_valid_out (per_cluster_io_rsp_valid),
|
||||
.rsp_data_out (per_cluster_io_rsp_data),
|
||||
.rsp_tag_out (per_cluster_io_rsp_tag),
|
||||
.rsp_ready_out (per_cluster_io_rsp_ready)
|
||||
);
|
||||
|
||||
VX_csr_io_arb #(
|
||||
.NUM_REQS (`NUM_CLUSTERS),
|
||||
.DATA_WIDTH (32),
|
||||
|
||||
Reference in New Issue
Block a user