|
|
  |
Разработка проектов для больших кристаллов, Посоветуйте как правильно |
|
|
|
Oct 2 2007, 18:30
|
Группа: Новичок
Сообщений: 8
Регистрация: 2-10-07
Пользователь №: 31 012

|
Разрабатываю кусок проекта в QuartusII 5.1 для StratixII EP2S130. В проекте реализованы интерфейсы с периферийными микросхемами. Ранее я разрабатывал проекты только для маленьких ПЛИСов, типа циклона. Выглядело это примерно так: -рисовалась схема из примитивов и параметризируемых модулей -компиляция, симуляция -исправления -компиляция, симуляция -назначение ножек -финальная компиляция, симуляция и создание прошивок. Здесь я делал всё также - отладил кусок проекта на нужном кристалле (задавал временные требования), но когда назначил пины в соответствии со схемой Э3 (схема выпускалась параллельно, и пины назначались по принципу - как удобно конструктору), моя схема перестала работать. Поехали все задержки. Кое-как заставил работать схему, но при добавлении новых элементов схема ведет себя неадекватно. Всё зависит от фиттера - как он разместит блоки внутри кристалла одному квартусу известно. Пытаюсь лоджик локом группировать куски схемы, которые должны работать быстро и судя по симуляции не успевают это делать - всё равно эффекта нет. Итак - если кто сталкивался с такой проблемой - помогите советом. Как разрабатывать проекты в больших кристаллах, чтобы они не переставали работать после добавления пары регистров и перекомпиляции?
|
|
|
|
|
Oct 3 2007, 17:33
|

Местный
  
Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797

|
Цитата(PPA @ Oct 2 2007, 22:30)  ... которые должны работать быстро ... У Вас синхронный проект? В настройках фиттеру необходимую частоту клока задавали? После компиляции результаты Timing Analyzer смотрели? Входные и выходные сигналы подаются через FastInputReg и FastOutputReg? Это первы причины, которые приходят на ум, читая Вашу ситуацию.
|
|
|
|
|
Oct 3 2007, 18:01
|
Местный
  
Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751

|
1. Ну для начала надо переползти на Q7.1 по моим наблюдениям чуть лучше синтезирует и тактовая проекта получается выше. 2. Задать временные ограничения и тактовые частоты, некоторые блоки (типа регистров capture в DDR) разместить вручную, скомпилировать и как писал DuHast посмотреть репорт Timing Analyzer. 3. Просимулировать разведенный проект. (К примеру вывод тактоваой частоты для внешних чипов памяти напрямую с DEDICATED PLL PIN и через IOB pin сильно различается по задержке  и т.д. )
|
|
|
|
|
Oct 4 2007, 18:05
|
Группа: Новичок
Сообщений: 8
Регистрация: 2-10-07
Пользователь №: 31 012

|
Итак по порядку: У Вас синхронный проект? - ДА В настройках фиттеру необходимую частоту клока задавали? - Основные тактовые частоты я прописал, но фиттеру надо прописывать все сигналы, которые заводятся на вход CLK регистров или счётчиков - их я не прописывал. они как правило формируются логикой (какой-нибудь сигнал записи в регистр) - как я понял для таких сигналов нужно указать максимально возможную частоту. Нужно ли это делать? Их больше сотни (судя по месседжеру) и это делать лениво После компиляции результаты Timing Analyzer смотрели? - смотрел, я плохо эти результаты воспринимаю, так как не знаю, какие должны быть задержки. Входные и выходные сигналы подаются через FastInputReg и FastOutputReg? - на пины я навешивал альт инбуф и альт аутбуф - далее регистр - насколько я понимаю фиттер в таком случае их автоматом ставит как фаст инпут-аутпут регистр. Logic Lock по-моему существенно увеличивает время компиляции. Мой проект сейчас компилируется порядка 8 минут (иногда после каких-нибудь изменений бывает 15 минут). Есть такая штука - инкрементальная компиляция - компиляция проекта по частям. Компилируются только имзмененные куски схемы. Я сделал в проекте несколько разделов, после чего компиллер начал ругаться на то, что у меня шина называется одинаково в 4 местах - но это одна и та же шина!!! и раньше он компилировал эту схему без ошибок.
|
|
|
|
|
Oct 4 2007, 23:57
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(PPA @ Oct 5 2007, 03:05)  Итак по порядку: У Вас синхронный проект? - ДА В настройках фиттеру необходимую частоту клока задавали? - Основные тактовые частоты я прописал, но фиттеру надо прописывать все сигналы, которые заводятся на вход CLK регистров или счётчиков - их я не прописывал. они как правило формируются логикой (какой-нибудь сигнал записи в регистр) - как я понял для таких сигналов нужно указать максимально возможную частоту. Нужно ли это делать? Их больше сотни (судя по месседжеру) и это делать лениво После компиляции результаты Timing Analyzer смотрели? - смотрел, я плохо эти результаты воспринимаю, так как не знаю, какие должны быть задержки. Входные и выходные сигналы подаются через FastInputReg и FastOutputReg? - на пины я навешивал альт инбуф и альт аутбуф - далее регистр - насколько я понимаю фиттер в таком случае их автоматом ставит как фаст инпут-аутпут регистр. Logic Lock по-моему существенно увеличивает время компиляции. Мой проект сейчас компилируется порядка 8 минут (иногда после каких-нибудь изменений бывает 15 минут). Есть такая штука - инкрементальная компиляция - компиляция проекта по частям. Компилируются только имзмененные куски схемы. Я сделал в проекте несколько разделов, после чего компиллер начал ругаться на то, что у меня шина называется одинаково в 4 местах - но это одна и та же шина!!! и раньше он компилировал эту схему без ошибок. Logic Lock и инкрементальная компиляция без Design Partitions вообщем то бесполезен  "разрежьте" на партиции свой проект. только с этим если несколько ограничений связаных со всякими шинами(вы об этом упомянули). особенно это проявлялось в 5.1. что щас изменилось в 7.2 проверить или сказать не смогу. И кстати "первая" компиляция с включенным инкрементальным синтезом и разрезаным проектом на куски(с назначеными партциями) будет длится заметно дольше чем безо всего этого. но потом ускорение компиляции будет заметное.
--------------------
Cogito ergo sum
|
|
|
|
|
Oct 5 2007, 04:15
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
а технология vqm файлов не поможет отцу русской демократии ? есть реальные примеры как время сборки кода для кулона 35/50 сокращалось в разы (20-30 минут -> 3-5 минут) пишем скрипт, 1 раз собираем модули, отлаженные, в которые больше не полезем. пишем еще скрипт на топ-левел и вуаля сборка быстро и комфортно. Удачи ! ЗЫ. насчет тайминг аналайзера главное что бы он написал что в требуемое ограничение по клоку влезает. ЗЗЫ. Если есть переходы из домена в домен, то не синхронизаторы корректно не обрабатываются. Нужно асинхронные пути (фальшивые пути задавать).
--------------------
|
|
|
|
|
Oct 5 2007, 17:36
|

Местный
  
Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797

|
Цитата(andrew_b @ Oct 5 2007, 08:55)  [Жирным выделено мной] А говорите, что проект синхронный. Наплодили gated clocks -- вот вам и ответ. +1 Я еще ни в одной книге не встречал определение синхронного проекта. Либо человек понимает что это такое, либо нет( или думает что понимает , что хуже). P.S. to PPA, удивительно, что Ваши предыдущие проекты для Cyclone работали.
|
|
|
|
|
Oct 5 2007, 18:14
|
Группа: Новичок
Сообщений: 8
Регистрация: 2-10-07
Пользователь №: 31 012

|
Цитата(andrew_b @ Oct 5 2007, 08:55)  [Жирным выделено мной] А говорите, что проект синхронный. Наплодили gated clocks -- вот вам и ответ. Проект синхронный, но вы правы, я наплодил Gated Clocks. Если малая доля регистров в проекте не тактируется общим клоком - проект не синхронный? Про синхронность проекта - в проекте несколько глобальных тактов: - такт шины обмена с перифирийными чипами - 100МГц - такт шины обмена с процессором - 100МГц - внутренний такт 150 МГц с PLL мой проект должен общаться со всей этой перифирией. Проект синхронный??? Чем страшны Gated Clocks? Опыта не много - поэтому возможно туплю
|
|
|
|
|
Oct 5 2007, 18:45
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(PPA @ Oct 5 2007, 22:14)  Проект синхронный, но вы правы, я наплодил Gated Clocks. Если малая доля регистров в проекте не тактируется общим клоком - проект не синхронный? Про синхронность проекта - в проекте несколько глобальных тактов: - такт шины обмена с перифирийными чипами - 100МГц - такт шины обмена с процессором - 100МГц - внутренний такт 150 МГц с PLL мой проект должен общаться со всей этой перифирией. Проект синхронный??? Чем страшны Gated Clocks? Опыта не много - поэтому возможно туплю  Посмотрите здесь. http://www.dsioffe.narod.ru/myquartus/myquartus.htmИ в хелпе квартуса тоже (Gated Clocks).
|
|
|
|
|
Oct 5 2007, 18:58
|

Местный
  
Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797

|
Цитата(PPA @ Oct 5 2007, 22:14)  Про синхронность проекта - в проекте несколько глобальных тактов: - такт шины обмена с перифирийными чипами - 100МГц - такт шины обмена с процессором - 100МГц - внутренний такт 150 МГц с PLL Ситуация проясняется. У Вас три тактовых сигнала, лучше говорить три клоковых домена. Клоковый домен - часть проекта, тактируемая одним клоком. Из одного домена в другой данные должны передаваться через DCFIFO. Цитата Чем страшны Gated Clocks? Работа схемы зависит от разводчика и её нельзя(сложно) предугадать на этапе проектирования.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|