Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SOPC система и нарушение по Hold
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Fynjisx
Собрал систему в SOPC и решил провести TimingAnalyze.
ПЛИС затактирована от внешнего генератора 50MHz. Входной клок clk_0 идет на pll, которое выдает на свой выход pll_c0 частоту 50MHz. От этого выхода затактированы все узлы системы.
Создал .sdc:
CODE
create_clock -period 20.000 -name clk_0 [get_ports {clk_0}]

derive_pll_clocks


При создании Timing Netlist выбрал:
- модель slow corner,
- post map llist,
- Zero IC delays - отмечено.

Далее сгенерил отчеты: Setup и Hold Summary. И сразу получил нарушение по Hold. По Setup вроде нормально.
Как исправить ситуацию не знаю. Подскажите в каком направлении рыть?

vadimuzzz
выкладывайте весь отчет таймквеста, по этому отрывку ничего не видно.
Fynjisx
Цитата(vadimuzzz @ Aug 6 2013, 18:15) *
выкладывайте весь отчет таймквеста, по этому отрывку ничего не видно.

а как его можно сделать полностью на одном листе?
Stewart Little
Цитата(Fynjisx @ Aug 9 2013, 07:43) *
а как его можно сделать полностью на одном листе?

Ищите файл отчета таймквеста в папке Вашего проекта (что-то типа <имя_проекта>.sta.rpt).
Fynjisx
Цитата(Stewart Little @ Aug 9 2013, 11:53) *
Ищите файл отчета таймквеста в папке Вашего проекта (что-то типа <имя_проекта>.sta.rpt).

Спасибо. Нашел. Прикрепляю. Попутный вопрос возник: Стоит ли делать Временной анализ для собранной системы? Что-то я здесь на форуме не встречал людей с подобными вопросами.
Ещё заметил вот что: SOPC Builder сам отчасти собирает файл *.sdc, но в нем нет create_clock. Я дополнительно создал свой *.sdc, в котором прописал:
CODE
create_clock -period 20.000 -name clk_0 [get_ports {clk_0}]

derive_pll_clocks

vadimuzzz
явного криминала не увидел, бросилось в глаза только отличие от того, что обычно у меня:
Код
create_clock -name "sys_clk" -period 40ns [get_ports {sys_clk}] -waveform {0.000ns 20.000ns}
derive_pll_clocks -create_base_clocks

если есть возможность, выложите проект целиком (только все лишнее убрать)
Fynjisx
Цитата(vadimuzzz @ Aug 12 2013, 11:40) *
явного криминала не увидел, бросилось в глаза только отличие от того, что обычно у меня:
Код
create_clock -name "sys_clk" -period 40ns [get_ports {sys_clk}] -waveform {0.000ns 20.000ns}
derive_pll_clocks -create_base_clocks

если есть возможность, выложите проект целиком (только все лишнее убрать)

а вчем разница место написания:
CODE
derive_pll_clocks
и
derive_pll_clocks -create_base_clocks

все таки странно получается проект не совсем уж наворочен, а по hold уже произошло зашкаливание

Цитата
Приветствую!
Одолел я таки запуск вашего проекта, правда только в 11-м квартусе. Но это видимо и не важно. Насколько я понял, ворнинг вполне законный, а причина - невозможность утоптать времянки для on-chip memory. Решения я пока не придумал, но искать имеет смысл среди следующих вариантов:
1) снижение тактовой,
2) уменьшение объема on-chip memory либо
3)что-то типа конвейера для on-chip memory.
Третий вариант я смутно представляю, но вряд ли он безнадежный.
С уважением, Вадим


Вы считаеате сниженние тактовой сможет помочь при нарушении hold? Щас буду пробовать снижать, но пока для себя не могу обосновать это..
А вообще как Вы считаете это нормально что при всей используемой памяти и при относительно невысокой частоте возникает такое нарушение?
Я думаю система может работать и на более высоких частотах при всей используемой памяти... или я ошибаюсь?
Fynjisx
Цитата
Вы считаеате сниженние тактовой сможет помочь при нарушении hold? Щас буду пробовать снижать

Снизил. Непомогло.
РЕшил пересобрать проект. Выбросил все оттуда и по новой поставил. И опять таже петрушка. Что за хрень. Как работать вообще. У других посмотрел система наворочена так что мама не горюй, да ещё и на 100МГц работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.