andrew_b 16 22 июня, 2006 Опубликовано 22 июня, 2006 · Жалоба entity mult_test is port ( clock : in std_logic; aclr : in std_logic; ena : in std_logic; data_a : in std_logic_vector(8 downto 0); data_b : in std_logic_vector(8 downto 0); result : out std_logic_vector([b]data_a'left +data_b'left[/b]+1 downto 0) ); end mult_test; Оба-на! А с каких пор стало можно определять сигнал в интерфейсе через другие сигналы того же интерфейса? Modelsim такое не ест: Model Technology ModelSim SE vcom 6.1d Compiler 2006.01 Jan 23 2006 -- Loading package standard -- Loading package std_logic_1164 -- Loading package numeric_std -- Compiling entity mult_test ###### mult_test.vhd(12): result : out std_logic_vector(data_a'left +data_b'left+1 downto 0) ** Error: mult_test.vhd(12): Object 'data_a' cannot be used within the same interface as it is declared. ** Error: mult_test.vhd(12): Object 'data_b' cannot be used within the same interface as it is declared. ** Error: mult_test.vhd(12): No feasible entries for infix operator "+". ** Error: mult_test.vhd(12): Bad expression in left operand of infix expression. ** Error: mult_test.vhd(12): Bad expression in left bound of range expression. ** Error: mult_test.vhd(12): Type error in range expression. ###### mult_test.vhd(14): end mult_test; ** Error: mult_test.vhd(14): VHDL Compiler exiting Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 22 июня, 2006 Опубликовано 22 июня, 2006 · Жалоба Как оказалось - это поддерживают только синтезаторы. И не надо придираться, цель была – синтезировать умножитель и не более. Тем более код писался в адскую жару. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться