blob: 866e6ca4c13503310c550b9bbf5c88b563549fde [file]
// description:
// 1. Instantiate ALU reservation station.
//
// feature list:
// 1. ALU reservation station is 2 write and 2 read ports of SFIFO.
`include 'rvv.svh'
module rvv_alu_rs
(
clk,
rst_n,
push0_dp2rs,
alu_uop0_dprs,
pop0_ex2rs,
push1_dp2rs,
alu_uop1_dp2rs,
pop1_ex2rs,
alu_uop0_rs2ex,
alu_uop1_rs2ex,
fifo_full_rs2dp,
fifo_1left_to_full_rs2dp,
fifo_halffull_rs2dp,
fifo_empty_rs2ex,
fifo_1left_to_empty_rs2ex
);
//
// interface signals
//
// global signals
input logic clk;
input logic rst_n;
// Dispatch to ALU RS
input logic push0_dp2rs;
input ALU_RS_t alu_uop0_dp2rs;
input logic pop0_ex2rs;
input logic push1_dp2rs;
input ALU_RS_t alu_uop1_dp2rs;
input logic pop1_ex2rs;
output ALU_RS_t alu_uop0_rs2ex;
output ALU_RS_t alu_uop1_rs2ex;
output logic fifo_full_rs2dp;
output logic fifo_1left_to_full_rs2dp;
output logic fifo_halffull_rs2dp;
output logic fifo_empty_rs2ex;
output logic fifo_1left_to_empty_rs2ex;
//
// Instantiate ALU reservation station
//
fifo_flopped_2w2r
#(
.DWIDTH (`ALU_RS_WIDTH)
)(
// Inputs
clk (clk),
rst_n (rst_n),
push0 (push0_dp2rs),
inData0 (alu_uop0_dp2rs),
push1 (push1_dp2rs),
inData1 (alu_uop1_dp2rs),
pop0 (pop0_ex2rs),
pop1 (pop1_ex2rs),
// Outputs
outData0 (alu_uop0_rs2ex),
outData1 (alu_uop1_rs2ex),
fifo_halfFull (fifo_halffull_rs2dp),
fifo_full (fifo_full_rs2dp),
fifo_1left_to_full (fifo_1left_to_full_rs2dp),
fifo_empty (fifo_empty_rs2ex),
fifo_1left_to_empty (fifo_1left_to_empty_rs2ex)
//fifo_idle ()
);
endmodule