Amper25 0 19 марта, 2008 Опубликовано 19 марта, 2008 (изменено) · Жалоба Вообщем такое дело: Работаю над скрещиванием ACEX1K(довольно старая ПЛИС от Altera) и SDRAM. На вход ПЛИСА подается тактовый сигнал 60MHz, который в самом плисе используется SDRAM контроллером, а также выводится на одну из ног ПЛИС (SDRAM_CLK), которая соединятеся с тактовым входом SDRAM. Проще говоря, тактовый сигнал идет транзитом через ПЛИС. Проблема заключатся в том, что по непонятным причинам задержки Tco от входного пина(CLOCK_IN) до выходных шин SDRAM интерфейса и до выхода SDRAM_CLK практически одинаковы. (10,4nS и 10.8nS) То есть получается что клок и данные на выходе появляются одновременно. Естественно такой вариант но подойдет. Причем минимальное Tco для тактового сигнала удается сделать 10,6nS, а для линий SDRAM интерфейса оно получается в диапазоне 9,8 .. 15ns. Пробовал ставить LCELL по CLOCK( ставил только на входе SDRAM контроллера, на выходной пин пропускал клок напрямую), тогда квартус не может определить Tco для клока, говорит что такого временного пути не существует. :( Посоветуйте что делать в таком случае, как отделить CLOCK от DATA, даже неважно вперед или назад. PLL и прочего в данной ПЛИС нет. Плату переделывать не могу. Да, что еще за глюк у квартуса - Иногда пропадает графа tpd из отчета после компиляции, хотя в Assigment они прописаны? Изменено 19 марта, 2008 пользователем Amper25 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 19 марта, 2008 Опубликовано 19 марта, 2008 · Жалоба можно на sdram выводить инверсный клок - так будет проще всего соблюсти сетапы и холды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 20 марта, 2008 Опубликовано 20 марта, 2008 · Жалоба У меня тактовая для SDRAM тоже пропускается через FPGA(Cyclone II). Я сделал следующее. Для тактовой я сделал минимальное время прохождения через FPGA. Глобальный клок, установил Maximum Delay 10нс в TimeQuest Timing Analyzer. Для остальных сигналов SDRAM, наоборот, установил Minimum Delay13нс и Maximum Delay 14нс. Вроде все сетапы и холды в норме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 20 марта, 2008 Опубликовано 20 марта, 2008 · Жалоба Я конечно не суперспециалист, но - нельзя один из клоков для задержнки через пару инверторов пропустить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 20 марта, 2008 Опубликовано 20 марта, 2008 · Жалоба Если уж вообще ничего не поможет, можно в макcплюсe попробовать проект нарисовать... Хотя конечно тоже путь не очень:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amper25 0 20 марта, 2008 Опубликовано 20 марта, 2008 (изменено) · Жалоба У меня тактовая для SDRAM тоже пропускается через FPGA(Cyclone II). Я сделал следующее. Для тактовой я сделал минимальное время прохождения через FPGA. Глобальный клок, установил Maximum Delay 10нс в TimeQuest Timing Analyzer. Для остальных сигналов SDRAM, наоборот, установил Minimum Delay13нс и Maximum Delay 14нс. Вроде все сетапы и холды в норме. Да я бы с радостью так и сделал. Но проблема в том, что ACEX1K - древняя ПЛИС 2000 или 2001 года разработки. Соответственно, квартус поддерживает не весь набор инструментов. Вообщем для нее можно пользоватся только Classical Timing Analiser. :( Я конечно не суперспециалист, но - нельзя один из клоков для задержнки через пару инверторов пропустить? Квартус просто их "упростит". + Непонятно почему, Clock который прошел через LCELL и пр, он перестает ассоциировать с исходным клоком. (не может посчитать для него задержку) Вообще именно для этой ПЛИС Quartus7.2 работает как то глючно. Может Альтеровцы не потрудились довести до ума, так как её уже практически никто не пользует? Если уж вообще ничего не поможет, можно в макcплюсe попробовать проект нарисовать... Хотя конечно тоже путь не очень Спасибо, но это уже в крайнем случае. Тем более я с максплюсом практически не работал, сразу сел за квартус. Попробую еще проинвертировать клок. Изменено 20 марта, 2008 пользователем Amper25 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 20 марта, 2008 Опубликовано 20 марта, 2008 · Жалоба Чтобы не "упростил" может подключить какую-нибудь "нагрузку" после первого инвертора? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvgenyNik 0 20 марта, 2008 Опубликовано 20 марта, 2008 · Жалоба Чтобы не "упростил" может подключить какую-нибудь "нагрузку" после первого инвертора? Он всё равно упростит, а нагрузку включит через инвертор :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 20 марта, 2008 Опубликовано 20 марта, 2008 · Жалоба Можно на выходной клок повесить емкость, пик 10-50. Как раз задержите на несколько нан. А вообще, это все чревато большой нестабильностью по питанию/температуре; надо использовать pll для таких задач. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
torik 0 20 марта, 2008 Опубликовано 20 марта, 2008 · Жалоба Ставьте внешнюю задержку на тех же инверторах) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amper25 0 20 марта, 2008 Опубликовано 20 марта, 2008 · Жалоба Спасибо за советы. Обошелся простым LCELL последовательно с клоком - для контроллера и напрямую - для выхода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться