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

 
 
6 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Правильное использование locked у PLL
Opex
сообщение Jan 26 2015, 15:18
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 13-03-11
Из: Екатеринбург
Пользователь №: 63 574



Xilinx, кстати, не рекомендует использовать такое отключение клока, а вместо этого использовать входы CE.

Xilinx® recommends that you use the CLB clock enable pin instead of gated clocks.
Gated clocks can cause glitches, increased clock delay, clock skew, and other undesirable
effects. Using clock enable saves clock resources, and can improve timing
characteristic and analysis of the design.
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.

Сообщение отредактировал Opex - Jan 26 2015, 15:18
Go to the top of the page
 
+Quote Post
Jackov
сообщение Jan 29 2015, 14:49
Сообщение #17


Местный
***

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



Цитата(Opex @ Jan 26 2015, 18:18) *
а вместо этого использовать входы CE.

Это где они находятся?
Go to the top of the page
 
+Quote Post
Opex
сообщение Jan 29 2015, 15:24
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 13-03-11
Из: Екатеринбург
Пользователь №: 63 574



В триггерах всяких, и т.д.
Просто рекомендуется писать

if (enable) begin
...
end

если нужна отключаемая часть схемы, а что и как там конкретно отключится - среда сама разберется.
Почти то же самое, что и ресет, только просто на паузу ставится. Поддерживается аппаратно, дополнительных ресурсов не потребует, трассировку дополнительно не усложнит.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Jan 29 2015, 19:06
Сообщение #19


Местный
***

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



Цитата(Opex @ Jan 29 2015, 18:24) *
if (enable) begin
...
end

Обратно не понял. Если так написать, то это получится обыкновенный DV-триггер на базе D-триггера плисочного, и эта DV логика потребует ресурсов.
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 29 2015, 19:27
Сообщение #20


Гуру
******

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



Цитата(Jackov @ Jan 29 2015, 22:06) *
DV-триггер на базе D-триггера плисочного,


Что такое DV-триггер?

А это синтезируется, скорее всего, в подачу сигнала "enable" на вход CE "обычного плисочного триггера", а на вход его данных будет подано то, что внутри этого условия описано.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Jan 29 2015, 20:36
Сообщение #21


Местный
***

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



Цитата(SM @ Jan 29 2015, 22:27) *
Что такое DV-триггер?
Если V == 1, триггер работает как обычный D, если V == 0, хранит своё состояние. Как-то так:
Прикрепленное изображение


Цитата(SM @ Jan 29 2015, 22:27) *
А это синтезируется, скорее всего, в подачу сигнала "enable" на вход CE "обычного плисочного триггера", а на вход его данных будет подано то, что внутри этого условия описано.
CE это который вот этот?
Прикрепленное изображение

Кстати да, этот вход давно мне покоя не даёт. Где-то слышал или читал, что это разрешение клока. Но это разрешение надо подавать синхронно клоку или необязательно? И как к нему достучатся из верилога? Что-то мне подсказывает, что одним таким условием не обойдёшься, скорее всего надо ещё и настройки компилятора крутить.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 29 2015, 20:50
Сообщение #22


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Jackov @ Jan 29 2015, 23:36) *
Кстати да, этот вход давно мне покоя не даёт. Где-то слышал или читал, что это разрешение клока. Но это разрешение надо подавать синхронно клоку или необязательно? И как к нему достучатся из верилога? Что-то мне подсказывает, что одним таким условием не обойдёшься, скорее всего надо ещё и настройки компилятора крутить.

Достучаться, как и написано выше
Код
always@(posedge clk)begin
    if(en) q <= d;
end

Go to the top of the page
 
+Quote Post
Krys
сообщение Feb 2 2015, 08:04
Сообщение #23


Гуру
******

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



Цитата(Opex @ Jan 26 2015, 21:18) *
Xilinx, кстати, не рекомендует использовать такое отключение клока, а вместо этого использовать входы CE.
CODE

Xilinx® recommends that you use the CLB clock enable pin instead of gated clocks.
Gated clocks can cause glitches, increased clock delay, clock skew, and other undesirable
effects. Using clock enable saves clock resources, and can improve timing
characteristic and analysis of the design.
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.

Судя из приведённого текста (к стати, дайте плиз линк на исходник), наоборот, хилинх рекомендует использовать именно такой глобальный тактовый буфер с входом разрешения.


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


Гуру
******

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



Цитата(Jackov @ Jan 29 2015, 23:36) *
Кстати да, этот вход давно мне покоя не даёт. Где-то слышал или читал, что это разрешение клока. Но это разрешение надо подавать синхронно клоку или необязательно? И как к нему достучатся из верилога? Что-то мне подсказывает, что одним таким условием не обойдёшься, скорее всего надо ещё и настройки компилятора крутить.


Да, подавать надо с соблюдением Tsu и Th, но это проследит сам разводчик. Как достучаться - установить этот триггер в виде примитива (модуля) (для LatticeXP2, например, так - FD1P3AY ff_inst (.D(data), .SP(en), .CK(clk), .Q(data_out) ). Название примитива и имена портов следует смотреть в хелпе на конкретное семейство ПЛИС. Так как, используя условие в верилоге, синтезатор заведет его на CE только в том случае, если это будет выгоднее других способов по взвешенной оценке всех критериев оптимизации. Для того же Lattice, например, оно начинает пользоваться CE тогда, когда достаточно много триггеров его использует, так как CE, как и резеты, могут быть подключены к вторичным глобальным линиям, которые экономят ресурс разводки для сильно разветвленных сигналов.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 2 2015, 08:36
Сообщение #25


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

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



Точно так же, как и подавать данные на D вход.
Могу даже предположить, что CE на самом деле не затрагивает тактовый сигнал никак, а манипулирует именно с данными. Можно влезть в структуру триггера и разобраться.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 2 2015, 08:46
Сообщение #26


Гуру
******

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



Цитата(ViKo @ Feb 2 2015, 11:36) *
Можно влезть в структуру триггера и разобраться.

В среднестатистическом триггере затрагивает именно клок. Так как один элемент 2И-НЕ, нужный для реализации CE по клоку, это 4 транзистора, а 2-2И-ИЛИ + 1 инвертор, что надо для реализации по данным, аж считать лень сколько.... (на вскидку где-то 14 штук)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 2 2015, 09:01
Сообщение #27


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

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



Книжка есть - Пухальский, Новосельцева. Цифровые устройства.
Там можно почитать, что да как.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 2 2015, 09:03
Сообщение #28


Гуру
******

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



Цитата(ViKo @ Feb 2 2015, 12:01) *
Там можно почитать, что да как.

Есть куда более точные источники - например SPICE модели стандартных ячеек из технологических библиотек. Если не лень читать схему в виде SPICE описания, я выложу. У меня есть в запасе и те, где клок отключают, и где данные коммутируют аналоговыми ключами, первых больше, чем вторых.

PS
Хотя, извините, нет, не выложу. NDA, черт бы его побрал.
Go to the top of the page
 
+Quote Post
Opex
сообщение Feb 2 2015, 12:28
Сообщение #29


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 13-03-11
Из: Екатеринбург
Пользователь №: 63 574



Цитата(Krys @ Feb 2 2015, 13:04) *
Судя из приведённого текста (к стати, дайте плиз линк на исходник), наоборот, хилинх рекомендует использовать именно такой глобальный тактовый буфер с входом разрешения.


Вы прочитали невнимательно.
ug626 - Synthesis and Simulation Design Guide.

Go to the top of the page
 
+Quote Post
Jackov
сообщение Feb 2 2015, 16:27
Сообщение #30


Местный
***

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



Цитата(SM @ Feb 2 2015, 11:34) *
Как достучаться - установить этот триггер в виде примитива (модуля)
Проблематично, слишком много таких триггеров.
Go to the top of the page
 
+Quote Post

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

 


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


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