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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Счетчики с большой разрядностью, Как лучше писать?
ViKo
сообщение Dec 16 2017, 15:44
Сообщение #31


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

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



Цитата(jcxz @ Dec 16 2017, 18:24) *
Ограничение в чём? В количестве входов элемента "И"?

В быстродействии, естественно.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 16 2017, 16:08
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 4 874
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ViKo @ Dec 16 2017, 17:44) *
В быстродействии, естественно.

Так схема параллельного переноса как раз и нужна для снятия ограничений по скорости.
Как она может ограничить быстродействие? поясните.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2017, 16:40
Сообщение #33


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

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



Цитата(jcxz @ Dec 16 2017, 19:08) *
Так схема параллельного переноса как раз и нужна для снятия ограничений по скорости.
Как она может ограничить быстродействие? поясните.

Как последовательный перенос имеет некую задержку для создания переноса (особенно, для последнего разряда), так и параллельный перенос имеет задержку.
А что вам непонятно? Вы знаете, к примеру, 32-разрядный элемент "И"? Как его сделать в ПЛИС? Какое у него будет быстродействие?
А предыдущему триггеру нужна 31-разрядная схема "И", и т.п. Ох... много.

Поэтому и разбивают таймер на части, делают лишний такт при переходе с одной части на другую, зато считают долгие времена.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 17 2017, 00:03
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 4 874
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ViKo @ Dec 16 2017, 18:40) *
Как последовательный перенос имеет некую задержку для создания переноса (особенно, для последнего разряда), так и параллельный перенос имеет задержку.

Всё имеет задержку, только разница в разы: для параллельной схемы задержка будет равна задержке одного разряда + задержка на "И", а в последовательной - суммарной задержке всех разрядов.

Цитата(ViKo @ Dec 16 2017, 18:40) *
А что вам непонятно? Вы знаете, к примеру, 32-разрядный элемент "И"? Как его сделать в ПЛИС? Какое у него будет быстродействие?

Многовходовой "И" легко делается из нескольких меньших.
Последовательно-параллельный перенос тоже возможен. Для уменьшения используемых элементов. Но разве в современных ПЛИС (не знаком с ними) не хватит ресурсов на несколько полноценных 24-разрядных счётчиков с параллельным переносом???
Go to the top of the page
 
+Quote Post
Александр77
сообщение Dec 17 2017, 07:09
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111



Цитата(jcxz @ Dec 17 2017, 03:03) *
Всё имеет задержку, только разница в разы: для параллельной схемы задержка будет равна задержке одного разряда + задержка на "И", а в последовательной - суммарной задержке всех разрядов.
Многовходовой "И" легко делается из нескольких меньших.

Когда будете делать слоеную "И", задержка составит не меньше чем n*dt, где n - число слоев. Тут все и полезет в сторону снижения частоты.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 17 2017, 07:11
Сообщение #36


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

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



В современных и несовременных ПЛИС есть специальные быстрые цепи последовательного переноса, благодаря чему таймер на 32 разряда получается быстрым безо всяких извращений.
А когда будете делать многовходовой И из многих малых, очень скоро быстродействие такого узла окажется хуже последовательного переноса в ПЛИС.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 17 2017, 15:32
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 4 874
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Александр77 @ Dec 17 2017, 09:09) *
Когда будете делать слоеную "И", задержка составит не меньше чем n*dt, где n - число слоев. Тут все и полезет в сторону снижения частоты.

Или я чего-то не понимаю или здесь клуб троллей... wacko.gif
5-ти входовые "И" возможны? Если да, то для реализации на их основе 24-входового "И" достаточно всего 2-х(!) "слоёв".
Не 20-и, а всего-лишь 2-х, Карл! А это по задержке будет меньше чем один разряд счётчика.

Цитата(ViKo @ Dec 17 2017, 09:11) *
А когда будете делать многовходовой И из многих малых, очень скоро быстродействие такого узла окажется хуже последовательного переноса в ПЛИС.

Каким образом задержка двух последовательных схем "И" может оказаться больше чем задержка последовательного переноса на 24 разрядах счётчика?
Каждый разряд счётчика состоит уже из нескольких последовательно включенных логических элементов.
Да, и автор говорил про 24-битный счётчик, а не 32-битный.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 17 2017, 15:42
Сообщение #38


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

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



Цитата(jcxz @ Dec 17 2017, 18:32) *
Или я чего-то не понимаю или здесь клуб троллей... wacko.gif
5-ти входовые "И" возможны?

Нет. 4-входовые.
Цитата
Если да, то для реализации на их основе 24-входового "И" достаточно всего 2-х(!) "слоёв".
Не 20-и, а всего-лишь 2-х, Карл! А это по задержке будет меньше чем один разряд счётчика.

Итого, 3. Но вы не учитываете задержки каналов, связывающих логические элементы. И задержек там будет, мама не горюй. А, поскольку количество каналов и логических элементов ограничено, там такая конструкция вырастет, что пол-ПЛИСы займет.
Мне только в кошмарном сне может присниться предлагаемое вами решение, реализованное в ПЛИС.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Dec 17 2017, 16:32
Сообщение #39


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

Группа: Свой
Сообщений: 1 216
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(Александр77 @ Dec 17 2017, 10:09) *
Когда будете делать слоеную "И", задержка составит не меньше чем n*dt, где n - число слоев. Тут все и полезет в сторону снижения частоты.

Задержка не перейдёт в снижение частоты если после каждого слоя поставить тригер.


Цитата(ViKo @ Dec 17 2017, 18:42) *
Нет. 4-входовые.


Если говорить за все современные ПЛИС - думаю у Xilinx всё же 6-входовые.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 17 2017, 16:48
Сообщение #40


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

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



Цитата(_4afc_ @ Dec 17 2017, 19:32) *
Задержка не перейдёт в снижение частоты если после каждого слоя поставить тригер.

Такт потеряли. Желаете считать через такт-другой?
Цитата
Если говорить за все современные ПЛИС - думаю у Xilinx всё же 6-входовые.

Ага, у них много чего есть, но цепи переносов не выбрасывают.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Dec 17 2017, 17:05
Сообщение #41


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

Группа: Свой
Сообщений: 1 216
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(ViKo @ Dec 17 2017, 19:48) *
Такт потеряли. Желаете считать через такт-другой?

Желаю узнать результат с задержкой в такт - другой.

Цитата(ViKo @ Dec 17 2017, 19:48) *
Ага, у них много чего есть, но цепи переносов не выбрасывают.

Не знаю, в чём проблемы иметь многоразрядный счётчик. В XC6SLX9 просто 32 разрядный счётчик спокойно считает на частоте 375МГц.
Go to the top of the page
 
+Quote Post
svedach
сообщение Dec 17 2017, 17:26
Сообщение #42


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

Группа: Свой
Сообщений: 134
Регистрация: 8-01-12
Из: Беларусь
Пользователь №: 69 226



Цитата
Не знаю, в чём проблемы иметь многоразрядный счётчик. В XC6SLX9 просто 32 разрядный счётчик спокойно считает на частоте 375МГц.


В седьмой серии на Artix (-1), 32 бит счетчик без проблем раскладывается на 150 МГц... На большей не проверял - не надо было...
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Dec 17 2017, 18:20
Сообщение #43


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

Группа: Свой
Сообщений: 1 216
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(nice_vladi @ Dec 14 2017, 15:06) *
Нужно отмерить промежуток времени от события А до события Б с большой точностью (допустим, с точностью 100 МГц-го клока). Время между событиями составляет 500 000 +- 10 000 тактов 100 МГц. Получается счетчик на 3 байта.


Вообще-то достаточно одного 16битного счётчика, если вы измеряете диапазон 500 000 +- 10 000 тактов.
Если его запускать по событию А и останавливать по событию Б, то счётчик будет содержать время (0...65535)+458752 такта.



Цитата(svedach @ Dec 17 2017, 20:26) *
В седьмой серии на Artix (-1), 32 бит счетчик без проблем раскладывается на 150 МГц... На большей не проверял - не надо было...

Код
module t1(input CLK100, output CLK2);
reg      [31:0] Count;
always @( posedge CLK100 )  begin Count<=Count+1;    end
assign CLK2=Count[31];
endmodule

XC6SLX9-2TTG144 Synthesizing:
# Registers : 32
Flip-Flops : 32
Speed Grade: -2
Minimum period: 2.654ns (Maximum Frequency: 376.861MHz)
Код
----------------------------------------------------------------------------------------------------------
  Constraint                                |    Check    | Worst Case |  Best Case | Timing |   Timing  
                                            |             |    Slack   | Achievable | Errors |    Score  
----------------------------------------------------------------------------------------------------------
  TS_sys_clk_pin = PERIOD TIMEGRP "sys_clk_ | SETUP       |     0.430ns|     2.236ns|       0|           0
  pin" 375 MHz HIGH 50%                     | HOLD        |     0.465ns|            |       0|           0
                                            | MINPERIOD   |     0.000ns|     2.666ns|       0|           0
----------------------------------------------------------------------------------------------------------
All constraints were met.


Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 18 2017, 05:50
Сообщение #44


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

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



Я в Cyclone III делал таймер, цитирую свои комментарии:
Для EP3C5E144C8 при длине таймера LENTH получается следующая рабочая частота:
28 256.02 MHz
29 251.32 MHz
30 247.04 MHz

На стандартных последовательных переносах, jcxz!
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 19 2017, 21:29
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 4 874
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ViKo @ Dec 18 2017, 07:50) *
30 247.04 MHz
На стандартных последовательных переносах, jcxz!

Это надо читать как ~30ГГц ? Серьёзно? wacko.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2018 - 13:20
Рейтинг@Mail.ru


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