Binary 如何使用verilog?;将二进制浮点数转换为十进制数;

Binary 如何使用verilog?;将二进制浮点数转换为十进制数;,binary,verilog,decimal-point,Binary,Verilog,Decimal Point,我正在写一个程序。有一个二进制浮点数,格式如下:XX.XXX。例如,二进制浮点数01.101转换为十进制数是1.625。我试了很长一段时间,但都没成功 我使用[4:0]num来存储数字。num[4:3]是整数部分,num[2:0]是浮点部分。整数部分很简单,当num[2:0]=3'b101时,表示二进制浮点部分为0.101,转换为十进制数为0.625。那么如何转换序列“101”,得到序列“625”?最快的方法可能就是使用LUT(查找表)。因为分数部分只有3位,所以只剩下8种可能性。您可以使用一个

我正在写一个程序。有一个二进制浮点数,格式如下:XX.XXX。例如,二进制浮点数01.101转换为十进制数是1.625。我试了很长一段时间,但都没成功


我使用[4:0]num来存储数字。num[4:3]是整数部分,num[2:0]是浮点部分。整数部分很简单,当num[2:0]=3'b101时,表示二进制浮点部分为0.101,转换为十进制数为0.625。那么如何转换序列“101”,得到序列“625”?

最快的方法可能就是使用LUT(查找表)。因为分数部分只有3位,所以只剩下8种可能性。您可以使用一个12位的值,其中每个半字节都是一个数字,可以发送到显示器等

reg result[11:0] // each nibble represents a digit

always @(*) begin
    case (num[2:0])
        3'b000  : result = 12'h000;
        3'b001  : result = 12'h125;
        3'b010  : result = 12'h250;
        3'b011  : result = 12'h375;
        3'b100  : result = 12'h500;
        3'b101  : result = 12'h625;
        3'b110  : result = 12'h750;
        default : result = 12'h875;
    endcase    
end

请注意,您的格式“XX.XXX”称为定点编号。当谈到一个“浮点数”时,你有一个重要的和指数。请参阅。另外,这是用于模拟还是合成(用于在LCD或7seg等设备上显示)?