|
|
  |
помогите правильно правильно составить схему, выделение регистра с максимальным значением |
|
|
|
May 8 2012, 09:42
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 19-02-12
Пользователь №: 70 349

|
выскакивает такая ошибка: ERROR:Xst:2587 - Port <S0> of instance <XLXI_72> has different type in definition <copy_of_m2_1>. - имеет другой тип в определении
Подскажите пожалуйста, это мне надо другое обозначение в строке S0 : in STD_LOGIC_VECTOR (1 downto 0); ??
entity copy_of_m2_1 is Port ( D0 : in STD_LOGIC_VECTOR (15 downto 0); D1 : in STD_LOGIC_VECTOR (15 downto 0); S0 : in STD_LOGIC_VECTOR (1 downto 0); O : out STD_LOGIC_VECTOR (15 downto 0)); end copy_of_m2_1; architecture Behavioral of copy_of_m2_1 is begin O <= D0 when S0=0 else D1; process (S0) begin if S0=0 then O <= D0; else -- elsif S=0 then O <= D1; end if; end process; end Behavioral;
|
|
|
|
|
May 8 2012, 12:59
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 19-02-12
Пользователь №: 70 349

|
Цитата(ivanoffer @ May 8 2012, 12:51)  Оставьте что-то одно из двух
O <= D0 when S0=0 else D1;
или
process (S0) begin if S0=0 then O <= D0; else -- elsif S=0 then O <= D1; end if; end process; тоже самое выдает, попробовал и так, и так
|
|
|
|
|
May 10 2012, 13:39
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 14-12-11
Пользователь №: 68 851

|
Порт S0 правильно подключен в схематике? Может вы на него сигнал, а не шину завели?
|
|
|
|
|
May 10 2012, 14:25
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 19-02-12
Пользователь №: 70 349

|
вот схема, вроде как правильно S0 подключено, утром пришла такая мысль - S0 : in STD_LOGIC_VECTOR (1 downto 0); - может надо другое обозначение? вектор это ж когда множество данных проходит, а тут всего 0 или 1.
Эскизы прикрепленных изображений
|
|
|
|
|
May 11 2012, 05:06
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 14-12-11
Пользователь №: 68 851

|
Цитата(sakol @ May 10 2012, 18:25)  вот схема, вроде как правильно S0 подключено, утром пришла такая мысль - S0 : in STD_LOGIC_VECTOR (1 downto 0); - может надо другое обозначение? вектор это ж когда множество данных проходит, а тут всего 0 или 1. Ну, судя по схеме, неправильно подключено. К S0 подключен одиночный сигнал, а в блоке, S0 описан как шина. Вот и ошибка.
Сообщение отредактировал Barktail - May 11 2012, 05:07
|
|
|
|
|
May 11 2012, 06:29
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 19-02-12
Пользователь №: 70 349

|
он и должен быть как одиночный сигнал, только как его описать теперь правильно?
|
|
|
|
|
May 11 2012, 06:36
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 14-12-11
Пользователь №: 68 851

|
Цитата(sakol @ May 11 2012, 10:29)  он и должен быть как одиночный сигнал, только как его описать теперь правильно? S0 : in STD_LOGIC
|
|
|
|
|
May 11 2012, 07:23
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 19-02-12
Пользователь №: 70 349

|
а, ну это я вчера в книге почитал, поставил так, только теперь надо по другому описать S0. ERROR:HDLParsers:808 - "F:/xilinx/1111/copy_of_m2_1.vhd" Line 39. = can not have such operands in this context. ERROR:HDLParsers:808 - "F:/xilinx/1111/copy_of_m2_1.vhd" Line 42. = can not have such operands in this context. это линии O <= D0 when S0=0 else D1; и if S0=0 then
entity copy_of_m2_1 is Port ( D0 : in STD_LOGIC_VECTOR (15 downto 0); D1 : in STD_LOGIC_VECTOR (15 downto 0); S0 : in STD_LOGIC; O : out STD_LOGIC_VECTOR (15 downto 0)); end copy_of_m2_1;
architecture Behavioral of copy_of_m2_1 is begin O <= D0 when S0=0 else D1; process (S0) begin if S0=0 then O <= D0; else -- elsif S=0 then O <= D1; end if; end process; end Behavioral;
|
|
|
|
|
May 11 2012, 07:45
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 14-12-11
Пользователь №: 68 851

|
потому что сигнал надо сравнивать не с числом. Правильно будет S0 = '0'. Сигнал сравнивают с логическим нулем. И процесс можно убрать. Достаточно оставить только O <= D0 when S0='0' else D1;
Сообщение отредактировал Barktail - May 11 2012, 07:46
|
|
|
|
|
May 11 2012, 08:46
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 19-02-12
Пользователь №: 70 349

|
воооо, заррработало! спасибо за четкое обьяснение! я пробовал делать так с ковычками, но тогда у меня в описании был вектор теперь займусь отладкой самой схемы и выставления временных параметров
Сообщение отредактировал sakol - May 11 2012, 08:59
|
|
|
|
|
May 20 2012, 17:22
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 19-02-12
Пользователь №: 70 349

|
Народ, подскажите пожалуйста, я могу для проверки задать свои числа (на входе), чтобы проверить схему ? вот на эти элементы. (они какбы подразумевают внешние данные)
Эскизы прикрепленных изображений
|
|
|
|
|
May 21 2012, 09:24
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 14-12-11
Пользователь №: 68 851

|
Цитата(sakol @ May 20 2012, 21:22)  Народ, подскажите пожалуйста, я могу для проверки задать свои числа (на входе), чтобы проверить схему ?
вот на эти элементы. (они какбы подразумевают внешние данные) можете. Создаете VHDL Test Bench и прописываете воздействия.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|