考虑到fpga是定点数友好型器件,毕设里的加法和乘法单元还是准备尝试使用定点数,这个为了方便替换,还是写成了单个模块的样子
加法模块
`timescale 1ns / 1ps
module Add_signed(NumA,NumB,Sum);
parameter DATA_WIDTH = 16;
input wire signed [DATA_WIDTH-1:0] NumA,NumB;
output reg signed [DATA_WIDTH-1:0] Sum;
always@(NumA or NumB) begin
Sum = NumA + NumB;
end
endmodule
乘法模块
`timescale 1ns / 1ps
module Mult_signed(NumA,NumB,product);
parameter DATA_WIDTH = 16;
input wire signed [DATA_WIDTH-1:0] NumA,NumB;
output reg signed [DATA_WIDTH-1:0] product;
always@(NumA or NumB) begin
product = NumA * NumB;
end
endmodule
测试文件还是使用了之前的,这个计算都没有考虑溢出的情况,但暂时不打算改了,毕设差的太多了,先追进度吧,准备把输入的数据稍微处理一下,防止它溢出