介绍
我们要实现的连0检测器是指,一串二进制数据从高位开始到第一个变成1中间连0的个数。
设计文件
library ieee;
use ieee.std_logic_1164.all;
entity zeros is
generic(n : integer := 16);
port( inp : in std_logic_vector(n-1 downto 0);
outp : out integer range 0 to n);
end zeros;
architecture zeros of zeros is
begin
process(inp)
variable count : integer range 0 to n;
begin
count := 0;
for i in inp'range loop
case inp(i) is
when '0' => count := count + 1;
when others => exit;
end case;
end loop;
outp <= count;
end process;
end architecture;
测试文件
library ieee;
use ieee.std_logic_1164.all;
entity tb_zeros is
generic(n : integer := 16);
e