|
|
  |
Правильное использование locked у PLL |
|
|
|
Feb 2 2015, 18:21
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(SM @ Feb 2 2015, 19:45)  А Вам зачем об этом думать? Синтезатор что ли что-то куда-то впихнуть не может?
Если их много, их можно в цикле "for generate" расставить... например... Видимо я чего-то недопонимаю. Стоит задача заблокировать работу схемы в момент когда ПЛЛ выдаёт нестабильную частоту. Для этого вывод lock у ПЛЛ заводим на вход СЕ триггерам, притом всем (можно не всем, а только критичным) триггерам в схеме, ибо все триггеры должны быть заблокированы. И вот не совсем понято как это написать. Приходит на ум способ описания асинхронного сброса Код always @(posedge CLK or posedge aReset) begin if(aReset) begin Q = 1'd0; end else begin Q = D; end end Только вместо aReset должен быть этот самый СЕ, но как я разумею в Верилоге такого нет. А как через generate организовать, чёт не соображу.
|
|
|
|
|
Feb 2 2015, 18:35
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Извращение какое. Зачем его разводить по всей схеме? Пустите весь клок через него, используя элемент навроде DCS у Lattice ( стр. 19-20 в документе ), если уж так приспичит. Хотя, самое правильное, пускать его именно на асинхронный резет вместе с общим резетом, так как, при сбое, lock может пропасть уже после того, как сам клок сбойнет. Детектор lock-а не умеет предугадывать сбои. Хотя я за все время ни разу не видел такое вживую, чтобы лок пропадал при стабильном входном клоке.
|
|
|
|
|
Feb 3 2015, 03:36
|

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

|
Цитата(Opex @ Feb 2 2015, 18:28)  Вы прочитали невнимательно. очень внимательно. Написано: не используйте гейтед клок. Но если всё же надо, то используйте глобальный буфер с разрешением. Глобальный буфер с разрешением - не совсем гейтед клок. Цитата(Jackov @ Feb 3 2015, 00:21)  Только вместо aReset должен быть этот самый СЕ, но как я разумею в Верилоге такого нет. Откройте тот самый документ от Opex: http://www.xilinx.com/support/documentatio...inx14_7/sim.pdf Стр. 62, там один в один Ваш код. Ну и что, что название сброс, а не разрешение? Для машины нет разницы, как Вы его назвали.
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Feb 3 2015, 08:57
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 13-03-11
Из: Екатеринбург
Пользователь №: 63 574

|
Цитата(Krys @ Feb 3 2015, 08:36)  очень внимательно. Написано: не используйте гейтед клок. Но если всё же надо, то используйте глобальный буфер с разрешением. Глобальный буфер с разрешением - не совсем гейтед клок. The BUFGCE primitive creates an enabled clock buffer using the BUFGMUX select mechanism. BUFGCE is a global clock buffer with a single gated input. ...most FPGA devices now have a clock enabled global buffer resource called BUFGCE. Тот самый глобальный буфер с разрешением. А дальше However, a clock enable is still the preferred method to reduce or stop the clock to portions of the design. Противопоставление СЕ этому буферу.
|
|
|
|
|
Feb 3 2015, 09:41
|

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

|
Это всё понятно. Однако просто гейтед клок в их понимании - это когда тактовая стробируется прямо на обычных лутах. Это страшно, и чтобы было не так страшно они советуют ставить глобальный буфер с разрешением. Ну а фраза Цитата a clock enable is still the preferred method - тут есть слово предпочтительный, но не значит же, что mandatory. Т.е. кто разобраться сам не может - ему подсказывают, что раз не можете, тогда не парьтесь, а поверьте нам. Но кто может разобраться - тот уж сам выберет, что ему надо. preferred - это не категорично.
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Feb 3 2015, 17:41
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(Krys @ Feb 3 2015, 06:36)  там один в один Ваш код. Не совсем, у меня в always-е два сигнала фигурируют, там один. Попробую завтра так сделать, отпишусь что получилось.
|
|
|
|
|
Feb 4 2015, 03:09
|

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

|
Цитата(Opex @ Feb 3 2015, 21:02)  Советуем использовать одно, но лучше используйте другое? Я, наверное, еще не очень понимаю их хитрую индийскую логику :laugh: Вам что, надо выкрутиться любой ценой? Или в каком-то информационном состязании победить, закрыв глаза на всё? Я освежу историю, с чего всё началось. Был совет использовать глобальный буфер с разрешением. Вы сказали, что так делать не рекомендуется, приведя фрагмент текста на английском, где сказано, что не рекомендуется гейтед клок, а вместо этого лучше глобальный буфер с разрешением. Я возразил, что наоборот рекомендуется. И тут Вы начали выкручиваться. Моё понимание того фрагмента на английском: "гейтед клок не рекомендуется, лучше вместо него глобальный буфер с разрешением (не являющийся в чистом виде тем, что они понимают под гейтед клок). Но предпочтительным остаётся использование CE в каждом триггере". И ещё раз: "предпочтительно CE, но и глобальный буфер вполне пойдёт вместо чистого гейтед клока. Вот гейтед клок - тут уж точно лучше не использовать". Что значит "предпочтительно"? Это может значить, например, что с весовым коэффициентом 51% предпочтительно CE, но во многих случаях (например 49%) удобнее глобальный буфер с разрешением. Так что тут разработчик должен оценить все обстоятельства и принять решение, одно из двух, оба не возбраняются. Если он не в состоянии принять решение - то тогда ему говорят предпочтительно CE. Итого: на исходный вопрос можно ли использовать глобальный буфер с разрешением ответ - вполне, и это следует в частности из того текста на английском. Цитата(Jackov @ Feb 3 2015, 23:41)  Не совсем, у меня в always-е два сигнала фигурируют, там один Ну да, у Вас асинхронный сброс, не вчитался. Просто сотрите его из олвейза ))) Будет сброс синхронный, а засинтезируется он как клок енэйбл. И наверняка (потом покажете кусок схемы) он ляжет как дополнительный вход LUTа, стоящего перед входом данных триггера. По опыту, не хочет синтезатор подключать сигналы типа CE к соответствующим входам триггера, лучше ему через LUT. Ну на то есть причины конечно (хотя это касается Xilinx, в Альтере может и захочет).
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
Feb 4 2015, 16:02
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 13-03-11
Из: Екатеринбург
Пользователь №: 63 574

|
Цитата(Krys @ Feb 4 2015, 08:09)  Вам что, надо выкрутиться любой ценой? Или в каком-то информационном состязании победить, закрыв глаза на всё? Откуда выкрутиться? Я куда-то попал? Во все глаза искал совет использовать BUFGCE, видел только CE. Ткните уже носом, куда смотреть. Я вот вижу: Xilinx® recommends that you use the CLB clock enable pin instead of gated clocks. If you want to use a gated clock for power reduction, most FPGA devices now have a clock enabled global buffer resource called BUFGCE. However, a clock enable is still the preferred method to reduce or stop the clock to portions of the design. Перевод такой: Xilinx рекомендует использовать CLB CE вместо gated clocks. В ПЛИСах теперь есть BUFGCE, однако лучше использовать CE. Неправильно перевожу? Или есть другой источник сведений? Цитата(Krys @ Feb 4 2015, 08:09)  Моё понимание того фрагмента на английском: "гейтед клок не рекомендуется, лучше вместо него глобальный буфер с разрешением Понял, у меня с английским проблемы. Приоритет по предпочтительности использования: 1) BUFGCE. 2) CLB CE. 3) Gated clock. Так получается?
|
|
|
|
|
Feb 4 2015, 17:55
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Opex @ Feb 4 2015, 19:02)  1) BUFGCE. 2) CLB CE. 3) Gated clock.
Так получается? Нет. Не так. 1) CLB CE. 2) BUFGCE. 3) Gated clock. Но, в данном, конкретном случае, явно BUFGCE просится, ввиду особенности задачи.
|
|
|
|
|
Feb 4 2015, 18:23
|

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

|
Топикстартеру надо пересмотреть свою позицию: Цитата Это до каждого триггера пойдёт линия сброса - усложняет трассировку, а если сброс делать синхронным то ещё и логику. Конечно, можно не каждый триггер сбрасывать, а только нужный, но это надо думать какие нужно, какие нет, а думать над этим желания нет, т.к. у меня в проекте сброс вообще не предусмотрен, ПЛИСка в устройстве одна и сбрасывать её попросту некому, да и ненужно это - запустилась и работает.
|
|
|
|
|
Feb 5 2015, 02:27
|

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

|
Цитата(ViKo @ Feb 5 2015, 00:23)  Топикстартеру надо пересмотреть свою позицию: В чём конкретно? Цитата(SM @ Feb 4 2015, 23:55)  1) CLB CE. 2) BUFGCE. 3) Gated clock. Но, в данном, конкретном случае, явно BUFGCE просится, ввиду особенности задачи. Поддерживаю. Да и задача то вполне распространённая. Поэтому я и говорю "предпочтительно" - это может означать например 51% против 49% случаев, так что грань в решении весьма неоднозначная, нужно учитывать свои особенности. А приоритеты я бы даже так расставил: 1) CLB CE. 2) BUFGCE. 100) Gated clock , показывая, что BUFGCE довольно близко к CLB CE и лишь немного уступает последнему для общего случая (для конкретного может не уступать). Цитата(Opex @ Feb 4 2015, 22:02)  Откуда выкрутиться? Я куда-то попал? Вам возразили. Для многих это недопустимо, и надо с этим не соглашаться до последнего во что бы то ни стало. Цитата(Opex @ Feb 4 2015, 22:02)  Xilinx® recommends that you use the CLB clock enable pin instead of gated clocks. If you want to use a gated clock for power reduction, most FPGA devices now have a clock enabled global buffer resource called BUFGCE. However, a clock enable is still the preferred method to reduce or stop the clock to portions of the design.
Перевод такой: Xilinx рекомендует использовать CLB CE вместо gated clocks. В ПЛИСах теперь есть BUFGCE, однако лучше использовать CE.
Неправильно перевожу? Или есть другой источник сведений? Нет, другого источника нет, кроме, пожалуй, опыта и сухого остатка от прочтения других доков возможно и от других плис. Переводите наверное правильно. Но вот воспринимаете не совсем (ИМХО). Я бы перевёл так: 1. Xilinx рекомендует использовать CLB CE вместо gated clocks. 2. Но если всё же gated clocks нужен, то В ПЛИСах теперь есть BUFGCE, 3. Однако лучше предпочтительнее использовать CE. При том даже не так. Дословный перевод данного пункта более мягкий: "тем не менее, CE всё ещё является предпочтительным методом...". Т.е. так написано, чтобы показать отсутствие категоричности в использовании CE вместо BUFGCE.
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|