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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
D-Luxe
сообщение Feb 6 2011, 20:01
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Ребят я новичок в FPGA программировании. Немного не понимаю как происходит процесс проектирования устройств. Допустим я написал кусок на VHDL. Моделирую схему в Aldec'e. Моделирование проходит успешно. Отлаживаю на железе, проект падает при работе на высокой частоте(на низкой работает нормально). Приходится выводить контрольные точки схемы на логический анализатор и разбираться в чем причина.

Как вы проектируете, отлаживаете схемы?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 6 2011, 21:34
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(D-Luxe @ Feb 7 2011, 00:01) *
Отлаживаю на железе, проект падает при работе на высокой частоте(на низкой работает нормально).

Я в квартусе сразу моделирую на частоте железа! И в устройсве все работает даже на большей частоте.
Go to the top of the page
 
+Quote Post
_VM
сообщение Feb 6 2011, 23:12
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 23-03-05
Из: Москва
Пользователь №: 3 625



C каким ПЛИСом работаете?
Схема синхронная?

Обычно в средах проектирования после компиляции выдается отчет с "частотными" характеристиками полученной прошивки.
Еще можно указывать, что синтезировать прошивку надо с учетом ограничений (см. Timing-Driven Synthesis).
Еще можно анализатору задавать характеристики быстродействия и после компиляции будут выводится сообщения одовлетворены они или нет.
Я не встречал, что если анализ прошел успешно, то в железе не работает (разве только когда используются preliminary библиотеки).
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 6 2011, 23:47
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(D-Luxe @ Feb 7 2011, 02:01) *
Отлаживаю на железе

зря. смотрите отчеты по таймингам (критические пути и пр.), а моделируйте в Aldec. ошибку все равно исправлять в коде.
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Feb 7 2011, 08:29
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Схемы синхронные, работаю с Virtex4FX. Вообще проект занимает половину кристалла. К нему дописываю дополнительный компонент, моделирую его в Aldec'e, потом вставляю в EDK. Такая методика вобщем. Где в aldec'е можно задать ограничение на частоту?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Feb 7 2011, 16:38
Сообщение #6


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Цитата(D-Luxe @ Feb 7 2011, 11:29) *
Схемы синхронные, работаю с 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'ов, используемых при синтезе языкового описания.
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Feb 7 2011, 17:44
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Цитата(Boris_TS @ Feb 7 2011, 19:38) *
Именно про 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'а не надо писать?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
DW0
сообщение Feb 7 2011, 21:38
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 9-08-10
Из: Украина
Пользователь №: 58 828



а Вы клоки на специальные входы ПЛИС задаете или куда придется???
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Feb 8 2011, 10:12
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Цитата(DW0 @ Feb 8 2011, 00:38) *
а Вы клоки на специальные входы ПЛИС задаете или куда придется???

Частоты жестко поданы на спец входы. Не я же плату проектировал.


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Feb 8 2011, 11:22
Сообщение #10


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Цитата(D-Luxe @ Feb 7 2011, 20:44) *
То есть констрейны надо писать только на входные частоты?

Да, именно частоты (или периоды) необходимо задать только у входных clock'ов (лучше назначать на связь, относящуюся к положительной половинке входной ножки). И стараться ни в коем случае не задавать их на внутренние линии.

Цитата(D-Luxe @ Feb 7 2011, 20:44) *
Например у мя в ПЛИС входят 5 частот: 2 для тактирования MGT блока, 2 для тактирования EMAC'а и 5 частота подается на clock generator. А на дочерние от clock generator'а не надо писать?

Да в этом случае Вам необходимо описать 5 разных constraint для входных частот (я так понял clock generator - это нечто (PLL/DLL и пр.) внутри ПЛИС).

Однако, коли частот пять, то должны появиться и cross clock domain переходы - вот для этих переходов понадобится еще наложить некоторое количество дополнительных constraint - по одному на каждый переход на каждое направление перехода.
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Feb 8 2011, 14:45
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Спасибо за совет!

Clock Generator это действительно PLL и DCM блоки. Насчет входных частот сомнений нет.

То есть нужно 2 констрейна на каждый cross clock domain переход?

Вообще, как я понимаю после задания констрейнов, timing analyzer будет выдавать ошибку если проект не проходит по частоте? Среда сама может какнить соптимизировать проект чтобы проект прошел по частоте или он тупо выкинет ошибку?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Feb 8 2011, 16:35
Сообщение #12


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Цитата(D-Luxe @ Feb 8 2011, 17:45) *
То есть нужно 2 констрейна на каждый cross clock domain переход?

Максимум - 2, но ведь не всегда надо переходить в обе стороны, иногда используются и односторонние переходы - всё зависит от конкретной схемотехники.

Цитата(D-Luxe @ Feb 8 2011, 17:45) *
Вообще, как я понимаю после задания констрейнов, 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'ов. Так Вы увидите, на что именно Вы забыли наложить ограничения; далеко не на всё, что там указано, имеет смысл накладывать ограничения... но ознакомиться с этим списком просто необходимо.
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Feb 8 2011, 17:19
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Спасибо за ценную информацию, буду рад если подскажите где еще можно почитать что-нибудь по этой теме.


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Feb 23 2011, 13:40
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Еще вопрос. Что такое Chipscope и в каких случаях им надо пользоваться?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
o-henry
сообщение Feb 23 2011, 13:56
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 8-03-06
Из: степей Украины
Пользователь №: 15 069



Цитата(D-Luxe @ Feb 23 2011, 15:40) *
Еще вопрос. Что такое Chipscope и в каких случаях им надо пользоваться?

Его придумали чтобы не надо было
Цитата
выводить контрольные точки схемы на логический анализатор

Как пользоваться - см. оригинальную документацию или гугл.
На русском есть немного здесь.
Go to the top of the page
 
+Quote Post

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

 


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


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