vivado: удален неиспользуемый последовательный элемент

Предположим, у меня есть следующий код 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.


person pico    schedule 12.08.2019    source источник
comment
Может ли быть так, что «счетчик» не используется, и поэтому инструмент оптимизирует обратно к источнику? Или «ren» и «wen» всегда равны нулю?   -  person Oldfart    schedule 12.08.2019
comment
Вы смотрите на файл верхнего уровня... Я сделал этот файл как файл верхнего уровня fpga без каких-либо других файлов.   -  person pico    schedule 12.08.2019
comment
Поэтому совершенно невозможно, чтобы он не использовался.   -  person pico    schedule 12.08.2019
comment
Я получил такое же сообщение, но на схеме есть несколько FDCE с именем reg_count_reg. Так что я не знаю, почему Vivado так говорит, но схема выглядит правильно. Я думаю, вы можете игнорировать это предупреждение.   -  person Gautitho    schedule 13.08.2019
comment
Я заметил, что vivado имеет тенденцию помечать преобразования из unsigned в std_logic_vector как неиспользуемые и по какой-то причине удаляться, даже если это не так. возможно, компилятор просто запутался в наличии двух копий одного и того же сигнала и ошибочно сообщает об удалении одной из них как удаленной, когда на самом деле это один и тот же сигнал с разными представлениями (unsigned vs. std_logic_vector)   -  person pico    schedule 22.08.2019


Ответы (1)