MIPS/model/div_signed.v

31 lines
866 B
Coq
Raw Normal View History

2021-09-22 23:07:13 +08:00
module div_signed(
2021-09-24 16:37:47 +08:00
input aclk,
2021-09-22 23:07:13 +08:00
input s_axis_dividend_tvalid,
input [31:0] s_axis_dividend_tdata,
input s_axis_divisor_tvalid,
input [31:0] s_axis_divisor_tdata,
output m_axis_dout_tvalid,
output [63:0] m_axis_dout_tdata
);
reg valid, nxtValid;
reg [63:0] data, nxtData;
assign m_axis_dout_tvalid = nxtValid;
assign m_axis_dout_tdata = nxtData;
2021-09-24 16:37:47 +08:00
always @(posedge aclk) begin
2021-09-22 23:07:13 +08:00
nxtValid <= valid;
nxtData <= data;
if (s_axis_dividend_tvalid & s_axis_divisor_tvalid) begin
valid <= 1'b1;
data <= {
$signed(s_axis_divisor_tdata) % $signed(s_axis_dividend_tdata),
$signed(s_axis_divisor_tdata) / $signed(s_axis_dividend_tdata)
};
end
end
2021-09-24 16:37:47 +08:00
endmodule