Machine Learning Hardware Modules
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

module top #(
parameter fpnew_pkg::fp_format_e FpFormat = fpnew_pkg::FP64,
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 = 64,
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