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回复不久
答案 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,这将只计算前导零。