gosha 0 29 июня, 2022 Опубликовано 29 июня, 2022 · Жалоба --rx_pack.vhd library STD, IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; package RX_PACK is function EQUAL (A: std_logic_vector; B: std_logic_vector) return std_logic; package body RX_PACK is function EQUAL (A: std_logic_vector; B: std_logic_vector) return std_logic is begin if A = B then return '1'; else return '0'; end if; end EQUAL; end RX_PACK; --======================================================================== --decode_frame.vhd library IEEE; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; library work; use work.RX_PACK.all; entity DECODE_FRAME is port( end DECODE_FRAME; architecture RTL of DECODE_FRAME is begin END_OF_PAYLOAD: process (RX_CLK) begin if RX_CLK'event and RX_CLK = '1' then if RESET = '1' then LENGTH_MATCH <= '0'; LESS_THAN_256 <= '0'; LENGTH_ZERO <= '0'; LENGTH_ONE <= '0'; elsif CE_IN = '1' then if END_OF_FRAME = '1' then LENGTH_MATCH <= '0'; elsif DATA_FIELD = '1' then LENGTH_MATCH <= EQUAL(LENGTH_TYPE(10 downto 0), std_logic_vector(DATA_COUNTER(10 downto 0)) ); end if; LESS_THAN_256 <= LENGTH_FIELD and FIELD_COUNTER(0) and EQUAL(RXD, "00000000"); LENGTH_ONE <= LENGTH_FIELD and FIELD_COUNTER(1) and EQUAL(RXD, "00000001") and LESS_THAN_256 and (not LT_CHECK_DISABLE); LENGTH_ZERO <= LENGTH_FIELD and FIELD_COUNTER(1) and EQUAL(RXD, "00000000") and LESS_THAN_256 and (not LT_CHECK_DISABLE); end if; end if; end process END_OF_PAYLOAD; --======================================================================== end RTL; --======================================================================== Quote [Synth 8-1031] equal is not declared ["..........................decode_frame.vhd":212] В Vivado и rx_pack.vhd decode_frame.vhd - в library work поместил. В compile_order правильно: rx_pack.vhd, затем decode_frame.vhd Что делаю не так ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 29 июня, 2022 Опубликовано 29 июня, 2022 · Жалоба library STD, IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; перед package body? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slkhome 0 30 июня, 2022 Опубликовано 30 июня, 2022 · Жалоба https://www.nandland.com/vhdl/examples/example-package.html package .... ... end package ...; .... package body... .... end package body...; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha 0 4 июля, 2022 Опубликовано 4 июля, 2022 · Жалоба On 6/29/2022 at 12:42 PM, andrew_b said: library STD, IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; перед package body? Все так. rx_pack попал в - unreferenced ! Например, Константы не видятся: Quote EXTENSION_FLAG <= EQUAL(RXD_REG6, EXTENSION_CODE) and RX_ERR_REG6 and (not RX_DV_REG6); PRE_FALSE_CARR_FLAG <= EQUAL(RXD_REG5, FALSE_CARRIER_CODE) and RX_ERR_REG5 and (not RX_DV_REG5); --=========================================================================================== [Synth 8-1031] extension_code is not declared ["/...../rx.vhd":745] Проект целиком Vivado_2019: https://drive.google.com/file/d/1rT2sp_43RfLxwJgWoljNy9uKXzIvp_mD/view?usp=sharing rx.vhd rx_pack.vhd ptp_pack.vhd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha 0 4 июля, 2022 Опубликовано 4 июля, 2022 · Жалоба Вопрос снят. Переименовал library work в eth, и файлы поместил в эту lib. - Заработало. Почему vivado игнорирует library work- загадка природы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться