gpt4 book ai didi

floating-point - 前导零计数器

转载 作者:行者123 更新时间:2023-12-04 06:49:02 25 4
gpt4 key购买 nike

我正在为浮点实现标准化单元,并且我想知道如何有效地实现前导零计数器?

我知道我可以写以下内容,但是我想知道如果我针对低面积和高能源效率是否有更好的方法?:

always @(mantissa) begin
case(mantissa)
25'b1????????????????????????: newmant = mantissa[24:1];
25'b01???????????????????????: newmant = mantissa[23:0];
25'b001??????????????????????: newmant = {mantissa[22:0],1'b0};
25'b0001?????????????????????: newmant = {mantissa[21:0],2'b0};
// ... (details ommited for brevity)
endcase
end

最佳答案

在VHDL中(应易于移植到Verilog中):

process
variable leading_zeros : natural;
begin
leading_zeros := 0;
for i in input_vector'range loop
if input_vector(i) = '1' then
break;
end if;
leading_zeros := leading_zeros + 1;
end for;
end process;


对于非VHDL扬声器,所有这些操作是从左到右循环遍历 input_vector中的所有位,每次看到 0都会增加一个计数器。一旦找到第一个 1,它就会退出循环,使计数器包含前导零的数量。

要找出效率是否足够高,您必须尝试综合-让我们知道!

关于floating-point - 前导零计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14970411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com