У меня очень простая машина состояний, которая устанавливает некоторые управляющие сигналы для взаимодействия со сторонним IP.Код выглядит примерно следующим образом:
entity testip is
port (
...
fifo_dataout : in std_logic_vector(0 to 31);
ip_dataout : in std_logic_vector(0 to 31);
ip_ce : out std_logic;
ip_we : out std_logic;
ip_datain : out std_logic_vector(0 to 31);
);
end entity testip;
architecture imp of testip is
signal ip_ce_ns : std_logic;
signal ip_we_ns : std_logic;
signal ip_ce_cs : std_logic;
signal ip_we_cs : std_logic;
signal ip_dataout_i : std_logic_vector(0 to 31);
...
attribute keep: string;
attribute keep of ip_ce : signal is "True";
attribute keep of ip_we : signal is "True";
begin
COMB : process (...)
begin
ip_ce_ns <= ip_ce_cs;
ip_we_ns <= ip_we_cs;
case ip_nstate_cs is
when IDLE =>
...
end case;
end process COMB;
REG: process (Clk) is
begin
if (Clk'event and Clk = '1') then
if (Rst = '1') then
ip_ce_cs <= '1';
ip_we_cs <= '1';
...
else
ip_ce_cs <= ip_ce_ns;
ip_we_cs <= ip_we_ns;
...
end if;
end if;
end process REG;
S0: ip_ce <= ip_ce_cs;
S1: ip_we <= ip_we_cs;
S2: ip_datain <= fifo_dataout;
S3: ip_dataout_i <= Ip_dataout;
end architecture imp;
Sythesis работает нормально, однако при применении следующего файла ограничений я получаю ОШИБКУ: ConstraintSystem: 59 - NET "testip / ip_we" не найден.То же самое происходит для testip / ip_datain и testip / ip_ce.
Net testip/ip_datain<*> MAXDELAY = 2 ns;
Net testip/ip_ce MAXDELAY = 2 ns;
Net testip/ip_we MAXDELAY = 2 ns;
Я проверил список соединений, и действительно нет ни testip / ip_we, ни testip / ip_ce, ни сети testip / ip_datain.У любого есть идея, почему другие сети отсутствуют в списке соединений, все это очень запутанно.
Большое спасибо за любые отзывы!
РЕДАКТИРОВАТЬ: Пожалуйста, смотрите прикрепленный подробный экземпляр в файле верхнего модуля:
icap0 : entity icap.hwicap
generic map (pindex => 2, paddr => 2, pmask => 16#FFE#, C_SIMULATION => 2,
C_FAMILY => "virtex5")
port map (rst => rstn, clk => clkm, apbi => apbi, apbo => apbo(2));
Net icap0/icap_statemachine_I1/Icap_datain<*> MAXDELAY = 2 ns;
Net icap0/icap_statemachine_I1/Icap_ce MAXDELAY = 2 ns;
Net icap0/icap_statemachine_I1/Icap_we MAXDELAY = 2 ns;
Это должно сработать, но при просмотре списка соединений и поиске сигналов Icap_ce или Icap_we их просто не существует.Я просто думаю, что этих сетей нет или они были переименованы, так что я больше не могу их найти.Спасибо