我在VHDL项目中工作,我面临着计算向量长度的问题.我知道有一个矢量的长度属性,但这不是我正在寻找的长度.例如,我有std_logic_vector
E : std_logic_vector(7 downto 0);
Run Code Online (Sandbox Code Playgroud)
然后
E <= "00011010";
Run Code Online (Sandbox Code Playgroud)
所以,len = E'length = 8但我不是在寻找这个.我想len在丢弃最左边的零后计算,所以len = 5;
我知道我可以通过从左到右检查"0"位来使用for循环,如果出现"1"位则停止.但这并不高效,因为我有1024或更多位,这将减慢我的电路.那么有没有任何方法或算法以有效的方式计算长度?例如使用log(n)级门的组合门,(其中n =比特数).