You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.2 KiB
69 lines
2.2 KiB
module top #( |
|
parameter fpnew_pkg::fp_format_e FpFormat = fpnew_pkg::FP32, |
|
parameter int unsigned NumPipeRegs = 0, |
|
parameter fpnew_pkg::pipe_config_t PipeConfig = fpnew_pkg::BEFORE, |
|
parameter type TagType = logic, |
|
parameter type AuxType = logic, |
|
localparam int unsigned WIDTH = 32, |
|
localparam int unsigned ExtRegEnaWidth = 1 |
|
) ( |
|
input logic clk_i, |
|
input logic rst_ni, |
|
// Input signals |
|
input logic [2:0][WIDTH-1:0] operands_i, // 3 operands |
|
input logic [2:0] is_boxed_i, // 3 operands |
|
input fpnew_pkg::roundmode_e rnd_mode_i, |
|
input fpnew_pkg::operation_e op_i, |
|
input logic op_mod_i, |
|
input TagType tag_i, |
|
input logic mask_i, |
|
input AuxType aux_i, |
|
// Input Handshake |
|
input logic in_valid_i, |
|
output logic in_ready_o, |
|
input logic flush_i, |
|
// Output signals |
|
output logic [WIDTH-1:0] result_o, |
|
output fpnew_pkg::status_t status_o, |
|
output logic extension_bit_o, |
|
output TagType tag_o, |
|
output logic mask_o, |
|
output AuxType aux_o, |
|
// Output handshake |
|
output logic out_valid_o, |
|
input logic out_ready_i, |
|
// Indication of valid data in flight |
|
output logic busy_o, |
|
// External register enable override |
|
input logic [ExtRegEnaWidth-1:0] reg_ena_i |
|
); |
|
|
|
fpnew_fma #( |
|
.FpFormat(FpFormat) |
|
) top ( |
|
.clk_i(clk_i), |
|
.rst_ni(rst_ni), |
|
.operands_i(operands_i), |
|
.is_boxed_i(is_boxed_i), |
|
.rnd_mode_i(rnd_mode_i), |
|
.op_i(op_i), |
|
.op_mod_i(op_mod_i), |
|
.tag_i(tag_i), |
|
.mask_i(mask_i), |
|
.aux_i(aux_i), |
|
.in_valid_i(in_valid_i), |
|
.in_ready_o(in_ready_o), |
|
.flush_i(flush_i), |
|
.result_o(result_o), |
|
.status_o(status_o), |
|
.extension_bit_o(extension_bit_o), |
|
.tag_o(tag_o), |
|
.mask_o(mask_o), |
|
.aux_o(aux_o), |
|
.out_valid_o(out_valid_o), |
|
.out_ready_i(out_ready_i), |
|
.busy_o(busy_o), |
|
.reg_ena_i(reg_ena_i) |
|
); |
|
|
|
endmodule |