通过这种方式实现乘一个1.几的小数
但是我发现 如果后面右移1位 这个数据本身也会变 所以加起来就不是想要的数据了
2222 + 2222 >>1 => 2222
怎么避免这样呢?
module ad16_xishu(
input clk,
input rst_n,
output reg [15:0] ad_Data
);
reg [15:0] ad_Data_First=16'h22_22;
//右移>>1位=除以2 1.75的系数=>1本身+1>>1(0.5)+1>>2(0.25)
always@(posedge clk or negedge rst_n)
if(!rst_n)begin
ad_Data <= 16'd0;
end
else begin
ad_Data <= ad_Data_First + ad_Data_First >>1;
end