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

 
 
 
Reply to this topicStart new topic
> Разработка проектов для больших кристаллов, Посоветуйте как правильно
PPA
сообщение Oct 2 2007, 18:30
Сообщение #1





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



Разрабатываю кусок проекта в QuartusII 5.1 для StratixII EP2S130.
В проекте реализованы интерфейсы с периферийными микросхемами.
Ранее я разрабатывал проекты только для маленьких ПЛИСов, типа циклона. Выглядело это примерно так:
-рисовалась схема из примитивов и параметризируемых модулей
-компиляция, симуляция
-исправления
-компиляция, симуляция
-назначение ножек
-финальная компиляция, симуляция и создание прошивок.
Здесь я делал всё также - отладил кусок проекта на нужном кристалле (задавал временные требования), но когда назначил пины в соответствии со схемой Э3 (схема выпускалась параллельно, и пины назначались по принципу - как удобно конструктору), моя схема перестала работать. Поехали все задержки. Кое-как заставил работать схему, но при добавлении новых элементов схема ведет себя неадекватно. Всё зависит от фиттера - как он разместит блоки внутри кристалла одному квартусу известно. Пытаюсь лоджик локом группировать куски схемы, которые должны работать быстро и судя по симуляции не успевают это делать - всё равно эффекта нет.
Итак - если кто сталкивался с такой проблемой - помогите советом. Как разрабатывать проекты в больших кристаллах, чтобы они не переставали работать после добавления пары регистров и перекомпиляции? help.gif
Go to the top of the page
 
+Quote Post
DuHast
сообщение Oct 3 2007, 17:33
Сообщение #2


Местный
***

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



Цитата(PPA @ Oct 2 2007, 22:30) *
... которые должны работать быстро ...

У Вас синхронный проект? В настройках фиттеру необходимую частоту клока задавали? После компиляции результаты Timing Analyzer смотрели? Входные и выходные сигналы подаются через FastInputReg и FastOutputReg?
Это первы причины, которые приходят на ум, читая Вашу ситуацию.
Go to the top of the page
 
+Quote Post
Stas
сообщение Oct 3 2007, 18:01
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751



1. Ну для начала надо переползти на Q7.1 по моим наблюдениям чуть лучше синтезирует и тактовая проекта получается выше.
2. Задать временные ограничения и тактовые частоты, некоторые блоки (типа регистров capture в DDR) разместить вручную, скомпилировать и как писал DuHast посмотреть репорт Timing Analyzer.
3. Просимулировать разведенный проект. (К примеру вывод тактоваой частоты для внешних чипов памяти напрямую с DEDICATED PLL PIN и через IOB pin сильно различается по задержке wink.gif и т.д. )
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Oct 4 2007, 08:13
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(PPA @ Oct 2 2007, 22:30) *
Итак - если кто сталкивался с такой проблемой - помогите советом. Как разрабатывать проекты в больших кристаллах, чтобы они не переставали работать после добавления пары регистров и перекомпиляции? help.gif

Во-первых, LogicLock надо делать на весть проект изначально - это существенно ускоряет разводку, так как снижает ее инвариантность. Во-вторых при пересинтезе учитывать результат предыдущего (у Xilinx называется SmartGuide, не знаю как у Альтеры), так что будут переразведены только изменившиеся цепи.
Go to the top of the page
 
+Quote Post
PPA
сообщение Oct 4 2007, 18:05
Сообщение #5





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



Итак по порядку:
У Вас синхронный проект? - ДА

В настройках фиттеру необходимую частоту клока задавали? - Основные тактовые частоты я прописал, но фиттеру надо прописывать все сигналы, которые заводятся на вход CLK регистров или счётчиков - их я не прописывал. они как правило формируются логикой (какой-нибудь сигнал записи в регистр) - как я понял для таких сигналов нужно указать максимально возможную частоту. Нужно ли это делать? Их больше сотни (судя по месседжеру) и это делать лениво sad.gif

После компиляции результаты Timing Analyzer смотрели? - смотрел, я плохо эти результаты воспринимаю, так как не знаю, какие должны быть задержки.

Входные и выходные сигналы подаются через FastInputReg и FastOutputReg? - на пины я навешивал альт инбуф и альт аутбуф - далее регистр - насколько я понимаю фиттер в таком случае их автоматом ставит как фаст инпут-аутпут регистр.

Logic Lock по-моему существенно увеличивает время компиляции. Мой проект сейчас компилируется порядка 8 минут (иногда после каких-нибудь изменений бывает 15 минут).
Есть такая штука - инкрементальная компиляция - компиляция проекта по частям. Компилируются только имзмененные куски схемы. Я сделал в проекте несколько разделов, после чего компиллер начал ругаться на то, что у меня шина называется одинаково в 4 местах - но это одна и та же шина!!! и раньше он компилировал эту схему без ошибок.
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Oct 4 2007, 23:57
Сообщение #6


МедвеД Инженер I
****

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



Цитата(PPA @ Oct 5 2007, 03:05) *
Итак по порядку:
У Вас синхронный проект? - ДА

В настройках фиттеру необходимую частоту клока задавали? - Основные тактовые частоты я прописал, но фиттеру надо прописывать все сигналы, которые заводятся на вход CLK регистров или счётчиков - их я не прописывал. они как правило формируются логикой (какой-нибудь сигнал записи в регистр) - как я понял для таких сигналов нужно указать максимально возможную частоту. Нужно ли это делать? Их больше сотни (судя по месседжеру) и это делать лениво sad.gif

После компиляции результаты Timing Analyzer смотрели? - смотрел, я плохо эти результаты воспринимаю, так как не знаю, какие должны быть задержки.

Входные и выходные сигналы подаются через FastInputReg и FastOutputReg? - на пины я навешивал альт инбуф и альт аутбуф - далее регистр - насколько я понимаю фиттер в таком случае их автоматом ставит как фаст инпут-аутпут регистр.

Logic Lock по-моему существенно увеличивает время компиляции. Мой проект сейчас компилируется порядка 8 минут (иногда после каких-нибудь изменений бывает 15 минут).
Есть такая штука - инкрементальная компиляция - компиляция проекта по частям. Компилируются только имзмененные куски схемы. Я сделал в проекте несколько разделов, после чего компиллер начал ругаться на то, что у меня шина называется одинаково в 4 местах - но это одна и та же шина!!! и раньше он компилировал эту схему без ошибок.

Logic Lock и инкрементальная компиляция без Design Partitions вообщем то бесполезен smile.gif
"разрежьте" на партиции свой проект. только с этим если несколько ограничений связаных со всякими шинами(вы об этом упомянули). особенно это проявлялось в 5.1. что щас изменилось в 7.2 проверить или сказать не смогу. И кстати "первая" компиляция с включенным инкрементальным синтезом и разрезаным проектом на куски(с назначеными партциями) будет длится заметно дольше чем безо всего этого. но потом ускорение компиляции будет заметное.


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 5 2007, 04:15
Сообщение #7


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



а технология vqm файлов не поможет отцу русской демократии ? есть реальные примеры как время сборки кода для кулона 35/50 сокращалось в разы (20-30 минут -> 3-5 минут)smile.gif
пишем скрипт, 1 раз собираем модули, отлаженные, в которые больше не полезем.
пишем еще скрипт на топ-левел и вуаля сборка быстро и комфортно.

Удачи !

ЗЫ. насчет тайминг аналайзера главное что бы он написал что в требуемое ограничение по клоку влезает.

ЗЗЫ. Если есть переходы из домена в домен, то не синхронизаторы корректно не обрабатываются. Нужно асинхронные пути (фальшивые пути задавать).


--------------------
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Oct 5 2007, 04:55
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(PPA @ Oct 4 2007, 22:05) *
У Вас синхронный проект? - ДА

В настройках фиттеру необходимую частоту клока задавали? - Основные тактовые частоты я прописал, но фиттеру надо прописывать все сигналы, которые заводятся на вход CLK регистров или счётчиков - их я не прописывал. они как правило формируются логикой (какой-нибудь сигнал записи в регистр) - как я понял для таких сигналов нужно указать максимально возможную частоту. Нужно ли это делать? Их больше сотни (судя по месседжеру) и это делать лениво

[Жирным выделено мной] А говорите, что проект синхронный. Наплодили gated clocks -- вот вам и ответ.
Go to the top of the page
 
+Quote Post
DuHast
сообщение Oct 5 2007, 17:36
Сообщение #9


Местный
***

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



Цитата(andrew_b @ Oct 5 2007, 08:55) *
[Жирным выделено мной] А говорите, что проект синхронный. Наплодили gated clocks -- вот вам и ответ.

+1
Я еще ни в одной книге не встречал определение синхронного проекта. Либо человек понимает что это такое, либо нет( или думает что понимает , что хуже).

P.S.
to PPA, удивительно, что Ваши предыдущие проекты для Cyclone работали.
Go to the top of the page
 
+Quote Post
PPA
сообщение Oct 5 2007, 18:14
Сообщение #10





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



Цитата(andrew_b @ Oct 5 2007, 08:55) *
[Жирным выделено мной] А говорите, что проект синхронный. Наплодили gated clocks -- вот вам и ответ.

Проект синхронный, но вы правы, я наплодил Gated Clocks. Если малая доля регистров в проекте не тактируется общим клоком - проект не синхронный?
Про синхронность проекта - в проекте несколько глобальных тактов:
- такт шины обмена с перифирийными чипами - 100МГц
- такт шины обмена с процессором - 100МГц
- внутренний такт 150 МГц с PLL
мой проект должен общаться со всей этой перифирией. Проект синхронный???
Чем страшны Gated Clocks?
Опыта не много - поэтому возможно туплю 07.gif
Go to the top of the page
 
+Quote Post
sazh
сообщение Oct 5 2007, 18:45
Сообщение #11


Гуру
******

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



Цитата(PPA @ Oct 5 2007, 22:14) *
Проект синхронный, но вы правы, я наплодил Gated Clocks. Если малая доля регистров в проекте не тактируется общим клоком - проект не синхронный?
Про синхронность проекта - в проекте несколько глобальных тактов:
- такт шины обмена с перифирийными чипами - 100МГц
- такт шины обмена с процессором - 100МГц
- внутренний такт 150 МГц с PLL
мой проект должен общаться со всей этой перифирией. Проект синхронный???
Чем страшны Gated Clocks?
Опыта не много - поэтому возможно туплю 07.gif


Посмотрите здесь.
http://www.dsioffe.narod.ru/myquartus/myquartus.htm

И в хелпе квартуса тоже (Gated Clocks).
Go to the top of the page
 
+Quote Post
DuHast
сообщение Oct 5 2007, 18:58
Сообщение #12


Местный
***

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



Цитата(PPA @ Oct 5 2007, 22:14) *
Про синхронность проекта - в проекте несколько глобальных тактов:
- такт шины обмена с перифирийными чипами - 100МГц
- такт шины обмена с процессором - 100МГц
- внутренний такт 150 МГц с PLL

Ситуация проясняется. У Вас три тактовых сигнала, лучше говорить три клоковых домена. Клоковый домен - часть проекта, тактируемая одним клоком. Из одного домена в другой данные должны передаваться через DCFIFO.

Цитата
Чем страшны Gated Clocks?

Работа схемы зависит от разводчика и её нельзя(сложно) предугадать на этапе проектирования.
Go to the top of the page
 
+Quote Post

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

 


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


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