RTL code refactoring

This commit is contained in:
Blaise Tine
2020-04-19 08:45:46 -04:00
parent 164eb5454c
commit 3139d37610
62 changed files with 261 additions and 256 deletions

View File

@@ -9,49 +9,49 @@ module VX_back_end
input wire reset,
input wire schedule_delay,
VX_gpu_dcache_rsp_inter vx_dcache_rsp,
VX_gpu_dcache_req_inter vx_dcache_req,
VX_gpu_dcache_rsp_if vx_dcache_rsp,
VX_gpu_dcache_req_if vx_dcache_req,
output wire out_mem_delay,
output wire out_exec_delay,
output wire gpr_stage_delay,
VX_jal_response_inter vx_jal_rsp,
VX_branch_response_inter vx_branch_rsp,
VX_jal_response_if vx_jal_rsp,
VX_branch_response_if vx_branch_rsp,
VX_frE_to_bckE_req_inter vx_bckE_req,
VX_wb_inter vx_writeback_inter,
VX_frE_to_bckE_req_if vx_bckE_req,
VX_wb_if vx_writeback_if,
VX_warp_ctl_inter vx_warp_ctl
VX_warp_ctl_if vx_warp_ctl
);
VX_wb_inter vx_writeback_temp();
assign vx_writeback_inter.wb = vx_writeback_temp.wb;
assign vx_writeback_inter.rd = vx_writeback_temp.rd;
assign vx_writeback_inter.write_data = vx_writeback_temp.write_data;
assign vx_writeback_inter.wb_valid = vx_writeback_temp.wb_valid;
assign vx_writeback_inter.wb_warp_num = vx_writeback_temp.wb_warp_num;
assign vx_writeback_inter.wb_pc = vx_writeback_temp.wb_pc;
VX_wb_if vx_writeback_temp();
assign vx_writeback_if.wb = vx_writeback_temp.wb;
assign vx_writeback_if.rd = vx_writeback_temp.rd;
assign vx_writeback_if.write_data = vx_writeback_temp.write_data;
assign vx_writeback_if.wb_valid = vx_writeback_temp.wb_valid;
assign vx_writeback_if.wb_warp_num = vx_writeback_temp.wb_warp_num;
assign vx_writeback_if.wb_pc = vx_writeback_temp.wb_pc;
// assign VX_writeback_inter(vx_writeback_temp);
// assign VX_writeback_if(vx_writeback_temp);
wire no_slot_mem;
wire no_slot_exec;
// LSU input + output
VX_lsu_req_inter vx_lsu_req();
VX_inst_mem_wb_inter vx_mem_wb();
VX_lsu_req_if vx_lsu_req();
VX_inst_mem_wb_if vx_mem_wb();
// Exec unit input + output
VX_exec_unit_req_inter vx_exec_unit_req();
VX_inst_exec_wb_inter vx_inst_exec_wb();
VX_exec_unit_req_if vx_exec_unit_req();
VX_inst_exec_wb_if vx_inst_exec_wb();
// GPU unit input
VX_gpu_inst_req_inter vx_gpu_inst_req();
VX_gpu_inst_req_if vx_gpu_inst_req();
// CSR unit inputs
VX_csr_req_inter vx_csr_req();
VX_csr_wb_inter vx_csr_wb();
VX_csr_req_if vx_csr_req();
VX_csr_wb_if vx_csr_wb();
wire no_slot_csr;
wire stall_gpr_csr;
@@ -59,7 +59,7 @@ VX_gpr_stage vx_gpr_stage(
.clk (clk),
.reset (reset),
.schedule_delay (schedule_delay),
.vx_writeback_inter(vx_writeback_temp),
.vx_writeback_if(vx_writeback_temp),
.vx_bckE_req (vx_bckE_req),
// New
.vx_exec_unit_req(vx_exec_unit_req),
@@ -124,7 +124,7 @@ VX_writeback vx_wb (
.vx_inst_exec_wb (vx_inst_exec_wb),
.vx_csr_wb (vx_csr_wb),
.vx_writeback_inter(vx_writeback_temp),
.vx_writeback_if(vx_writeback_temp),
.no_slot_mem (no_slot_mem),
.no_slot_exec (no_slot_exec),
.no_slot_csr (no_slot_csr)

View File

@@ -1,7 +1,7 @@
module VX_csr_handler (
input wire clk,
input wire[`CSR_ADDR_SIZE-1:0] in_decode_csr_address, // done
VX_csr_write_request_inter vx_csr_w_req,
VX_csr_write_request_if vx_csr_w_req,
input wire in_wb_valid,
output wire[31:0] out_decode_csr_data // done
);

View File

@@ -6,9 +6,9 @@ module VX_csr_pipe #(
input wire clk, // Clock
input wire reset,
input wire no_slot_csr,
VX_csr_req_inter vx_csr_req,
VX_wb_inter vx_writeback,
VX_csr_wb_inter vx_csr_wb,
VX_csr_req_if vx_csr_req,
VX_wb_if vx_writeback,
VX_csr_wb_if vx_csr_wb,
output wire stall_gpr_csr
);

View File

@@ -2,8 +2,8 @@
`include "VX_define.vh"
module VX_csr_wrapper (
VX_csr_req_inter vx_csr_req,
VX_csr_wb_inter vx_csr_wb
VX_csr_req_if vx_csr_req,
VX_csr_wb_if vx_csr_wb
);

View File

@@ -3,12 +3,12 @@
module VX_decode(
// Fetch Inputs
VX_inst_meta_inter fd_inst_meta_de,
VX_inst_meta_if fd_inst_meta_de,
// Outputs
VX_frE_to_bckE_req_inter vx_frE_to_bckE_req,
VX_wstall_inter vx_wstall,
VX_join_inter vx_join,
VX_frE_to_bckE_req_if vx_frE_to_bckE_req,
VX_wstall_if vx_wstall,
VX_join_if vx_join,
output wire terminate_sim

View File

@@ -12,8 +12,13 @@
`define DEBUG_BEGIN /* verilator lint_off UNUSED */
`define DEBUG_END /* verilator lint_on UNUSED */
`define IGNORE_WARNINGS_BEGIN /* verilator lint_off UNUSED */
`define IGNORE_WARNINGS_END /* verilator lint_on UNUSED */
`define IGNORE_WARNINGS_BEGIN /* verilator lint_off UNUSED */ \
/* verilator lint_off PINCONNECTEMPTY */ \
/* verilator lint_off DECLFILENAME */
`define IGNORE_WARNINGS_END /* verilator lint_on UNUSED */ \
/* verilator lint_on PINCONNECTEMPTY */ \
/* verilator lint_on DECLFILENAME */
`define STRINGIFY(x) `"x`"

View File

@@ -5,29 +5,29 @@ module VX_dmem_controller (
input wire reset,
// Dram <-> Dcache
VX_gpu_dcache_dram_req_inter vx_gpu_dcache_dram_req,
VX_gpu_dcache_dram_rsp_inter vx_gpu_dcache_dram_res,
VX_gpu_snp_req_rsp vx_gpu_dcache_snp_req,
VX_gpu_dcache_dram_req_if vx_gpu_dcache_dram_req,
VX_gpu_dcache_dram_rsp_if vx_gpu_dcache_dram_res,
VX_gpu_snp_req_rsp_if vx_gpu_dcache_snp_req,
// Dram <-> Icache
VX_gpu_dcache_dram_req_inter vx_gpu_icache_dram_req,
VX_gpu_dcache_dram_rsp_inter vx_gpu_icache_dram_res,
VX_gpu_snp_req_rsp vx_gpu_icache_snp_req,
VX_gpu_dcache_dram_req_if vx_gpu_icache_dram_req,
VX_gpu_dcache_dram_rsp_if vx_gpu_icache_dram_res,
VX_gpu_snp_req_rsp_if vx_gpu_icache_snp_req,
// Core <-> Dcache
VX_gpu_dcache_rsp_inter vx_dcache_rsp,
VX_gpu_dcache_req_inter vx_dcache_req,
VX_gpu_dcache_rsp_if vx_dcache_rsp,
VX_gpu_dcache_req_if vx_dcache_req,
// Core <-> Icache
VX_gpu_dcache_rsp_inter vx_icache_rsp,
VX_gpu_dcache_req_inter vx_icache_req
VX_gpu_dcache_rsp_if vx_icache_rsp,
VX_gpu_dcache_req_if vx_icache_req
);
VX_gpu_dcache_rsp_inter #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_rsp_smem();
VX_gpu_dcache_req_inter #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_req_smem();
VX_gpu_dcache_rsp_if #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_rsp_smem();
VX_gpu_dcache_req_if #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_req_smem();
VX_gpu_dcache_rsp_inter #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_rsp_dcache();
VX_gpu_dcache_req_inter #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_req_dcache();
VX_gpu_dcache_rsp_if #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_rsp_dcache();
VX_gpu_dcache_req_if #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_req_dcache();
wire to_shm = vx_dcache_req.core_req_addr[0][31:24] == 8'hFF;
wire dcache_wants_wb = (|vx_dcache_rsp_dcache.core_wb_valid);
@@ -66,8 +66,8 @@ module VX_dmem_controller (
assign vx_dcache_rsp.delay_req = to_shm ? vx_dcache_rsp_smem.delay_req : vx_dcache_rsp_dcache.delay_req;
VX_gpu_dcache_dram_req_inter #(.BANK_LINE_WORDS(`DBANK_LINE_WORDS)) vx_gpu_smem_dram_req();
VX_gpu_dcache_dram_rsp_inter #(.BANK_LINE_WORDS(`DBANK_LINE_WORDS)) vx_gpu_smem_dram_res();
VX_gpu_dcache_dram_req_if #(.BANK_LINE_WORDS(`DBANK_LINE_WORDS)) vx_gpu_smem_dram_req();
VX_gpu_dcache_dram_rsp_if #(.BANK_LINE_WORDS(`DBANK_LINE_WORDS)) vx_gpu_smem_dram_res();
VX_cache #(
.CACHE_SIZE_BYTES (`SCACHE_SIZE_BYTES),
@@ -118,9 +118,9 @@ module VX_dmem_controller (
.core_wb_warp_num (vx_dcache_rsp_smem.core_wb_warp_num),
.core_wb_readdata (vx_dcache_rsp_smem.core_wb_readdata),
.core_wb_pc (vx_dcache_rsp_smem.core_wb_pc),
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
.core_wb_address (),
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
// DRAM response
.dram_rsp_valid (vx_gpu_smem_dram_res.dram_rsp_valid),
@@ -140,15 +140,15 @@ module VX_dmem_controller (
// Snoop Request
.snp_req_valid (0),
.snp_req_addr (0),
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
.snp_req_full (),
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
// Snoop Forward
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
.snp_fwd_valid (),
.snp_fwd_addr (),
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
.snp_fwd_full (0)
);
@@ -201,9 +201,9 @@ module VX_dmem_controller (
.core_wb_warp_num (vx_dcache_rsp_dcache.core_wb_warp_num),
.core_wb_readdata (vx_dcache_rsp_dcache.core_wb_readdata),
.core_wb_pc (vx_dcache_rsp_dcache.core_wb_pc),
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
.core_wb_address (),
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
// DRAM response
.dram_rsp_valid (vx_gpu_dcache_dram_res.dram_rsp_valid),
@@ -226,10 +226,10 @@ module VX_dmem_controller (
.snp_req_full (vx_gpu_dcache_snp_req.snp_req_full),
// Snoop Forward
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
.snp_fwd_valid (),
.snp_fwd_addr (),
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
.snp_fwd_full (0)
);
@@ -282,9 +282,9 @@ module VX_dmem_controller (
.core_wb_warp_num (vx_icache_rsp.core_wb_warp_num),
.core_wb_readdata (vx_icache_rsp.core_wb_readdata),
.core_wb_pc (vx_icache_rsp.core_wb_pc),
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
.core_wb_address (),
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
// DRAM response
.dram_rsp_valid (vx_gpu_icache_dram_res.dram_rsp_valid),
@@ -307,10 +307,10 @@ module VX_dmem_controller (
.snp_req_full (vx_gpu_icache_snp_req.snp_req_full),
// Snoop Forward
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
.snp_fwd_valid (),
.snp_fwd_addr (),
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
.snp_fwd_full (0)
);

View File

@@ -4,15 +4,15 @@ module VX_execute_unit (
input wire clk,
input wire reset,
// Request
VX_exec_unit_req_inter vx_exec_unit_req,
VX_exec_unit_req_if vx_exec_unit_req,
// Output
// Writeback
VX_inst_exec_wb_inter vx_inst_exec_wb,
VX_inst_exec_wb_if vx_inst_exec_wb,
// JAL Response
VX_jal_response_inter vx_jal_rsp,
VX_jal_response_if vx_jal_rsp,
// Branch Response
VX_branch_response_inter vx_branch_rsp,
VX_branch_response_if vx_branch_rsp,
input wire no_slot_exec,
output wire out_delay
@@ -109,11 +109,11 @@ module VX_execute_unit (
endgenerate
// VX_inst_exec_wb_inter vx_inst_exec_wb_temp();
// VX_inst_exec_wb_if vx_inst_exec_wb_temp();
// JAL Response
VX_jal_response_inter vx_jal_rsp_temp();
VX_jal_response_if vx_jal_rsp_temp();
// Branch Response
VX_branch_response_inter vx_branch_rsp_temp();
VX_branch_response_if vx_branch_rsp_temp();
// Actual Writeback
assign vx_inst_exec_wb.rd = vx_exec_unit_req.rd;

View File

@@ -3,18 +3,18 @@
module VX_fetch (
input wire clk,
input wire reset,
VX_wstall_inter vx_wstall,
VX_join_inter vx_join,
VX_wstall_if vx_wstall,
VX_join_if vx_join,
input wire schedule_delay,
input wire icache_stage_delay,
input wire[`NW_BITS-1:0] icache_stage_wid,
input wire[`NUM_THREADS-1:0] icache_stage_valids,
output wire out_ebreak,
VX_jal_response_inter vx_jal_rsp,
VX_branch_response_inter vx_branch_rsp,
VX_inst_meta_inter fe_inst_meta_fi,
VX_warp_ctl_inter vx_warp_ctl
VX_jal_response_if vx_jal_rsp,
VX_branch_response_if vx_branch_rsp,
VX_inst_meta_if fe_inst_meta_fi,
VX_warp_ctl_if vx_warp_ctl
);
wire[`NUM_THREADS-1:0] thread_mask;

View File

@@ -6,26 +6,26 @@ module VX_front_end (
input wire schedule_delay,
VX_warp_ctl_inter vx_warp_ctl,
VX_warp_ctl_if vx_warp_ctl,
VX_gpu_dcache_rsp_inter vx_icache_rsp,
VX_gpu_dcache_req_inter vx_icache_req,
VX_gpu_dcache_rsp_if vx_icache_rsp,
VX_gpu_dcache_req_if vx_icache_req,
VX_jal_response_inter vx_jal_rsp,
VX_branch_response_inter vx_branch_rsp,
VX_jal_response_if vx_jal_rsp,
VX_branch_response_if vx_branch_rsp,
VX_frE_to_bckE_req_inter vx_bckE_req,
VX_frE_to_bckE_req_if vx_bckE_req,
output wire fetch_ebreak
);
VX_inst_meta_inter fe_inst_meta_fi();
VX_inst_meta_inter fe_inst_meta_fi2();
VX_inst_meta_inter fe_inst_meta_id();
VX_inst_meta_if fe_inst_meta_fi();
VX_inst_meta_if fe_inst_meta_fi2();
VX_inst_meta_if fe_inst_meta_id();
VX_frE_to_bckE_req_inter vx_frE_to_bckE_req();
VX_inst_meta_inter fd_inst_meta_de();
VX_frE_to_bckE_req_if vx_frE_to_bckE_req();
VX_inst_meta_if fd_inst_meta_de();
wire total_freeze = schedule_delay;
wire icache_stage_delay;
@@ -48,8 +48,8 @@ end
assign fetch_ebreak = vortex_ebreak || terminate_sim || old_ebreak;
VX_wstall_inter vx_wstall();
VX_join_inter vx_join();
VX_wstall_if vx_wstall();
VX_join_if vx_join();
VX_fetch vx_fetch(
.clk (clk),

View File

@@ -2,10 +2,10 @@
module VX_gpgpu_inst (
// Input
VX_gpu_inst_req_inter vx_gpu_inst_req,
VX_gpu_inst_req_if vx_gpu_inst_req,
// Output
VX_warp_ctl_inter vx_warp_ctl
VX_warp_ctl_if vx_warp_ctl
);
wire[`NUM_THREADS-1:0] curr_valids = vx_gpu_inst_req.valid;
wire is_split = (vx_gpu_inst_req.is_split);

View File

@@ -4,8 +4,8 @@ module VX_gpr (
input wire clk,
input wire reset,
input wire valid_write_request,
VX_gpr_read_inter vx_gpr_read,
VX_wb_inter vx_writeback_inter,
VX_gpr_read_if vx_gpr_read,
VX_wb_if vx_writeback_if,
output reg[`NUM_THREADS-1:0][`NUM_GPRS-1:0] out_a_reg_data,
output reg[`NUM_THREADS-1:0][`NUM_GPRS-1:0] out_b_reg_data
@@ -13,28 +13,28 @@ module VX_gpr (
wire write_enable;
`ifndef ASIC
assign write_enable = valid_write_request && ((vx_writeback_inter.wb != 0)) && (vx_writeback_inter.rd != 0);
assign write_enable = valid_write_request && ((vx_writeback_if.wb != 0)) && (vx_writeback_if.rd != 0);
byte_enabled_simple_dual_port_ram first_ram(
.we (write_enable),
.clk (clk),
.reset (reset),
.waddr (vx_writeback_inter.rd),
.waddr (vx_writeback_if.rd),
.raddr1(vx_gpr_read.rs1),
.raddr2(vx_gpr_read.rs2),
.be (vx_writeback_inter.wb_valid),
.wdata (vx_writeback_inter.write_data),
.be (vx_writeback_if.wb_valid),
.wdata (vx_writeback_if.write_data),
.q1 (out_a_reg_data),
.q2 (out_b_reg_data)
);
`else
assign write_enable = valid_write_request && ((vx_writeback_inter.wb != 0));
wire going_to_write = write_enable & (|vx_writeback_inter.wb_valid);
assign write_enable = valid_write_request && ((vx_writeback_if.wb != 0));
wire going_to_write = write_enable & (|vx_writeback_if.wb_valid);
wire[`NUM_THREADS-1:0][`NUM_GPRS-1:0] write_bit_mask;
genvar curr_t;
for (curr_t = 0; curr_t < `NUM_THREADS; curr_t=curr_t+1) begin
wire local_write = write_enable & vx_writeback_inter.wb_valid[curr_t];
wire local_write = write_enable & vx_writeback_if.wb_valid[curr_t];
assign write_bit_mask[curr_t] = {`NUM_GPRS{~local_write}};
end
@@ -65,12 +65,12 @@ module VX_gpr (
assign out_b_reg_data = temp_b;
`endif
wire[`NUM_THREADS-1:0][`NUM_GPRS-1:0] to_write = (vx_writeback_inter.rd != 0) ? vx_writeback_inter.write_data : 0;
wire[`NUM_THREADS-1:0][`NUM_GPRS-1:0] to_write = (vx_writeback_if.rd != 0) ? vx_writeback_if.write_data : 0;
genvar curr_base_thread;
for (curr_base_thread = 0; curr_base_thread < 'NT; curr_base_thread=curr_base_thread+4)
begin
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
rf2_32x128_wm1 first_ram (
.CENYA(),
.AYA(),
@@ -86,7 +86,7 @@ module VX_gpr (
.CLKB(clk),
.CENB(cenb),
.WENB(write_bit_mask[(curr_base_thread+3):(curr_base_thread)]),
.AB(vx_writeback_inter.rd[(curr_base_thread+3):(curr_base_thread)]),
.AB(vx_writeback_if.rd[(curr_base_thread+3):(curr_base_thread)]),
.DB(to_write[(curr_base_thread+3):(curr_base_thread)]),
.EMAA(3'b011),
.EMASA(1'b0),
@@ -107,9 +107,9 @@ module VX_gpr (
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
rf2_`NUM_GPRSx128_wm1 second_ram (
.CENYA(),
.AYA(),
@@ -125,7 +125,7 @@ module VX_gpr (
.CLKB(clk),
.CENB(cenb),
.WENB(write_bit_mask[(curr_base_thread+3):(curr_base_thread)]),
.AB(vx_writeback_inter.rd[(curr_base_thread+3):(curr_base_thread)]),
.AB(vx_writeback_if.rd[(curr_base_thread+3):(curr_base_thread)]),
.DB(to_write[(curr_base_thread+3):(curr_base_thread)]),
.EMAA(3'b011),
.EMASA(1'b0),
@@ -146,7 +146,7 @@ module VX_gpr (
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
end
`endif

View File

@@ -12,16 +12,16 @@ module VX_gpr_stage (
// inputs
// Instruction Information
VX_frE_to_bckE_req_inter vx_bckE_req,
VX_frE_to_bckE_req_if vx_bckE_req,
// WriteBack inputs
VX_wb_inter vx_writeback_inter,
VX_wb_if vx_writeback_if,
// Outputs
VX_exec_unit_req_inter vx_exec_unit_req,
VX_lsu_req_inter vx_lsu_req,
VX_gpu_inst_req_inter vx_gpu_inst_req,
VX_csr_req_inter vx_csr_req
VX_exec_unit_req_if vx_exec_unit_req,
VX_lsu_req_if vx_lsu_req,
VX_gpu_inst_req_if vx_gpu_inst_req,
VX_csr_req_if vx_csr_req
);
`DEBUG_BEGIN
wire[31:0] curr_PC = vx_bckE_req.curr_PC;
@@ -31,27 +31,27 @@ module VX_gpr_stage (
wire jalQual = vx_bckE_req.jalQual;
`DEBUG_END
VX_gpr_read_inter vx_gpr_read();
VX_gpr_read_if vx_gpr_read();
assign vx_gpr_read.rs1 = vx_bckE_req.rs1;
assign vx_gpr_read.rs2 = vx_bckE_req.rs2;
assign vx_gpr_read.warp_num = vx_bckE_req.warp_num;
`ifndef ASIC
VX_gpr_jal_inter vx_gpr_jal();
VX_gpr_jal_if vx_gpr_jal();
assign vx_gpr_jal.is_jal = vx_bckE_req.jalQual;
assign vx_gpr_jal.curr_PC = vx_bckE_req.curr_PC;
`else
VX_gpr_jal_inter vx_gpr_jal();
VX_gpr_jal_if vx_gpr_jal();
assign vx_gpr_jal.is_jal = vx_exec_unit_req.jalQual;
assign vx_gpr_jal.curr_PC = vx_exec_unit_req.curr_PC;
`endif
VX_gpr_data_inter vx_gpr_datf();
VX_gpr_data_if vx_gpr_datf();
VX_gpr_wrapper vx_grp_wrapper (
.clk (clk),
.reset (reset),
.vx_writeback_inter(vx_writeback_inter),
.vx_writeback_if(vx_writeback_if),
.vx_gpr_read (vx_gpr_read),
.vx_gpr_jal (vx_gpr_jal),
@@ -63,10 +63,10 @@ module VX_gpr_stage (
// assign vx_bckE_req_out.csr_mask = (vx_bckE_req.sr_immed == 1'b1) ? {27'h0, vx_bckE_req.rs1} : vx_gpr_data.a_reg_data[0];
// Outputs
VX_exec_unit_req_inter vx_exec_unit_req_temp();
VX_lsu_req_inter vx_lsu_req_temp();
VX_gpu_inst_req_inter vx_gpu_inst_req_temp();
VX_csr_req_inter vx_csr_req_temp();
VX_exec_unit_req_if vx_exec_unit_req_temp();
VX_lsu_req_if vx_lsu_req_temp();
VX_gpu_inst_req_if vx_gpu_inst_req_temp();
VX_csr_req_if vx_csr_req_temp();
VX_inst_multiplex vx_inst_mult(
.vx_bckE_req (vx_bckE_req),

View File

@@ -3,9 +3,9 @@
module VX_gpr_wrapper (
input wire clk,
input wire reset,
VX_gpr_read_inter vx_gpr_read,
VX_wb_inter vx_writeback_inter,
VX_gpr_jal_inter vx_gpr_jal,
VX_gpr_read_if vx_gpr_read,
VX_wb_if vx_writeback_if,
VX_gpr_jal_if vx_gpr_jal,
output wire[`NUM_THREADS-1:0][31:0] out_a_reg_data,
output wire[`NUM_THREADS-1:0][31:0] out_b_reg_data
@@ -52,13 +52,13 @@ module VX_gpr_wrapper (
for (warp_index = 0; warp_index < `NUM_WARPS; warp_index = warp_index + 1) begin : warp_gprs
wire valid_write_request = warp_index == vx_writeback_inter.wb_warp_num;
wire valid_write_request = warp_index == vx_writeback_if.wb_warp_num;
VX_gpr vx_gpr(
.clk (clk),
.reset (reset),
.valid_write_request(valid_write_request),
.vx_gpr_read (vx_gpr_read),
.vx_writeback_inter (vx_writeback_inter),
.vx_writeback_if (vx_writeback_if),
.out_a_reg_data (temp_a_reg_data[warp_index]),
.out_b_reg_data (temp_b_reg_data[warp_index])
);

View File

@@ -7,11 +7,11 @@ module VX_icache_stage (
output wire icache_stage_delay,
output wire[`NW_BITS-1:0] icache_stage_wid,
output wire[`NUM_THREADS-1:0] icache_stage_valids,
VX_inst_meta_inter fe_inst_meta_fi,
VX_inst_meta_inter fe_inst_meta_id,
VX_inst_meta_if fe_inst_meta_fi,
VX_inst_meta_if fe_inst_meta_id,
VX_gpu_dcache_rsp_inter vx_icache_rsp,
VX_gpu_dcache_req_inter vx_icache_req
VX_gpu_dcache_rsp_if vx_icache_rsp,
VX_gpu_dcache_req_if vx_icache_req
);
reg[`NUM_THREADS-1:0] threads_active[`NUM_WARPS-1:0];

View File

@@ -2,14 +2,14 @@
module VX_inst_multiplex (
// Inputs
VX_frE_to_bckE_req_inter vx_bckE_req,
VX_gpr_data_inter vx_gpr_data,
VX_frE_to_bckE_req_if vx_bckE_req,
VX_gpr_data_if vx_gpr_data,
// Outputs
VX_exec_unit_req_inter vx_exec_unit_req,
VX_lsu_req_inter vx_lsu_req,
VX_gpu_inst_req_inter vx_gpu_inst_req,
VX_csr_req_inter vx_csr_req
VX_exec_unit_req_if vx_exec_unit_req,
VX_lsu_req_if vx_lsu_req,
VX_gpu_inst_req_if vx_gpu_inst_req,
VX_csr_req_if vx_csr_req
);
wire[`NUM_THREADS-1:0] is_mem_mask;

View File

@@ -4,13 +4,13 @@ module VX_lsu (
input wire clk,
input wire reset,
input wire no_slot_mem,
VX_lsu_req_inter vx_lsu_req,
VX_lsu_req_if vx_lsu_req,
// Write back to GPR
VX_inst_mem_wb_inter vx_mem_wb,
VX_inst_mem_wb_if vx_mem_wb,
VX_gpu_dcache_rsp_inter vx_dcache_rsp,
VX_gpu_dcache_req_inter vx_dcache_req,
VX_gpu_dcache_rsp_if vx_dcache_rsp,
VX_gpu_dcache_req_if vx_dcache_req,
output wire out_delay
);
// Generate Addresses

View File

@@ -6,8 +6,8 @@ module VX_scheduler (
input wire memory_delay,
input wire exec_delay,
input wire gpr_stage_delay,
VX_frE_to_bckE_req_inter vx_bckE_req,
VX_wb_inter vx_writeback_inter,
VX_frE_to_bckE_req_if vx_bckE_req,
VX_wb_if vx_writeback_if,
output wire schedule_delay,
output wire is_empty
@@ -18,7 +18,7 @@ module VX_scheduler (
reg[31:0][`NUM_THREADS-1:0] rename_table[`NUM_WARPS-1:0];
wire valid_wb = (vx_writeback_inter.wb != 0) && (|vx_writeback_inter.wb_valid) && (vx_writeback_inter.rd != 0);
wire valid_wb = (vx_writeback_if.wb != 0) && (|vx_writeback_if.wb_valid) && (vx_writeback_if.rd != 0);
wire wb_inc = (vx_bckE_req.wb != 0) && (vx_bckE_req.rd != 0);
wire rs1_rename = rename_table[vx_bckE_req.warp_num][vx_bckE_req.rs1] != 0;
@@ -59,7 +59,7 @@ module VX_scheduler (
end
end else begin
if (valid_wb) begin
rename_table[vx_writeback_inter.wb_warp_num][vx_writeback_inter.rd] <= rename_table[vx_writeback_inter.wb_warp_num][vx_writeback_inter.rd] & (~vx_writeback_inter.wb_valid);
rename_table[vx_writeback_if.wb_warp_num][vx_writeback_if.rd] <= rename_table[vx_writeback_if.wb_warp_num][vx_writeback_if.rd] & (~vx_writeback_if.wb_valid);
end
if (!schedule_delay && wb_inc) begin
@@ -67,7 +67,7 @@ module VX_scheduler (
end
if (valid_wb
&& (0 == (rename_table[vx_writeback_inter.wb_warp_num][vx_writeback_inter.rd] & ~vx_writeback_inter.wb_valid))) begin
&& (0 == (rename_table[vx_writeback_if.wb_warp_num][vx_writeback_if.rd] & ~vx_writeback_if.wb_valid))) begin
count_valid <= count_valid - 1;
end

View File

@@ -4,20 +4,20 @@ module VX_writeback (
input wire clk,
input wire reset,
// Mem WB info
VX_inst_mem_wb_inter vx_mem_wb,
VX_inst_mem_wb_if vx_mem_wb,
// EXEC Unit WB info
VX_inst_exec_wb_inter vx_inst_exec_wb,
VX_inst_exec_wb_if vx_inst_exec_wb,
// CSR Unit WB info
VX_csr_wb_inter vx_csr_wb,
VX_csr_wb_if vx_csr_wb,
// Actual WB to GPR
VX_wb_inter vx_writeback_inter,
VX_wb_if vx_writeback_if,
output wire no_slot_mem,
output wire no_slot_exec,
output wire no_slot_csr
);
VX_wb_inter vx_writeback_tempp();
VX_wb_if vx_writeback_tempp();
wire exec_wb = (vx_inst_exec_wb.wb != 0) && (|vx_inst_exec_wb.wb_valid);
wire mem_wb = (vx_mem_wb.wb != 0) && (|vx_mem_wb.wb_valid);
@@ -72,18 +72,18 @@ module VX_writeback (
.stall(zero),
.flush(zero),
.in ({vx_writeback_tempp.write_data, vx_writeback_tempp.wb_valid, vx_writeback_tempp.rd, vx_writeback_tempp.wb, vx_writeback_tempp.wb_warp_num, vx_writeback_tempp.wb_pc}),
.out ({use_wb_data , vx_writeback_inter.wb_valid, vx_writeback_inter.rd, vx_writeback_inter.wb, vx_writeback_inter.wb_warp_num, vx_writeback_inter.wb_pc})
.out ({use_wb_data , vx_writeback_if.wb_valid, vx_writeback_if.rd, vx_writeback_if.wb, vx_writeback_if.wb_warp_num, vx_writeback_if.wb_pc})
);
reg[31:0] last_data_wb /* verilator public */ ;
always @(posedge clk) begin
if ((|vx_writeback_inter.wb_valid) && (vx_writeback_inter.wb != 0) && (vx_writeback_inter.rd == 28)) begin
if ((|vx_writeback_if.wb_valid) && (vx_writeback_if.wb != 0) && (vx_writeback_if.rd == 28)) begin
last_data_wb <= use_wb_data[0];
end
end
assign vx_writeback_inter.write_data = use_wb_data;
assign vx_writeback_if.write_data = use_wb_data;
endmodule : VX_writeback

View File

@@ -99,12 +99,12 @@ module Vortex
wire schedule_delay;
// Dcache Interface
VX_gpu_dcache_rsp_inter #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_rsp();
VX_gpu_dcache_req_inter #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_req();
VX_gpu_dcache_req_inter #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_req_qual();
VX_gpu_dcache_rsp_if #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_rsp();
VX_gpu_dcache_req_if #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_req();
VX_gpu_dcache_req_if #(.NUM_REQUESTS(`DNUM_REQUESTS)) vx_dcache_req_qual();
VX_gpu_dcache_dram_req_inter #(.BANK_LINE_WORDS(`DBANK_LINE_WORDS)) vx_gpu_dcache_dram_req();
VX_gpu_dcache_dram_rsp_inter #(.BANK_LINE_WORDS(`DBANK_LINE_WORDS)) vx_gpu_dcache_dram_res();
VX_gpu_dcache_dram_req_if #(.BANK_LINE_WORDS(`DBANK_LINE_WORDS)) vx_gpu_dcache_dram_req();
VX_gpu_dcache_dram_rsp_if #(.BANK_LINE_WORDS(`DBANK_LINE_WORDS)) vx_gpu_dcache_dram_res();
assign vx_gpu_dcache_dram_res.dram_rsp_valid = dram_rsp_valid;
assign vx_gpu_dcache_dram_res.dram_rsp_addr = dram_rsp_addr;
@@ -144,11 +144,11 @@ module Vortex
assign vx_dcache_req_qual.core_req_pc = vx_dcache_req.core_req_pc;
assign vx_dcache_req_qual.core_no_wb_slot = vx_dcache_req.core_no_wb_slot;
VX_gpu_dcache_rsp_inter #(.NUM_REQUESTS(`INUM_REQUESTS)) vx_icache_rsp();
VX_gpu_dcache_req_inter #(.NUM_REQUESTS(`INUM_REQUESTS)) vx_icache_req();
VX_gpu_dcache_rsp_if #(.NUM_REQUESTS(`INUM_REQUESTS)) vx_icache_rsp();
VX_gpu_dcache_req_if #(.NUM_REQUESTS(`INUM_REQUESTS)) vx_icache_req();
VX_gpu_dcache_dram_req_inter #(.BANK_LINE_WORDS(`IBANK_LINE_WORDS)) vx_gpu_icache_dram_req();
VX_gpu_dcache_dram_rsp_inter #(.BANK_LINE_WORDS(`IBANK_LINE_WORDS)) vx_gpu_icache_dram_res();
VX_gpu_dcache_dram_req_if #(.BANK_LINE_WORDS(`IBANK_LINE_WORDS)) vx_gpu_icache_dram_req();
VX_gpu_dcache_dram_rsp_if #(.BANK_LINE_WORDS(`IBANK_LINE_WORDS)) vx_gpu_icache_dram_res();
assign vx_gpu_icache_dram_res.dram_rsp_valid = I_dram_rsp_valid;
assign vx_gpu_icache_dram_res.dram_rsp_addr = I_dram_rsp_addr;
@@ -171,19 +171,19 @@ module Vortex
/////////////////////////////////////////////////////////////////////////
// Front-end to Back-end
VX_frE_to_bckE_req_inter vx_bckE_req(); // New instruction request to EXE/MEM
VX_frE_to_bckE_req_if vx_bckE_req(); // New instruction request to EXE/MEM
// Back-end to Front-end
VX_wb_inter vx_writeback_inter(); // Writeback to GPRs
VX_branch_response_inter vx_branch_rsp(); // Branch Resolution to Fetch
VX_jal_response_inter vx_jal_rsp(); // Jump resolution to Fetch
VX_wb_if vx_writeback_if(); // Writeback to GPRs
VX_branch_response_if vx_branch_rsp(); // Branch Resolution to Fetch
VX_jal_response_if vx_jal_rsp(); // Jump resolution to Fetch
// CSR Buses
// VX_csr_write_request_inter vx_csr_w_req();
// VX_csr_write_request_if vx_csr_w_req();
VX_warp_ctl_inter vx_warp_ctl();
VX_gpu_snp_req_rsp vx_gpu_icache_snp_req();
VX_gpu_snp_req_rsp vx_gpu_dcache_snp_req();
VX_warp_ctl_if vx_warp_ctl();
VX_gpu_snp_req_rsp_if vx_gpu_icache_snp_req();
VX_gpu_snp_req_rsp_if vx_gpu_dcache_snp_req();
assign vx_gpu_dcache_snp_req.snp_req_valid = snp_req_valid;
assign vx_gpu_dcache_snp_req.snp_req_addr = snp_req_addr;
@@ -209,7 +209,7 @@ VX_scheduler schedule(
.exec_delay (exec_delay),
.gpr_stage_delay (gpr_stage_delay),
.vx_bckE_req (vx_bckE_req),
.vx_writeback_inter (vx_writeback_inter),
.vx_writeback_if (vx_writeback_if),
.schedule_delay (schedule_delay),
.is_empty (scheduler_empty)
);
@@ -224,7 +224,7 @@ VX_back_end #(.CORE_ID(CORE_ID)) vx_back_end(
.vx_branch_rsp (vx_branch_rsp),
.vx_dcache_rsp (vx_dcache_rsp),
.vx_dcache_req (vx_dcache_req),
.vx_writeback_inter (vx_writeback_inter),
.vx_writeback_if (vx_writeback_if),
.out_mem_delay (memory_delay),
.out_exec_delay (exec_delay),
.gpr_stage_delay (gpr_stage_delay)
@@ -257,7 +257,7 @@ VX_dmem_controller vx_dmem_controller(
// .clk (clk),
// .in_decode_csr_address(decode_csr_address),
// .vx_csr_w_req (vx_csr_w_req),
// .in_wb_valid (vx_writeback_inter.wb_valid[0]),
// .in_wb_valid (vx_writeback_if.wb_valid[0]),
// .out_decode_csr_data (csr_decode_csr_data)
// );

View File

@@ -227,12 +227,12 @@ module Vortex_Cluster
// Core Writeback
.core_wb_valid (l2c_wb),
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
.core_wb_req_rd (),
.core_wb_req_wb (),
.core_wb_warp_num (),
.core_wb_pc (),
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
.core_wb_readdata ({l2c_wb_data}),
.core_wb_address (l2c_wb_addr),

View File

@@ -225,12 +225,12 @@ module Vortex_Socket (
// Core Writeback
.core_wb_valid (l3c_wb),
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
.core_wb_req_rd (),
.core_wb_req_wb (),
.core_wb_warp_num (),
.core_wb_pc (),
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
.core_wb_readdata ({l3c_wb_data}),
.core_wb_address (l3c_wb_addr),

View File

@@ -104,7 +104,7 @@ module VX_cache_data #(
assign data_use = data_out_d;
// Using ASIC MEM
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
rf2_32x128_wm1 data (
.CENYA(),
.AYA(),
@@ -141,7 +141,7 @@ module VX_cache_data #(
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
wire[16:0] old_tag;
wire old_valid;
@@ -169,7 +169,7 @@ module VX_cache_data #(
assign valid_use = old_valid;
assign tag_use = old_tag;
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
rf2_32x19_wm0 meta (
.CENYA(),
.AYA(),
@@ -206,7 +206,7 @@ module VX_cache_data #(
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
`endif
endmodule

View File

@@ -53,32 +53,32 @@ module VX_d_cache_encapsulate (
// Inter
wire [`NUM_THREADS-1:0] i_p_valid_inter;
wire [`NUM_THREADS-1:0][31:0] i_p_addr_inter;
wire [`NUM_THREADS-1:0][31:0] i_p_writedata_inter;
wire [`NUM_THREADS-1:0] i_p_valid_if;
wire [`NUM_THREADS-1:0][31:0] i_p_addr_if;
wire [`NUM_THREADS-1:0][31:0] i_p_writedata_if;
reg [`NUM_THREADS-1:0][31:0] o_p_readdata_inter;
reg [`NUM_THREADS-1:0] o_p_readdata_valid_inter;
reg [`NUM_THREADS-1:0][31:0] o_p_readdata_if;
reg [`NUM_THREADS-1:0] o_p_readdata_valid_if;
reg[NUM_BANKS - 1:0][`NUM_WORDS_PER_BLOCK-1:0][31:0] o_m_writedata_inter;
wire[NUM_BANKS - 1:0][`NUM_WORDS_PER_BLOCK-1:0][31:0] i_m_readdata_inter;
reg[NUM_BANKS - 1:0][`NUM_WORDS_PER_BLOCK-1:0][31:0] o_m_writedata_if;
wire[NUM_BANKS - 1:0][`NUM_WORDS_PER_BLOCK-1:0][31:0] i_m_readdata_if;
genvar curr_thraed, curr_bank, curr_word;
generate
for (curr_thraed = 0; curr_thraed < `NUM_THREADS; curr_thraed = curr_thraed + 1) begin : threads
assign i_p_valid_inter[curr_thraed] = i_p_valid[curr_thraed];
assign i_p_addr_inter[curr_thraed] = i_p_addr[curr_thraed];
assign i_p_writedata_inter[curr_thraed] = i_p_writedata[curr_thraed];
assign o_p_readdata[curr_thraed] = o_p_readdata_inter[curr_thraed];
assign o_p_readdata_valid[curr_thraed] = o_p_readdata_valid_inter[curr_thraed];
assign i_p_valid_if[curr_thraed] = i_p_valid[curr_thraed];
assign i_p_addr_if[curr_thraed] = i_p_addr[curr_thraed];
assign i_p_writedata_if[curr_thraed] = i_p_writedata[curr_thraed];
assign o_p_readdata[curr_thraed] = o_p_readdata_if[curr_thraed];
assign o_p_readdata_valid[curr_thraed] = o_p_readdata_valid_if[curr_thraed];
end
for (curr_bank = 0; curr_bank < NUM_BANKS; curr_bank = curr_bank + 1) begin : banks
for (curr_word = 0; curr_word < `NUM_WORDS_PER_BLOCK; curr_word = curr_word + 1) begin : words
assign o_m_writedata[curr_bank][curr_word] = o_m_writedata_inter[curr_bank][curr_word];
assign i_m_readdata_inter[curr_bank][curr_word] = i_m_readdata[curr_bank][curr_word];
assign o_m_writedata[curr_bank][curr_word] = o_m_writedata_if[curr_bank][curr_word];
assign i_m_readdata_if[curr_bank][curr_word] = i_m_readdata[curr_bank][curr_word];
end
end
@@ -87,19 +87,19 @@ module VX_d_cache_encapsulate (
VX_d_cache dcache(
.clk (clk),
.rst (rst),
.i_p_valid (i_p_valid_inter),
.i_p_addr (i_p_addr_inter),
.i_p_valid (i_p_valid_if),
.i_p_addr (i_p_addr_if),
.i_p_initial_request(i_p_initial_request),
.i_p_writedata (i_p_writedata_inter),
.i_p_writedata (i_p_writedata_if),
.i_p_read_or_write (i_p_read_or_write),
.o_p_readdata (o_p_readdata_inter),
.o_p_readdata_valid (o_p_readdata_valid_inter),
.o_p_readdata (o_p_readdata_if),
.o_p_readdata_valid (o_p_readdata_valid_if),
.o_p_waitrequest (o_p_waitrequest),
.o_m_addr (o_m_addr),
.o_m_valid (o_m_valid),
.o_m_writedata (o_m_writedata_inter),
.o_m_writedata (o_m_writedata_if),
.o_m_read_or_write (o_m_read_or_write),
.i_m_readdata (i_m_readdata_inter),
.i_m_readdata (i_m_readdata_if),
.i_m_ready (i_m_ready)
);

View File

@@ -25,9 +25,9 @@ module VX_divide #(
generate
if (NREP != DREP) begin
/* verilator lint_off DECLFILENAME */
`IGNORE_WARNINGS_BEGIN
different_nrep_drep_not_yet_supported non_existing_module();
/* verilator lint_on DECLFILENAME */
`IGNORE_WARNINGS_END
end
if (IMPL == "quartus") begin
@@ -98,7 +98,7 @@ module VX_divide #(
if (NREP == "SIGNED") begin
/*VX_divide_internal_signed #(
/*VX_divide_ifnal_signed #(
.WIDTHN,
.WIDTHD
)div(

View File

@@ -30,7 +30,7 @@ module VX_mult #(
localparam lpm_speed = (SPEED == "HIGHEST") ? 10 : 5;
if (FORCE_LE == "YES") begin
/* verilator lint_off DECLFILENAME */
`IGNORE_WARNINGS_BEGIN
lpm_mult #(
.LPM_WIDTHA(WIDTHA),
.LPM_WIDTHB(WIDTHB),
@@ -47,7 +47,7 @@ module VX_mult #(
.datab(datab),
.result(result)
);
/* verilator lint_on DECLFILENAME */
`IGNORE_WARNINGS_END
end
else begin
lpm_mult#(

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_branch_response_inter ();
interface VX_branch_response_if ();
wire valid_branch;
wire branch_dir;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_csr_req_inter ();
interface VX_csr_req_if ();
wire [`NUM_THREADS-1:0] valid;
wire [`NW_BITS-1:0] warp_num;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_csr_wb_inter ();
interface VX_csr_wb_if ();
wire [`NUM_THREADS-1:0] valid;
wire [`NW_BITS-1:0] warp_num;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_dcache_request_inter ();
interface VX_dcache_request_if ();
wire [`NUM_THREADS-1:0][31:0] out_cache_driver_in_address;
wire [2:0] out_cache_driver_in_mem_read;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_dcache_response_inter ();
interface VX_dcache_response_if ();
wire [`NUM_THREADS-1:0][31:0] in_cache_driver_out_data;
wire delay;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_dram_req_rsp_inter #(
interface VX_dram_req_rsp_if #(
parameter NUM_BANKS = 8,
parameter NUM_WORDS_PER_BLOCK = 4
) ();

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_exec_unit_req_inter ();
interface VX_exec_unit_req_if ();
// Meta
wire [`NUM_THREADS-1:0] valid;

View File

@@ -3,7 +3,7 @@
`include "VX_define.vh"
interface VX_frE_to_bckE_req_inter ();
interface VX_frE_to_bckE_req_if ();
wire [11:0] csr_address;
wire is_csr;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_gpr_data_inter ();
interface VX_gpr_data_if ();
wire [`NUM_THREADS-1:0][31:0] a_reg_data;
wire [`NUM_THREADS-1:0][31:0] b_reg_data;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_gpr_jal_inter ();
interface VX_gpr_jal_if ();
wire is_jal;
wire[31:0] curr_PC;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_gpr_read_inter ();
interface VX_gpr_read_if ();
wire [4:0] rs1;
wire [4:0] rs2;

View File

@@ -3,7 +3,7 @@
`include "../generic_cache/VX_cache_config.vh"
interface VX_gpu_dcache_dram_req_inter #(
interface VX_gpu_dcache_dram_req_if #(
parameter BANK_LINE_WORDS = 2
) ();

View File

@@ -3,7 +3,7 @@
`include "../generic_cache/VX_cache_config.vh"
interface VX_gpu_dcache_dram_rsp_inter #(
interface VX_gpu_dcache_dram_rsp_if #(
parameter BANK_LINE_WORDS = 2
) ();
// DRAM Response

View File

@@ -3,7 +3,7 @@
`include "../generic_cache/VX_cache_config.vh"
interface VX_gpu_dcache_req_inter #(
interface VX_gpu_dcache_req_if #(
parameter NUM_REQUESTS = 32
) ();

View File

@@ -3,7 +3,7 @@
`include "../generic_cache/VX_cache_config.vh"
interface VX_gpu_dcache_rsp_inter #(
interface VX_gpu_dcache_rsp_if #(
parameter NUM_REQUESTS = 32
) ();

View File

@@ -3,7 +3,7 @@
`include "../generic_cache/VX_cache_config.vh"
interface VX_gpu_dcache_snp_req_inter ();
interface VX_gpu_dcache_snp_req_if ();
// Snoop Req
wire snp_req_valid;
wire [31:0] snp_req_addr;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_gpu_inst_req_inter();
interface VX_gpu_inst_req_if();
wire [`NUM_THREADS-1:0] valid;
wire [`NW_BITS-1:0] warp_num;

View File

@@ -3,7 +3,7 @@
`include "../generic_cache/VX_cache_config.vh"
interface VX_gpu_snp_req_rsp ();
interface VX_gpu_snp_req_rsp_if ();
// Snoop request
wire snp_req_valid;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_icache_request_inter ();
interface VX_icache_request_if ();
wire [31:0] pc_address;
wire [2:0] out_cache_driver_in_mem_read;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_icache_response_inter ();
interface VX_icache_response_if ();
// wire ready;
// wire stall;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_inst_exec_wb_inter ();
interface VX_inst_exec_wb_if ();
wire [`NUM_THREADS-1:0][31:0] alu_result;
wire [31:0] exec_wb_pc;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_inst_mem_wb_inter ();
interface VX_inst_mem_wb_if ();
wire [`NUM_THREADS-1:0][31:0] loaded_data;
wire [31:0] mem_wb_pc;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_inst_meta_inter ();
interface VX_inst_meta_if ();
wire [31:0] instruction;
wire [31:0] inst_pc;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_jal_response_inter ();
interface VX_jal_response_if ();
wire jal;
wire [31:0] jal_dest;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_join_inter ();
interface VX_join_if ();
wire is_join;
wire [`NW_BITS-1:0] join_warp_num;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_lsu_req_inter ();
interface VX_lsu_req_if ();
wire [`NUM_THREADS-1:0] valid;
wire [31:0] lsu_pc;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_mem_req_inter ();
interface VX_mem_req_if ();
wire [`NUM_THREADS-1:0][31:0] alu_result;
wire [2:0] mem_read;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_mw_wb_inter ();
interface VX_mw_wb_if ();
wire [`NUM_THREADS-1:0][31:0] alu_result;
wire [`NUM_THREADS-1:0][31:0] mem_result;

View File

@@ -4,7 +4,7 @@
`include "../VX_define.vh"
interface VX_warp_ctl_inter ();
interface VX_warp_ctl_if ();
wire [`NW_BITS-1:0] warp_num;
wire change_mask;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_wb_inter ();
interface VX_wb_if ();
wire [`NUM_THREADS-1:0][31:0] write_data;
wire [31:0] wb_pc;

View File

@@ -3,7 +3,7 @@
`include "../VX_define.vh"
interface VX_wstall_inter();
interface VX_wstall_if();
wire wstall;
wire [`NW_BITS-1:0] warp_num;

View File

@@ -5,8 +5,8 @@ module VX_d_e_reg (
input wire reset,
input wire in_branch_stall,
input wire in_freeze,
VX_frE_to_bckE_req_inter vx_frE_to_bckE_req,
VX_frE_to_bckE_req_inter vx_bckE_req
VX_frE_to_bckE_req_if vx_frE_to_bckE_req,
VX_frE_to_bckE_req_if vx_bckE_req
);
wire stall = in_freeze;

View File

@@ -5,8 +5,8 @@ module VX_f_d_reg (
input wire reset,
input wire in_freeze,
VX_inst_meta_inter fe_inst_meta_fd,
VX_inst_meta_inter fd_inst_meta_de
VX_inst_meta_if fe_inst_meta_fd,
VX_inst_meta_if fd_inst_meta_de
);

View File

@@ -5,8 +5,8 @@ module VX_i_d_reg (
input wire reset,
input wire in_freeze,
VX_inst_meta_inter fe_inst_meta_fd,
VX_inst_meta_inter fd_inst_meta_de
VX_inst_meta_if fe_inst_meta_fd,
VX_inst_meta_if fd_inst_meta_de
);

View File

@@ -61,7 +61,7 @@ module VX_shared_memory_block
end
// Using ASIC MEM
/* verilator lint_off PINCONNECTEMPTY */
`IGNORE_WARNINGS_BEGIN
rf2_128x128_wm1 first_ram (
.CENYA(),
.AYA(),
@@ -98,7 +98,7 @@ module VX_shared_memory_block
.SEB(1'b0),
.COLLDISN(1'b1)
);
/* verilator lint_on PINCONNECTEMPTY */
`IGNORE_WARNINGS_END
`endif

View File

@@ -25,7 +25,7 @@ module cache_simX (
//////////////////// ICACHE ///////////////////
VX_icache_request_inter VX_icache_req;
VX_icache_request_if VX_icache_req;
assign VX_icache_req.pc_address = in_icache_pc_addr;
assign VX_icache_req.out_cache_driver_in_mem_read = (in_icache_valid_pc_addr) ? `LW_MEM_READ : `NO_MEM_READ;
assign VX_icache_req.out_cache_driver_in_mem_write = `NO_MEM_WRITE;
@@ -33,11 +33,11 @@ module cache_simX (
assign VX_icache_req.out_cache_driver_in_data = 0;
VX_icache_response_inter VX_icache_rsp;
VX_icache_response_if VX_icache_rsp;
assign out_icache_stall = VX_icache_rsp.delay;
VX_dram_req_rsp_inter #(
VX_dram_req_rsp_if #(
.NUMBER_BANKS(`ICACHE_BANKS),
.NUM_WORDS_PER_BLOCK(`ICACHE_NUM_WORDS_PER_BLOCK)
@@ -52,7 +52,7 @@ module cache_simX (
//////////////////// DCACHE ///////////////////
VX_dcache_request_inter VX_dcache_req;
VX_dcache_request_if VX_dcache_req;
assign VX_dcache_req.out_cache_driver_in_mem_read = in_dcache_mem_read;
assign VX_dcache_req.out_cache_driver_in_mem_write = in_dcache_mem_write;
assign VX_dcache_req.out_cache_driver_in_data = 0;
@@ -64,11 +64,11 @@ module cache_simX (
assign VX_dcache_req.out_cache_driver_in_valid[curr_t] = in_dcache_in_valid[curr_t];
end
VX_dcache_response_inter VX_dcache_rsp;
VX_dcache_response_if VX_dcache_rsp;
assign out_dcache_stall = VX_dcache_rsp.delay;
VX_dram_req_rsp_inter #(
VX_dram_req_rsp_if #(
.NUMBER_BANKS(`DCACHE_BANKS),
.NUM_WORDS_PER_BLOCK(`DCACHE_NUM_WORDS_PER_BLOCK)