реклама на сайте
подробности

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> помогите правильно правильно составить схему, выделение регистра с максимальным значением
andrew_b
сообщение Apr 25 2012, 08:45
Сообщение #46


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(stu @ Apr 25 2012, 09:32) *
Синтезируются в одинаковую схему
Описание с процессом будет неправильно симулироваться.
Go to the top of the page
 
+Quote Post
sakol
сообщение Apr 28 2012, 09:57
Сообщение #47


Участник
*

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



ниодин из вариантов не сработал sad.gif
Go to the top of the page
 
+Quote Post
sakol
сообщение May 8 2012, 09:42
Сообщение #48


Участник
*

Группа: Участник
Сообщений: 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;
Go to the top of the page
 
+Quote Post
ivanoffer
сообщение May 8 2012, 09:51
Сообщение #49


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 21-07-11
Пользователь №: 66 348



Оставьте что-то одно из двух

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;
Go to the top of the page
 
+Quote Post
sakol
сообщение May 8 2012, 12:59
Сообщение #50


Участник
*

Группа: Участник
Сообщений: 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;


тоже самое выдает, попробовал и так, и так
Go to the top of the page
 
+Quote Post
Barktail
сообщение May 10 2012, 13:39
Сообщение #51


Участник
*

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



Порт S0 правильно подключен в схематике? Может вы на него сигнал, а не шину завели?
Go to the top of the page
 
+Quote Post
sakol
сообщение May 10 2012, 14:25
Сообщение #52


Участник
*

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



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

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Barktail
сообщение May 11 2012, 05:06
Сообщение #53


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
sakol
сообщение May 11 2012, 06:29
Сообщение #54


Участник
*

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



он и должен быть как одиночный сигнал, только как его описать теперь правильно?
Go to the top of the page
 
+Quote Post
Barktail
сообщение May 11 2012, 06:36
Сообщение #55


Участник
*

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



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

S0 : in STD_LOGIC
Go to the top of the page
 
+Quote Post
sakol
сообщение May 11 2012, 07:23
Сообщение #56


Участник
*

Группа: Участник
Сообщений: 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;
Go to the top of the page
 
+Quote Post
Barktail
сообщение May 11 2012, 07:45
Сообщение #57


Участник
*

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



потому что сигнал надо сравнивать не с числом. Правильно будет S0 = '0'. Сигнал сравнивают с логическим нулем. И процесс можно убрать. Достаточно оставить только
O <= D0 when S0='0' else D1;

Сообщение отредактировал Barktail - May 11 2012, 07:46
Go to the top of the page
 
+Quote Post
sakol
сообщение May 11 2012, 08:46
Сообщение #58


Участник
*

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



воооо, заррработало! 08.gif
спасибо за четкое обьяснение!

я пробовал делать так с ковычками, но тогда у меня в описании был вектор

теперь займусь отладкой самой схемы и выставления временных параметров

Сообщение отредактировал sakol - May 11 2012, 08:59
Go to the top of the page
 
+Quote Post
sakol
сообщение May 20 2012, 17:22
Сообщение #59


Участник
*

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



Народ, подскажите пожалуйста, я могу для проверки задать свои числа (на входе), чтобы проверить схему ?

вот на эти элементы. (они какбы подразумевают внешние данные)

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Barktail
сообщение May 21 2012, 09:24
Сообщение #60


Участник
*

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



Цитата(sakol @ May 20 2012, 21:22) *
Народ, подскажите пожалуйста, я могу для проверки задать свои числа (на входе), чтобы проверить схему ?

вот на эти элементы. (они какбы подразумевают внешние данные)

можете. Создаете VHDL Test Bench и прописываете воздействия.
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01489 секунд с 7
ELECTRONIX ©2004-2016