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

 
 
6 страниц V  « < 3 4 5 6 >  
Reply to this topicStart new topic
> Правильное использование locked у PLL
ViKo
сообщение Feb 6 2015, 05:52
Сообщение #61


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(SM @ Feb 6 2015, 08:44) *
Вот, кстати, именно в данном случае, в проекте из одного триггера, это логике и не поддается.

Видимо, потому, что правильнее управлять данными, а не тактами. О чем я выше намекал.
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 6 2015, 05:55
Сообщение #62


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

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



Цитата(SM @ Feb 6 2015, 13:44) *
Вот, кстати, именно в данном случае, в проекте из одного триггера, это логике и не поддается. По разводке оба варианта одинаковы (какая разница, завести enable на LAB CE, или на LUT, все равно куда-то заводить, конкуренции между этими сигналами в данной схеме нет), а вот лишний LUT занят (кол-во LUT - вроде как один из критериев оптимизации).

Немного не корректно. В случае использования clkena для одного LE из LAB, у вас "убивается" весь LAB. Т.е. вы уже не можете использовать триггеры других 15 ти LE. А LUT можете использовать либо для многолютовой комбинаторики либо для нагрузки триггеров из другого LAB. И в общем случае это приведет к перерасходу ресурсов разводки и не возможности register packing. Тоже самое касается сигналов sclr и sload. А то что ква делает так, ну вот такой у него оптимизатор. Даже в проекте из одного триггера на миллионный чип. Кстати LAB в первых сыклонах был 10LE и там чудно делались сложные (с использованием сигналов clear/load/enable) 40 бит аккумуляторы. В старших, пришлось кое где уйти на 32 бита.
Цитата
И, кстати, это далеко не всех ПЛИС и сред касается:

Как я понимаю это ячейка латекса, подскажите что за чип, посмотрю даташит, вполне возможно что у них в аналоге LAB есть дополнительные ключи на отключение clkena части триггеров от общего управления

UPD. В стратиксе 5 ом, в LAB 10ALM, в каждом 4 ре триггера. И там, цена желания что бы на счетчике был именно clkena (ручная вставка dffeas примитивов) еще выше.

UPD2. Посмотрел на вашу картинку внимательнее. Судя по всему верхняя половина LE не задействована. Вам повезло, "убийство" верхнего триггера вы не заметили. Вот будет у вас более плотный дизайн, тогда думаю обратите на это внимание sm.gif


--------------------
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 6 2015, 06:09
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(des00 @ Feb 6 2015, 08:55) *
И в общем случае это приведет к перерасходу ресурсов разводки

А причем тут "общий случай" и какие-то гипотетические триггеры и сигналы, которые могут быть нужны и которых нет? У нас случай вполне себе частный, и конкретный, от автора:
Код
module test(output reg Q, input D, En, input Clk);
    always @(posedge Clk)
    begin
        if(En)
        begin
            Q = D;
        end
    end
endmodule


1) В части разводки конкуренции нет, больше цепей нет в принципе, следовательно, критерий отпадает (умножается на коэфф. конкуренции = 0).
2) В части нужности других CE - тоже нет, тоже критерий отпадает (умножается на коэфф. конкуренции = 0).
3) В части нужности других триггеров в LAB - опять, конкуренции нет, опять, критерий отпадает (умножается на коэфф. конкуренции = 0).
4) А вот LUT - он и ток кушает, и место (area) занимает, так что критерий имеет вес. Вот его и следует соптимизировать, заведя сигнал на CE.

Цитата(des00 @ Feb 6 2015, 08:55) *
Как я понимаю это ячейка латекса, подскажите что за чип, посмотрю даташит, вполне возможно что у них в аналоге LAB есть дополнительные ключи на отключение clkena части триггеров от общего управления

Нет там таких ключей, CE тоже общий. Любой смотрите на выбор, разводится одинаково (я проверил на XO2, XO3, XP, XP2, ECP2, ECP3). Просто, там, оптимизатор делает свою работу более логично, нежели квартус.

PS
А когда количество enable-ов от одного сигнала возрастает, так, тем более, есть прямой смысл их объединять в кучу и заводить на CE, и не только на LAB/SLICE CE, но и в более глобальные ресурсы разводки.
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 6 2015, 06:16
Сообщение #64


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

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



Цитата(SM @ Feb 6 2015, 14:09) *
А причем тут "общий случай"? У нас случай вполне себе частный, и конкретный, от автора:
Код
module test(output reg Q, input D, En, input Clk);
    always @(posedge Clk)
    begin
        if(En)
        begin
            Q = D;
        end
    end
endmodule


1) В части разводки конкуренции нет, больше цепей нет в принципе, следовательно, критерий отпадает (умножается на коэфф. конкуренции = 0).
2) В части нужности других CE - тоже нет, тоже критерий отпадает (умножается на коэфф. конкуренции = 0).
3) В части нужности других триггеров в LAB - опять, конкуренции нет, опять, критерий отпадает (умножается на коэфф. конкуренции = 0).
4) А вот LUT - он и ток кушает, и место (area) занимает, так что критерий имеет вес. Вот его и следует соптимизировать, заведя сигнал на CE.


Нет там таких ключей, CE тоже общий. Любой смотрите на выбор, разводится одинаково (я проверил на XO2, XO3, XP, XP2, ECP2, ECP3). Просто, там, оптимизатор делает свою работу более логично, нежели квартус.

Это все софистика при решении задачи о сферическом коне в вакууме. Вы гуру вам виднее и опыта у вас больше.

Мои результаты по утаптыванию проектов в чипы от альтер приводил на форуме кучу раз. 99.5-99.8 % занятого дспешным кодом третьего сыклона, хлопающего на частоте 192МГц (у него триггерная 250). Всё после изучения даташитов и логических выводов о работе квартуса.


--------------------
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 6 2015, 06:18
Сообщение #65


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(des00 @ Feb 6 2015, 09:16) *
Это все софистика при решении задачи о сферическом коне в вакууме.

А Вы вернитесь в мир реальный, к реальному элементарному исходнику из одного триггера, о котором речь в теме идет, и который неоптимально укладывается квартусом. А не о забитии 99% кристалла.

PS
Может, если ему дать больше приоритета на Area, и заведет? Я сейчас посмотрел, в моей среде по умолчанию стоит и Area, и Timing driven.

UPD:
Убрал "Area", ничего не поменялось...
Go to the top of the page
 
+Quote Post
Krys
сообщение Feb 6 2015, 06:39
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(des00 @ Feb 6 2015, 11:55) *
В случае использования clkena для одного LE из LAB, у вас "убивается" весь LAB
Ну значит я правильно подозревал причину. В Xilinx это называется, кажется, control set.


Цитата(ViKo @ Feb 6 2015, 11:52) *
Видимо, потому, что правильнее управлять данными, а не тактами. О чем я выше намекал.
Тактами управлять правильнее с точки зрения энергопотребления. А какие преимущества имеет управление данными?


Цитата(SM @ Feb 6 2015, 11:44) *
И, кстати, это далеко не всех ПЛИС и сред касается:
Xilinx этим тоже грешит.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 6 2015, 06:41
Сообщение #67


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Krys @ Feb 6 2015, 09:37) *
А какие преимущества имеет управление данными?

Простоту алгоритма коррекции таймингов между разными клок-доменами. Короче говоря, мозгов много не надо, чтобы развести такой проект. Меньше энергии расходуется на разводку sm.gif - экономим газ! (правда потом жжем его жрущими девайсами)

Цитата(Krys @ Feb 6 2015, 09:39) *
Xilinx этим тоже грешит.

Не грешит, а показывает взвешенный подход, где один триггер, там одно, где кристалл под завязку - там другое.
Go to the top of the page
 
+Quote Post
Krys
сообщение Feb 6 2015, 06:49
Сообщение #68


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(SM @ Feb 6 2015, 12:18) *
А Вы вернитесь в мир реальный, к реальному элементарному исходнику из одного триггера, о котором речь в теме идет, и который неоптимально укладывается квартусом. А не о забитии 99% кристалла
Про сферического коня - это правильно. Пример тривиальный. Зачем ругать синтезатор из-за ошибки на тривиальных примерах? Да, формально это ошибка, но ругать надо, когда будет неоптимально синтезить нормальные проекты.
Предлагаю засинтезить проект по защёлкиванию шины данных (размером с количество "теряемых" триггеров) по клоку, стробируемому по CE. В этом случае хотя бы синтезатору будет видно, что совершенно все триггеры имеют CE, и ничего не потеряется, если подать CE прямо на соответствующий выделенный аппаратный вход триггера.
Можно ещё дополнительно усложнить задачу, подобрав на входе триггера такую комбинационную функцию, которая бы занимала все входы LUT'а. В этом случае добавление к этой функции ещё одного сигнала приводит к необходимости ещё одного лута, а это уж точно неоптимально (просто в тривиальном примере от добавления сигнала CE к LUT'у ничего страшного не происходит, т.к. ещё есть свободные входы).


Цитата(SM @ Feb 6 2015, 12:41) *
Не грешит, а показывает взвешенный подход, где один триггер, там одно, где кристалл под завязку - там другое.
Да я пробовал и на неплотных проектах. Да вообще где ни пробовал - там это везде наблюдалось. Из чего я сделал для себя эмпирический вывод, что с этим надо смириться, CE он добавляет не на аппаратный выделенный вход триггера, а замешивает в LUT.


Цитата(SM @ Feb 6 2015, 12:41) *
Простоту алгоритма коррекции таймингов между разными клок-доменами
А если домен один - то нет преимуществ?


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 6 2015, 06:57
Сообщение #69


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Krys @ Feb 6 2015, 09:49) *
А если домен один - то нет преимуществ?

Ну это, смотря как этот enable делать. Я имел в виду нечто вроде DCS/BUFGCE/Gated_clock - таким образом, каждый enable создает свой домен, экономя потребление (отключается целый сегмент дерева тактовых сигналов). Но затраты на разводку увеличиваются - так как начинаются проблемы с коррекцией HOLD-ов на междоменных переходах. А подача на CE с точки зрения затратности ресурсов на разводку идентична мультиплексору данных.

Цитата(Krys @ Feb 6 2015, 09:49) *
Зачем ругать синтезатор из-за ошибки на тривиальных примерах?

Из соображений логики. Раз на тривиальном сделал неоптимально, значит и на нетривиальном где-то лажанется по этой же причине....
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 6 2015, 07:01
Сообщение #70


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

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



Цитата(SM @ Feb 6 2015, 13:18) *
А Вы вернитесь в мир реальный, к реальному элементарному исходнику из одного триггера, о котором речь в теме идет, и который неоптимально укладывается квартусом. А не о забитии 99% кристалла.

Вот именно что пример высосан из пальца и все вот это:
Цитата
1) В части разводки конкуренции нет, больше цепей нет в принципе, следовательно, критерий отпадает (умножается на коэфф. конкуренции = 0).
2) В части нужности других CE - тоже нет, тоже критерий отпадает (умножается на коэфф. конкуренции = 0).
3) В части нужности других триггеров в LAB - опять, конкуренции нет, опять, критерий отпадает (умножается на коэфф. конкуренции = 0).
4) А вот LUT - он и ток кушает, и место (area) занимает, так что критерий имеет вес. Вот его и следует соптимизировать, заведя сигнал на CE.

Именно софистика. ответы на 1-3 дал постом выше : "А то что ква делает так, ну вот такой у него оптимизатор". а по пункту 4 ре вы сами вчитайтесь в вашу фразу с точки зрения ПЛИСа и в котором 5к лютов и а фоне потребления этого чипа в статике этот LUT как мертвому припарка.
Понимаю что вам, как асикостроителю, все это чуждо и вызывает бурю негодования. Но, как уже писал, на настоящих реальных проектах поголовное использование сигналов разрешения в качестве clkena триггеров приведет к результату более низкого качества, чем результат полученный со взвешенным использованием того самого clkena (квартус тоже это делает).


--------------------
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 6 2015, 07:06
Сообщение #71


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(des00 @ Feb 6 2015, 10:01) *
а фоне потребления этого чипа в статике этот LUT как мертвому припарка.

Вот это, как раз, голимая демагогия. Для оптимизатора есть лишь больше, или меньше, даже если на 1 LSB числа, используемого в расчетах.

Цитата(des00 @ Feb 6 2015, 10:01) *
поголовное использование сигналов разрешения в качестве clkena

Оно должно быть не поголовное, а оптимальное, на любых проектах. Зачем искать оправдания для банального глюка оптимизатора?
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 6 2015, 07:12
Сообщение #72


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

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



Цитата(SM @ Feb 6 2015, 14:06) *
Вот это, как раз, голимая демагогия. Для оптимизатора есть лишь больше, или меньше, даже если на 1 LSB числа, используемого в расчетах.


Оно должно быть не поголовное, а оптимальное, на любых проектах. Зачем искать оправдания для банального глюка оптимизатора?

для вас это глюк, для меня это изученная фича, имеющая под собой логические обоснования. задали вопрос - объяснил логику такого поступка, остальные вопросы www.altera.com.


--------------------
Go to the top of the page
 
+Quote Post
Krys
сообщение Feb 6 2015, 07:47
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(des00 @ Feb 6 2015, 13:12) *
задали вопрос - объяснил логику такого поступка
Не-не-не ))) Объяснения "ну вот такой вот синтезатор, хоть убейте" не годятся )))

Цитата(des00 @ Feb 6 2015, 13:12) *
имеющая под собой логические обоснования
Объяснили логику поступка Вы только при рассмотрении реальных больших нормальных проектов. На маленьких и тривиальных проектах такое поведение логике не подчиняется. Ну пожалуй за исключением того, что увеличение потребления на маленьких проектах неощутимо, поэтому до звезды, как поступить.


Цитата(des00 @ Feb 6 2015, 13:12) *
для вас это глюк, для меня это изученная фича
Я бы всё же называл это стандартным термином "known bugs and issues" )) Всё же надо признать, что формально для тривиального проекта это бага. Пусть и ни на что не влияющая.


Цитата(SM @ Feb 6 2015, 12:57) *
Из соображений логики. Раз на тривиальном сделал неоптимально, значит и на нетривиальном где-то лажанется по этой же причине....
А если на тривиальном не сделал неоптимально, то всё равно может лажануться на крупном ))) Не застрахуешься. Это как к людям, "отбывшим в местах не столь отдалённых", относятся с недоверием, скажем, при приёме на работу: один раз оступился, значит обязательно ещё раз оступится.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 6 2015, 09:04
Сообщение #74


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(des00 @ Feb 6 2015, 10:12) *
для вас это глюк,

Это не "для меня" глюк. Ничего личного. Это просто глюк, и все тут. Суть его я объяснил - если ресурс (свободные триггеры, LUT CE, и т.п.) не занят, то и нечего его "зажимать" непонятно для чего. Я даже предполагаю, для чего он это делает - вероятно, для упрощения себе жизни при инкрементальных размещении и разводке, так как он (глюк) появился как раз примерно в одно время с этими инкрементальными фичами... С инкрементальной точки зрения, конечно, зажопить 7 триггеров про запас выгоднее, чем освободить 1 LUT. Но это никак не оптимально с точки зрения размещения конкретного проекта. Совсем старые версии более эффективно задействовали CE в простых проектах. Да и вообще за квартусом замечено, чем новее версия, тем менее эффективно использование ресурсов ПЛИС (может, чтобы более толстые кристаллы покупали... а может из-за ленивости программистов...). У меня даже был конкретный случай, когда я активно пользовался альтерой, где-то в районе 8-9-х версий квартуса, что после очередного обновления перестал влезать проект, отлично влезавший и работавший ранее и с квартусом, и даже с Max+plus... А уж увеличение area на ровном месте с увеличением версии квартуса, так это вообще, норма жизни.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 6 2015, 09:10
Сообщение #75


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Для проверки забейте 4 входных сигнала вместо 1. Например, по И объедините. LUT весь используется, и Quartus будет вынужден использовать CE.
А потом посмотрите быстродействие для обоих вариантов.
Go to the top of the page
 
+Quote Post

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

 


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


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