I have seen 2 posting at here Verilog - Floating points multiplication
and how can I apply fixed fraction to the integer
As you can se, those are all regarding of verilog fraction multiplication. But I can confused that Mogan's answer of this.
reg [7:0] a = 0010_1000; reg [7:0] b = 0010_1000;
How can he got this binary? Is this CSD terms?
Update
I know well interger * CSD term. It will converted like this figure( integer >>2)+(integer>> 5).. But I want to kow CSD term * CSD term.
What about this?
wire [11:0] y;
wire [11:0] x;
wire [11:0] z;
y= {3.1, 10'b0}
x= {2.5, 10'b0}
z= y*x
z = z >> 10;
Now I think this is little a bit cost than your way. you can use just just one multiplication. But my method is need shifter to right.
_
as a binary point marker0010_1000
represents 2.5. CSD would contain negative terms denoted by 1 BAR (T) this is just a binary word with 4 fractional places. If you could elaborate on which part your stuck I can try explain it better. – Morgan0010_100T
) or just a single part of it (T
,-2^4
)? – Morgan0010_100T
in verilog. I am not aware of why you would end up with two CSD formats for multiplication. as the CSD conversion of a number is designed to make multiplication easy. – Morgan