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

 
 
 
Reply to this topicStart new topic
> Stratix II. Задание Assignments
Ethereal
сообщение Jan 17 2009, 22:31
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 7-05-08
Из: РФ, Москва
Пользователь №: 37 354



Добрый день.
В данный момент пишу модуль под ПЛИС Altera в среде Quartus 7.2. Все инструменты родные (то есть не используется возможность подключения внешних синтезаторов, фиттеров и прочего).
У меня такой вопрос. Я создал проект. Создал файлы с описанием функциональных единиц. Задал требуемую fmax. Поставил тип оптимизации "Speed". Поставил все советуемые Ассистентом настройки компилятора и фиттера.
Проект компилируется, прогоняется через Classic Timing Analizer. Анализатор сообщает, что получившаяся прошивка удовлетворяет временным требованиям.
Но часто еще на этапе симуляции симулятор выдает сообщения о превышении th (оптимизация th вдоль всех путей включена). При прошивке в ПЛИС в качестве выходного результата получается бред (не всегда, но зависит от компиляции - то все хорошо, то все не очень хорошо).
Входной клок идет на ФАПЧ с коэфициентом 1:1. Все блоки дезайна сделаны синхронными и тактируются с выхода ФАПЧ.
Существует клок входных данных, совпадающий по частоте с входным. Входные данные через память переводятся в клоковую область выхода ФАПЧ.
Все клоки (кроме PLL) описаны как клоки в Assignments manager.
Загрузка ПЛИС - 10%.

Основной вопрос: что я делаю не так?
Подпункт 1: Почему при проверке анализатором все хорошо, но при симуляции и в реальной работе все плохо?
Подпункт 2: Возможно стоит задавать еще какие-то требования?


--------------------
SystemVerilog - язык, заточенный Альтерой под свои кристаллы теми же приемами использования примитивов, что и AHDL. ©
Go to the top of the page
 
+Quote Post
dvladim
сообщение Jan 18 2009, 10:00
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Цитата(Ethereal @ Jan 18 2009, 01:31) *
Подпункт 1: Почему при проверке анализатором все хорошо, но при симуляции и в реальной работе все плохо?
Подпункт 2: Возможно стоит задавать еще какие-то требования?

1. Вы сами ответили на этот вопрос - нарушаются th.
2. В качестве констрейнов задайте не только максимальную частоту, а еще ограничения на входные и выходные пины: tsu, th, tco(вроде).

Можно еще попробовать разместить граничные триггера в IO эелементах.
Go to the top of the page
 
+Quote Post
murmel1
сообщение Jan 18 2009, 10:05
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 2-11-08
Из: Ростов-на-Дону
Пользователь №: 41 331



Цитата(dvladim @ Jan 18 2009, 13:00) *
Можно еще попробовать разместить граничные триггера в IO эелементах.

Это вторично. Это влияет на tsu/th/tco, но в первую очередь необходимо задать требования на tsu/th/tco. С равной вероятностью может улучшить, но может и стать еще хуже.
Go to the top of the page
 
+Quote Post
sazh
сообщение Jan 18 2009, 10:50
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(Ethereal @ Jan 18 2009, 01:31) *
В данный момент пишу модуль под ПЛИС Altera в среде Quartus 7.2. Все инструменты родные (то есть не используется возможность подключения внешних синтезаторов, фиттеров и прочего).
Но часто еще на этапе симуляции симулятор выдает сообщения о превышении th (оптимизация th вдоль всех путей включена). При прошивке в ПЛИС в качестве выходного результата получается бред (не всегда, но зависит от компиляции - то все хорошо, то все не очень хорошо).
Входной клок идет на ФАПЧ с коэфициентом 1:1. Все блоки дезайна сделаны синхронными и тактируются с выхода ФАПЧ.
Подпункт 1: Почему при проверке анализатором все хорошо, но при симуляции и в реальной работе все плохо?
Подпункт 2: Возможно стоит задавать еще какие-то требования?


1. Если говорит хорошо, значит хорошо.
Проблема в родных инструментах. Очень трудно в ручную графически во временном моделировании создать входные воздействия с соблюдением th
да еще для памяти. Пропуститте входные данные через регистр на клоке с pll. (Это поможет справиться с рисованием входных воздействий в симуляторе квартуса. Кстати - поставьте 8.1. Он при несоблюдении временных граничений будет выдавать вам неопределеености при моделировании. Чтобы не казалось, что все хорошо).
Дело скорее всего в проекте. При переносе данных из одного клокового домена в системный.
Go to the top of the page
 
+Quote Post
Ethereal
сообщение Jan 18 2009, 12:11
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 7-05-08
Из: РФ, Москва
Пользователь №: 37 354



Извиняюсь, неточно сформулировал.
Ошибка в th происходит в клоковом домене PLL. То есть данные записались в память, считались, прошли определенную обработку, и где-то в середине конвеера th вылезает за пределы допустимого. А не на входном каскаде.

Задание tco, tsu, th, tpd влияет же только на распространение сигнала от пинов до регистров и от регистров (комбинаторики) до пинов?


--------------------
SystemVerilog - язык, заточенный Альтерой под свои кристаллы теми же приемами использования примитивов, что и AHDL. ©
Go to the top of the page
 
+Quote Post

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

 


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


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