Предположим, у меня есть следующий код VHDL, который я синтезирую с Vivado:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity example1 is
port (
aclk :in std_logic;
aresetn :in std_logic;
ren :in std_logic;
wen :in std_logic;
count :out std_logic_vector(7 downto 0)
);
end entity;
architecture rtl of example1 is
signal reg_count :unsigned(7 downto 0);
signal sel :std_logic_vector(1 downto 0);
begin
count <= std_logic_vector(reg_count);
sel <= ren & wen;
process(aclk, aresetn)
begin
if (aresetn = '0') then
reg_count <= (others => '0');
elsif (rising_edge(aclk)) then
case sel is
when "00" => reg_count <= reg_count;
when "01" => reg_count <= (reg_count + 1);
when "10" => reg_count <= (reg_count - 1);
when "11" => reg_count <= reg_count;
when others => null;
end case;
end if;
end process;
end architecture;
Как я могу изменить приведенный выше код, чтобы предотвратить следующие предупреждающие сообщения синтеза:
[Synth 8-6014] Unused sequential element reg_count_reg was removed.
Должен ли я серьезно отнестись к этому предупреждающему сообщению? Мне кажется, что его действительный код синтезируется кодом VHDL.