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

 
 
> Signal txDataRdy cannot be synthesized! Почему?, Вопрос по слилю программированияна VHDL
TriD
сообщение Dec 29 2004, 14:21
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Переодически (с завидным постоянством) возникает следующая ошибка:

Signal txDataRdy cannot be synthesized, bad synchronous description.

Вот процесс:
process(clk50, ps2chng)
begin
if rising_edge(ps2chng) then
txDout <= ps2scan;
txDataRdy <= '1';
elsif falling_edge(clk50) then
if txFull = '0' and txWriteEn = '0' and txDataRdy = '1' then
txWriteEn <= '1';
txDataRdy <= '0';
else
txWriteEn <= '0';
end if;
end if;
end process;

Я не могу понять, почему так писать нельзя! К сожалению, все незначащие пробелы были удалены системой (как их сохранить не знаю).

Прошу сильно не пинать, я только осваиваю этот язык. После ассемблера для микроконтроллеров, VHDL имеет несколько иные принципы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Elresearch
сообщение Dec 29 2004, 15:06
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 29-12-04
Пользователь №: 1 730



Если сигнал ps2chng асинхронен clk50 и его частота намного меньше clk50, то предлагаю следующее (возможны ляпы :-) ):

process(clk50)
begin

if falling_edge(clk50) then
-- для перехода сигнала ps2chngв домен clk50
ps2chng_old<=ps2chng;
ps2chng_syn<=ps2chng_old;

if txFull = '0' and txWriteEn = '0' and ps2chng_old = '1' and ps2chng_syn = '0' then
txWriteEn <= '1';
txDout <= ps2scan;
else
txWriteEn <= '0';
end if;

end if;
end process;
Go to the top of the page
 
+Quote Post
TriD
сообщение Dec 29 2004, 15:16
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Идею уловил. Сейчас попробую.

Все прекрасно работает! Спасибо за помощь! smile.gif


P.S. Да... после микроконтроллеров придется радикально перестраивать мышление!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:02
Рейтинг@Mail.ru


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