zombi 0 19 апреля, 2021 Опубликовано 19 апреля, 2021 · Жалоба Подскажите, какую величину -max и -min в констрейнах set_input_delay указать что бы обеспечить выполнение требований для обоих режимов SD карты? Плис формирует клок путём деления большей частоты, а коэффициент деления задаётся внешним контроллером. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба Неужели никто не знает? Может я не правильно сформулировал вопрос. Попробую спросить по другому. Как правильно указать констрейны для входного интерфейса плис в режиме SDR при условии что частота может быть разной? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 25 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба 48 минут назад, zombi сказал: Как правильно указать констрейны для входного интерфейса плис в режиме SDR при условии что частота может быть разной? Указать максимальую частоту и параметры для неё. На остальных частотах будет работать автоматом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба Я вот тоже было так подумал, но хорошо что ув. aaarrr в теме "MiroSD UHS-I инициализация на 50 МГц" обратил моё внимание на то, что на диаграммах указан интервал выставления данных (TODLY max) для режима default (первая картинка) относительно предыдущего отрицательного фронта клока, а не относительно предыдущего нарастающего (как обычно и указывают для режимов SDR (кстати на второй картинке именно так)). И вот теперь я в замешательстве... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба 11 minutes ago, zombi said: И вот теперь я в замешательстве... Посчитайте для Ваших реальных частот, которые будут в проекте, в каком случае будет наихудший тайминг - по тому и ориентируйтесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 25 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба 12 минут назад, zombi сказал: И вот теперь я в замешательстве... Картинки не похоже на тайминг DDR. Скорее SDR Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба 1 minute ago, MegaVolt said: Картинки не похоже на тайминг DDR. Скорее SDR А почему они должны быть похожи на DDR? обе картинки для SDR! 6 minutes ago, Yuri124 said: Посчитайте для Ваших реальных частот, которые будут в проекте, в каком случае будет наихудший тайминг - по тому и ориентируйтесь. Считаю : для частоты 25 МГц параметр -max констрейна set_input_delay должен быть равен половине периода + TODLYmax = 20 нс + 14 нс = 34 нс для частоты 50 МГц судя по диаграмме TODLYmax = 14 нс Так какую же величину max мне в констрейне указывать, 34 или 14 ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба 10 minutes ago, zombi said: Так какую же величину max мне в констрейне указывать, 34 или 14 ??? по расчету моему - без разницы. В обоих случаях до latch clock rising edge имеется 6 нс. Как вариант - задать тайминги для одной частоты, потом - заменив настройки в файле sdc для другой частоты - убедиться, что слаки положительны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба Мы делаем немного хотрее. Тул поддерживает несколько клоков в цепях по которым и делается анализ. Так в последнем проекте глобально по всему кристаллу проходило 5 клоковб 2 из которых были отличной частоты от основной. Для каждого клока делался констрейн и прописывался по всем нужным критическим точкам. Ну и понятное дело - не все эндпоинты получали одинаковый набор клоков. Отсюда можете попробовать задать несколько частот и констрейнов под них и сделать эксклюзивными (они ведь физически не могут быть в кристалле одновременно). Возможно у тулзы получится сделать нужные рассчёты и подтянуть нужную времянку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 20 апреля, 2021 Опубликовано 20 апреля, 2021 · Жалоба Честно говоря вообще ничего не понял, наверно по неопытности. Вы предлагаете создать две виртуальные частоты и для каждой частоты задать set_input_delay для одних и тех же портов? А так можно? И у меня разные частоты формируется самой плис на конкретном пине. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 21 апреля, 2021 Опубликовано 21 апреля, 2021 · Жалоба 16 hours ago, zombi said: Вы предлагаете создать две виртуальные частоты и для каждой частоты задать set_input_delay для одних и тех же портов? А так можно? И у меня разные частоты формируется самой плис на конкретном пине. Я предлагаю создать 2,3-да_сколько_угодно частот на одном порте простым объявлением (или дженерейтед клок). Фактически они будудут -logically_exclusive или -physically_exclusive так как одновременно не могут присутствовать, но в завосомости от настроек, будут переключаться. И далее на эндпоинтах (критических точках) уже заниматься конфигурацией необходимых констрейнов для конкретной частоты. Если нигде нет -stop_propagation то по умолчанию все клоки распространяются по всему клоковому дереву, а уже сама IDE должна разруливать подстройку констрейнов под конкретную частоту. Важный момент, если эти частоты генерируются в ПЛИС и выходят наружу, они должны быть обьявлены как частоты, а не как данные (для понимания тулами). Отсюда появится несколько частот по одним и тем же цепям. И да, с ниг придётся сделать ещё виртуальные, так как input/output delay создаётся только к виртуальным частотам. По вопросу насколько это можно - нужно проверить в конкретном IDE. Каденс тулы работают с такими вещами запросто, остальное нужно пробовать. Заодно по результатам расскажете где поднялось, а где нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 1 21 апреля, 2021 Опубликовано 21 апреля, 2021 (изменено) · Жалоба Возможно, можно создать несколько различных клоков на одном выводе ПЛИС (и каждому указать свои констрейны) - по вот как для поступающего извне клока можно сделать: Quote # Assign two clocks to an input port that are switched externally create_clock -period 10 -name clk100Mhz [get_ports clk] create_clock -period 6.667 -name clk150Mhz -add [get_ports clk] https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/manual/mnl_sdctmq.pdf Quote create_generated_clock [-add] [-divide_by ] [-duty_cycle ] [-edge_shift ] [-edges ] [-invert] [-master_clock ] [-multiply_by ] [-name ] [-offset ] [-phase ] -source -add: Add clock to existing clock node -divide_by : Division factor -duty_cycle : Specifies the duty cycle as a percentage of the clock period--accepts floating point values -edge_shift : List of edge shifts -edges : List of edge values -invert: Invert the clock waveform -master_clock : Specifies clock of the source node -multiply_by : Multiplication factor -name : Name of generated clock -offset : Specifies the offset as an absolute time shift -phase : Specifies the phase shift in degrees -source : Source node for the generated clock : List or collection of targets Изменено 21 апреля, 2021 пользователем Yuri124 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться