如何计算向量中的前导0

时间:2013-05-20 17:19:11

标签: vhdl

 back:while (sub1_mantissa(52)='0') loop
      sub1_mantissa := sub1_mantissa(51 downto 0) & '0';
      count := count + "000000000001";
 end loop back;

嗨。我想计算向量中的前导零...就像我的结果是0001所以它会显示3个零...所以我的计数器将增加3 ...当我将获得msb中的前1个然后我的循环将停止......

即时通讯使用上面的代码..但它不起作用...它需要的计数器值太大,如1100111 ...我没有得到问题的地方......伙计们请帮助我... n回复不久

1 个答案:

答案 0 :(得分:1)

我会使用for循环来计算这个,就像这样:

  variable zero_count : natural := 0;
  for i in sub1_mantissa'range loop
    if sub1_mantissa(i) = '0' then
      zero_count := zero_count + 1;
    else
      exit;
    end if;
  end loop;

注意:如果使用DOWNTO表示法声明sub1_mantissa,这将只计算前导零。