MIPS/sim/model/div_unsigned.sv

25 lines
768 B
Systemverilog
Raw Normal View History

`include "defines.svh"
module div_unsigned(
input logic aclk,
input logic s_axis_dividend_tvalid,
input logic [31:0] s_axis_dividend_tdata,
input logic s_axis_divisor_tvalid,
input logic [31:0] s_axis_divisor_tdata,
output logic m_axis_dout_tvalid,
output logic [63:0] m_axis_dout_tdata
);
always_ff @(posedge aclk)
if (s_axis_dividend_tvalid & s_axis_divisor_tvalid) begin
m_axis_dout_tvalid <= 1'b1;
m_axis_dout_tdata[63:32] <= $unsigned(s_axis_dividend_tdata) / $unsigned(s_axis_divisor_tdata);
m_axis_dout_tdata[31: 0] <= $unsigned(s_axis_dividend_tdata) % $unsigned(s_axis_divisor_tdata);
end else begin
m_axis_dout_tvalid <= 0;
m_axis_dout_tdata <= 0;
end
endmodule