D-Luxe 0 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба Ребят я новичок в FPGA программировании. Немного не понимаю как происходит процесс проектирования устройств. Допустим я написал кусок на VHDL. Моделирую схему в Aldec'e. Моделирование проходит успешно. Отлаживаю на железе, проект падает при работе на высокой частоте(на низкой работает нормально). Приходится выводить контрольные точки схемы на логический анализатор и разбираться в чем причина. Как вы проектируете, отлаживаете схемы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба Отлаживаю на железе, проект падает при работе на высокой частоте(на низкой работает нормально). Я в квартусе сразу моделирую на частоте железа! И в устройсве все работает даже на большей частоте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_VM 0 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба C каким ПЛИСом работаете? Схема синхронная? Обычно в средах проектирования после компиляции выдается отчет с "частотными" характеристиками полученной прошивки. Еще можно указывать, что синтезировать прошивку надо с учетом ограничений (см. Timing-Driven Synthesis). Еще можно анализатору задавать характеристики быстродействия и после компиляции будут выводится сообщения одовлетворены они или нет. Я не встречал, что если анализ прошел успешно, то в железе не работает (разве только когда используются preliminary библиотеки). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 6 февраля, 2011 Опубликовано 6 февраля, 2011 · Жалоба Отлаживаю на железе зря. смотрите отчеты по таймингам (критические пути и пр.), а моделируйте в Aldec. ошибку все равно исправлять в коде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
D-Luxe 0 7 февраля, 2011 Опубликовано 7 февраля, 2011 · Жалоба Схемы синхронные, работаю с Virtex4FX. Вообще проект занимает половину кристалла. К нему дописываю дополнительный компонент, моделирую его в Aldec'e, потом вставляю в EDK. Такая методика вобщем. Где в aldec'е можно задать ограничение на частоту? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 7 февраля, 2011 Опубликовано 7 февраля, 2011 · Жалоба Схемы синхронные, работаю с Virtex4FX. Вообще проект занимает половину кристалла. К нему дописываю дополнительный компонент, моделирую его в Aldec'e, потом вставляю в EDK. Такая методика вобщем. Где в aldec'е можно задать ограничение на частоту? Именно про EDK не скажу (работаю с голым ISE), но методика, в общем, одна и та же. Есть *.ucf файл, он содержит User Constraint'ы (различные ограничения, наложенные на проект, в т.ч. и на частоту для clock'ов). Данные в этом файле можно править как руками, так и рядом программ: Constarint Editor (преимущественно для временных ограничений), PACE/Plan Ahead (для ограничений на размещение, например расположение ножек) и пр. Описание User Constraint’ов находятся в файле cgd.pdf. Вам необходимо задать частоту всех входных clock'ов ПЛИС. Если Вы получаете при помощи DLL/PLL дочерние clock'и, то ISE сама рассчитает их параметры из заданных входных частот через параметры DLL/PLL. При Place&Route ISE старается выполнить все ограничения, если что-то не может быть выполнено возникают соответствующие предупреждения. Временной отчёт (*.twx) обычно просматривается при помощи Timing Analiser. Также, в файле xst.pdf можно найти описание synthesis constarint'ов, используемых при синтезе языкового описания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
D-Luxe 0 7 февраля, 2011 Опубликовано 7 февраля, 2011 · Жалоба Именно про EDK не скажу (работаю с голым ISE), но методика, в общем, одна и та же. Есть *.ucf файл, он содержит User Constraint'ы (различные ограничения, наложенные на проект, в т.ч. и на частоту для clock'ов). Данные в этом файле можно править как руками, так и рядом программ: Constarint Editor (преимущественно для временных ограничений), PACE/Plan Ahead (для ограничений на размещение, например расположение ножек) и пр. Описание User Constraint’ов находятся в файле cgd.pdf. Вам необходимо задать частоту всех входных clock'ов ПЛИС. Если Вы получаете при помощи DLL/PLL дочерние clock'и, то ISE сама рассчитает их параметры из заданных входных частот через параметры DLL/PLL. При Place&Route ISE старается выполнить все ограничения, если что-то не может быть выполнено возникают соответствующие предупреждения. Временной отчёт (*.twx) обычно просматривается при помощи Timing Analiser. Также, в файле xst.pdf можно найти описание synthesis constarint'ов, используемых при синтезе языкового описания. То есть констрейны надо писать только на входные частоты? Например у мя в ПЛИС входят 5 частот: 2 для тактирования MGT блока, 2 для тактирования EMAC'а и 5 частота подается на clock generator. А на дочерние от clock generator'а не надо писать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DW0 0 7 февраля, 2011 Опубликовано 7 февраля, 2011 · Жалоба а Вы клоки на специальные входы ПЛИС задаете или куда придется??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
D-Luxe 0 8 февраля, 2011 Опубликовано 8 февраля, 2011 · Жалоба а Вы клоки на специальные входы ПЛИС задаете или куда придется??? Частоты жестко поданы на спец входы. Не я же плату проектировал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 8 февраля, 2011 Опубликовано 8 февраля, 2011 · Жалоба То есть констрейны надо писать только на входные частоты? Да, именно частоты (или периоды) необходимо задать только у входных clock'ов (лучше назначать на связь, относящуюся к положительной половинке входной ножки). И стараться ни в коем случае не задавать их на внутренние линии. Например у мя в ПЛИС входят 5 частот: 2 для тактирования MGT блока, 2 для тактирования EMAC'а и 5 частота подается на clock generator. А на дочерние от clock generator'а не надо писать? Да в этом случае Вам необходимо описать 5 разных constraint для входных частот (я так понял clock generator - это нечто (PLL/DLL и пр.) внутри ПЛИС). Однако, коли частот пять, то должны появиться и cross clock domain переходы - вот для этих переходов понадобится еще наложить некоторое количество дополнительных constraint - по одному на каждый переход на каждое направление перехода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
D-Luxe 0 8 февраля, 2011 Опубликовано 8 февраля, 2011 · Жалоба Спасибо за совет! Clock Generator это действительно PLL и DCM блоки. Насчет входных частот сомнений нет. То есть нужно 2 констрейна на каждый cross clock domain переход? Вообще, как я понимаю после задания констрейнов, timing analyzer будет выдавать ошибку если проект не проходит по частоте? Среда сама может какнить соптимизировать проект чтобы проект прошел по частоте или он тупо выкинет ошибку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 8 февраля, 2011 Опубликовано 8 февраля, 2011 · Жалоба То есть нужно 2 констрейна на каждый cross clock domain переход? Максимум - 2, но ведь не всегда надо переходить в обе стороны, иногда используются и односторонние переходы - всё зависит от конкретной схемотехники. Вообще, как я понимаю после задания констрейнов, timing analyzer будет выдавать ошибку если проект не проходит по частоте? Среда сама может какнить соптимизировать проект чтобы проект прошел по частоте или он тупо выкинет ошибку? Если быть более точным, то timing analyzer в ISE c 9.1 по 11.5 (в остальных не помню) выдаёт только warning: some constraints are not met. При компиляции среда как-то раскладывает элементы и пытается это развести, затем оценивает, с какими constraints проблемы и старается итерационно эти проблемы устранить. В параметрах генерации Post-P&R Static Timing Report есть поле Report Unconstrained Paths, впишите туда 250 - и увидите 250 путей не имеющих constraint'ов. Так Вы увидите, на что именно Вы забыли наложить ограничения; далеко не на всё, что там указано, имеет смысл накладывать ограничения... но ознакомиться с этим списком просто необходимо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
D-Luxe 0 8 февраля, 2011 Опубликовано 8 февраля, 2011 · Жалоба Спасибо за ценную информацию, буду рад если подскажите где еще можно почитать что-нибудь по этой теме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
D-Luxe 0 23 февраля, 2011 Опубликовано 23 февраля, 2011 · Жалоба Еще вопрос. Что такое Chipscope и в каких случаях им надо пользоваться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
o-henry 0 23 февраля, 2011 Опубликовано 23 февраля, 2011 · Жалоба Еще вопрос. Что такое Chipscope и в каких случаях им надо пользоваться? Его придумали чтобы не надо было выводить контрольные точки схемы на логический анализатор Как пользоваться - см. оригинальную документацию или гугл. На русском есть немного здесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться