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

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


Гуру
******

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



Цитата(Krys @ Feb 5 2015, 05:27) *
100) Gated clock

Да не 100) он, а именно 3). Просто, его надо уметь готовить - им пугают не знающих, так как легко можно получить глитчи в клоке при некорректном использовании. Но стоит подумать пару минут, и нарисовать диаграммы включение и выключения, и все встанет на свои места, как избежать этих глитчей. Во всем остальном (почти, еще задержка будет другая, но вполне детерминированная) он от BUFGCE, где безглитчевая схема встроена, и ее самому описывать не надо, не отличается.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 5 2015, 08:44
Сообщение #47


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

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



Цитата(Krys @ Feb 5 2015, 10:07) *
Почему же неотвечаемое? Перефразирую вопрос: что в процитированном Вами фрагменте Вам не понравилось?

"думать над этим желания нет" - а там, может, всего от пары триггеров и зависит зависание всей схемы. Это еще надо умудриться подвесить схему.
"усложняет трассировку" - для сброса есть специально выделенные цепи, вплоть до глобального сброса каждого триггера.
- я не смотрел конкретно, но разве та галочка в мегавизарде self-reset on loss lock не спасает, пока тактовая частота не установится?
Go to the top of the page
 
+Quote Post
Krys
сообщение Feb 5 2015, 09:01
Сообщение #48


Гуру
******

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



Цитата(SM @ Feb 5 2015, 14:34) *
Да не 100) он, а именно 3)

Тогда так:
1) CLB CE.
1,15) BUFGCE.
3) Gated clock.

)))))


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
Jackov
сообщение Feb 5 2015, 16:50
Сообщение #49


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(Jackov @ Feb 3 2015, 20:41) *
Не совсем, у меня в always-е два сигнала фигурируют, там один. Попробую завтра так сделать, отпишусь что получилось.

Цитата(Krys @ Feb 4 2015, 06:09) *
Ну да, у Вас асинхронный сброс, не вчитался. Просто сотрите его из олвейза ))) Будет сброс синхронный, а засинтезируется он как клок енэйбл. И наверняка (потом покажете кусок схемы) он ляжет как дополнительный вход LUTа, стоящего перед входом данных триггера. По опыту, не хочет синтезатор подключать сигналы типа CE к соответствующим входам триггера, лучше ему через LUT. Ну на то есть причины конечно (хотя это касается Xilinx, в Альтере может и захочет).
В общем вот. Имеем такой код:
Код
module test(output reg Q, input D, En, input Clk);
    always @(posedge Clk)
    begin
        if(En)
        begin
            Q = D;
        end
    end
endmodule
Синтезатор, вроде, ссинтезировал правильно
Прикрепленное изображение
А вот как развелось

Прикрепленное изображение

Такое ощущение, что надо чего-то в настройках повращать.
Запускал в Квартуе 9.1 для Циклона 4.

Цитата(SM @ Feb 4 2015, 20:55) *
1) CLB CE.
2) BUFGCE.
3) Gated clock.

Но, в данном, конкретном случае, явно BUFGCE просится, ввиду особенности задачи.
Поясните ньюфагу по хардкору. Если всё правильно понял, то Gated clock - это разрешение клока на триггере, BUFGCE - переключатель клоков с входом разрешения. CLB CE - это что за зверь?


Цитата(ViKo @ Feb 4 2015, 21:23) *
Топикстартеру надо пересмотреть свою позицию:
Разверните мысль, пожалуйста.

Сообщение отредактировал Jackov - Feb 5 2015, 16:51
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 5 2015, 16:56
Сообщение #50


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

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



Развернул уже, и не раз.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Feb 5 2015, 17:10
Сообщение #51


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(ViKo @ Feb 5 2015, 19:56) *
Развернул уже, и не раз.
Да, увидел.

Цитата(ViKo @ Feb 5 2015, 11:44) *
"думать над этим желания нет" - а там, может, всего от пары триггеров и зависит зависание всей схемы. Это еще надо умудриться подвесить схему.
Точно нет. Проект большой. Это надо все автоматы сбрасывать (а их больше десятка), кое-какие регистры, в общем надо долго и нудно в этом копаться.

Цитата(ViKo @ Feb 5 2015, 11:44) *
"усложняет трассировку" - для сброса есть специально выделенные цепи, вплоть до глобального сброса каждого триггера.
Да, мне уже объяснили. И в связи с этим я начал кое-что переосмысливать. Если асинхронный сброс действительно распространяется по выделенным линиям и он ни как не усложняет трассировку, тогда может быть имеет смысл сбрасывать асинхронно все триггеры, и не ломать голову какие нужно сбрасывать, а какие нет?

Цитата(ViKo @ Feb 5 2015, 11:44) *
- я не смотрел конкретно, но разве та галочка в мегавизарде self-reset on loss lock не спасает, пока тактовая частота не установится?
Это не то. Не помню точно что это, но точно не то. Скорее всего там речь идёт о частоте от генератора, а у нас ПЛЛ в самом начале нестабильную частоту выдаёт, и вот это надо как-то задавить.



Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 5 2015, 17:17
Сообщение #52


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

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



Цитата(Jackov @ Feb 5 2015, 20:10) *
Это не то. Не помню точно что это, но точно не то. Скорее всего там речь идёт о частоте от генератора, а у нас ПЛЛ в самом начале нестабильную частоту выдаёт, и вот это надо как-то задавить.

Да ну... как написано, сброс при потере захвата ФАПЧ, так и будет. Перезагрузка. Значит, пока ФАПЧ не установилась, состояние "загрузки" будет оставаться. Не будет же ПЛИС вечно перезагружаться при включении.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 5 2015, 17:23
Сообщение #53


Гуру
******

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



Цитата(Jackov @ Feb 5 2015, 20:10) *
И в связи с этим я начал кое-что переосмысливать. Если асинхронный сброс действительно распространяется по выделенным линиям и он ни как не усложняет трассировку, тогда может быть имеет смысл сбрасывать асинхронно все триггеры, и не ломать голову какие нужно сбрасывать, а какие нет?


Ну, только, некоторые, обычно, надо и предустанавливать... По этой части недавно темка была, где я подробно все описал, что и как надо делать, чтобы после такого асинхронного резета все завелось без сбоев - http://electronix.ru/forum/index.php?showtopic=125343. Та тема немного о другом, но и применима к Вашему случаю - все сбрасываете асинхронно, а вот на разрешение работы триггеров, инициирующих первичные процессы в системе, в тех случаях, когда это может привести к метастабильности от неудачного отпускания резета, подаете слегка задержанный сигнал того же резета, синхронизированный с клоком. Получите минимум занятых ресурсов.

Только не догадайтесь завести этот резет на резет PLL - оно тогда само себя заклинит через Lock sm.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 5 2015, 17:27
Сообщение #54


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

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



Цитата(SM @ Feb 5 2015, 20:23) *
а вот на разрешение работы триггеров, инициирующих первичные процессы в системе, в тех случаях, когда это может привести к метастабильности от неудачного отпускания резета, подаете слегка задержанный сигнал того же резета, синхронизированный с клоком.

как показано в сообщении №4 rolleyes.gif
Go to the top of the page
 
+Quote Post
Jackov
сообщение Feb 5 2015, 19:13
Сообщение #55


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(ViKo @ Feb 5 2015, 20:17) *
Да ну...
Я устанавливал эту галку - не помогло, на старте частота нестабильна.

Цитата(SM @ Feb 5 2015, 20:23) *
Та тема немного о другом, но и применима к Вашему случаю - все сбрасываете асинхронно, а вот на разрешение работы триггеров, инициирующих первичные процессы в системе, в тех случаях, когда это может привести к метастабильности от неудачного отпускания резета, подаете слегка задержанный сигнал того же резета, синхронизированный с клоком. Получите минимум занятых ресурсов.
Ну я так и не пойму зачем эти сложности, если асинхронные сбросы триггеров подключаются к глобальным линиям? Не проще ли сбрасывать все триггеры разом, предварительно засинхронизировать асинхронный сброс?
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 5 2015, 19:27
Сообщение #56


Гуру
******

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



Цитата(Jackov @ Feb 5 2015, 22:13) *
Не проще ли сбрасывать все триггеры разом, предварительно засинхронизировать асинхронный сброс?

Ну если это возможно, засинхронизировать его со всем необходимым сразу, то, конечно, проще. Но в реальности, обычно, так не бывает, поэтому оказывается проще оставить сброс асинхронным, но отодвинуть начало работы схемы на 1-2 такта от сброса, сделав сдвинутый по времени enable в одной...двух точках, отвечающих за начало работы. Хотя, для проекта, полностью работающего на одном клоке, наверное это не актуально.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Feb 5 2015, 19:34
Сообщение #57


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(SM @ Feb 5 2015, 22:27) *
Ну если это возможно, засинхронизировать его со всем необходимым сразу, то, конечно, проще. Но в реальности, обычно, так не бывает, поэтому оказывается проще оставить сброс асинхронным, но отодвинуть начало работы схемы на 1-2 такта от сброса, сделав сдвинутый по времени enable в одной...двух точках, отвечающих за начало работы. Хотя, для проекта, полностью работающего на одном клоке, наверное это не актуально.

Я понял, Вы про многоклоковый дизайн. Да, у меня именно такой. Спасибо за наводку.
Go to the top of the page
 
+Quote Post
Krys
сообщение Feb 6 2015, 04:15
Сообщение #58


Гуру
******

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



Цитата(Jackov @ Feb 5 2015, 22:50) *
А вот как развелось

Прикрепленное изображение
Ну как я и предсказывал:
Цитата(Krys @ Feb 4 2015, 09:09) *
Будет сброс синхронный, а засинтезируется он как клок енэйбл. И наверняка (потом покажете кусок схемы) он ляжет как дополнительный вход LUTа, стоящего перед входом данных триггера. По опыту, не хочет синтезатор подключать сигналы типа CE к соответствующим входам триггера, лучше ему через LUT. Ну на то есть причины конечно (хотя это касается Xilinx, в Альтере может и захочет).
Кто может ответить, почему к аппаратному входу CE триггера не подключает такие вещи? (я могу предположить некоторые причины, но не уверен).

К стати, вопрос: как получить такую схему после разводки в Квартусе (коллеге надо, квартус 9.0, плисина FLEX10K), т.е. что куда нажать, чтобы вывело?



Цитата(Jackov @ Feb 5 2015, 22:50) *
Если всё правильно понял, то Gated clock - это разрешение клока на триггере, BUFGCE - переключатель клоков с входом разрешения. CLB CE - это что за зверь?
Ну этот документ и термины от Xilinx, в альтере, кажется, это называется Ripple Clock. Но предлагаю Вам этот документ всё же прочитать, буквально пару страниц, вокруг того абзаца на английском, там есть все разъяснения и примеры, что есть что. В двух словах:
Вы немного перепутали:
CLB CE - это "разрешение клока на триггере".
BUFGCE - правильно.
Gated clock - питание входов CLK триггеров от выхода логики (триггер или лут), зачастую с подключением этого выхода к глобальной линии.


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


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

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



Цитата(Jackov @ Feb 5 2015, 23:50) *
Синтезатор, вроде, ссинтезировал правильно
Прикрепленное изображение
А вот как развелось

Прикрепленное изображение

Такое ощущение, что надо чего-то в настройках повращать.
Запускал в Квартуе 9.1 для Циклона 4.

Ничего удивительного. Именно для вашего примера, использование сигнала En, как сигнала разрешения ENA триггера в LE не эффективно. Причины объясняются тут Cyclone IV Device Handbook -> Logic Elements and Logic Array Blocks in Cyclone IV Devices -> Logic Array Blocks.
Цитата
.....
Each LAB consists of the following features:
■ 16 LEs
■ LAB control signals
■ LE carry chains
■ Register chains
■ Local interconnect
......
LAB Control Signals
Each LAB contains dedicated logic for driving control signals to its LEs. The control
signals include:
■ Two clocks
■ Two clock enables
■ Two asynchronous clears
■ One synchronous clear
■ One synchronous load
.......

Логический вывод из этого думаю сможете сделать самостоятельно. Это кстати касается всех современных ПЛИС.


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


Гуру
******

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



Цитата(des00 @ Feb 6 2015, 08:20) *
Логический вывод из этого думаю сможете сделать самостоятельно. Это кстати касается всех современных ПЛИС.


Вот, кстати, именно в данном случае, в проекте из одного триггера, это логике и не поддается. По разводке оба варианта одинаковы (какая разница, завести enable на LAB CE, или на LUT, все равно куда-то заводить, конкуренции между этими сигналами в данной схеме нет), а вот лишний LUT занят (кол-во LUT - вроде как один из критериев оптимизации).

И, кстати, это далеко не всех ПЛИС и сред касается:
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

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

 


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


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