|
Как клок коммутируют?, Че-то затык с этим |
|
|
|
Mar 9 2011, 18:18
|
Местный
  
Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379

|
Цитата(bogaev_roman @ Mar 9 2011, 20:05)  Долго думали, чтоб формулу вывести? Однако не шибко долго  - Вы видите ее ошибочность? Цитата(bogaev_roman @ Mar 9 2011, 20:05)  Откройте описание на любую современную ПЛИС и посмотрите на архитектуру, там же обычно приводят основные задержки на линии. У меня на стратикс 4, глобальная тактовая от pll тянется на диагональ 4 нс. Интересно понять, как так получается. Не дадите конкретную ссылку по стратикс 4? Для Циклона 3 я такого сходу не нашел. Буду искренне благодарен если ткнете - возможно мое представление не соотвествует реальности.
|
|
|
|
|
Mar 10 2011, 11:52
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Andr2I @ Mar 9 2011, 21:18)  Однако не шибко долго  - Вы видите ее ошибочность? Для того, чтобы подсчитать время распространения сигнала от точки А до точки Б в данном случае нельзя брать расстояние между ними и умножать на скорость света, ибо: А) - нет прямой диагональной связи от А до Б, сигнал будет переходить через ряды и строки клоковой сети Б) - скорость распространения - не скорость света Цитата Интересно понять, как так получается. Не дадите конкретную ссылку по стратикс 4? Для Циклона 3 я такого сходу не нашел. Честно говоря не нашел, но можете сами создать простейший проект - подать какую-нить тактовую на pll и получившуюся подстроенную частоту (пойдет по сетке тактовых частот) выдать через пин на диагональном конце. Для обычных сигналов ситуация гораздо хуже - там будут десятки нс.
|
|
|
|
|
Mar 10 2011, 12:11
|
Знающий
   
Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965

|
Цитата(des00 @ Mar 9 2011, 19:22)  я вас удивлю это все современные плис, в больших проектах. скажу даже больше, часто проблема заключается не в том, что задержка по клоку большая, а в том, что она катастрофически мала %) Большая-мала это совсем другой вопрос. Так откуда берутся десятки наносекунд для тактовых частот (мы ведь говорим про глобальные цепи, я надеюсь)? Объясните, не надо говорить загадками.
|
|
|
|
|
Mar 10 2011, 12:22
|
Местный
  
Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379

|
Цитата(bogaev_roman @ Mar 10 2011, 14:52)  А) - нет прямой диагональной связи от А до Б, сигнал будет переходить через ряды и строки клоковой сети Если тупо, то это должно дать множитель корень из 2. Если допустить, что глобальный сигнал ходит по одному ряду несколько раз еще 10 (шибко сомневаюсь однако  ). Цитата(bogaev_roman @ Mar 10 2011, 14:52)  Б) - скорость распространения - не скорость света А что-там за среда? Типовой коэффициент укорочения 1,5. Возможно там 3!!! Но больше ... Цитата(bogaev_roman @ Mar 10 2011, 14:52)  Честно говоря не нашел, но можете сами создать простейший проект - подать какую-нить тактовую на pll и получившуюся подстроенную частоту (пойдет по сетке тактовых частот) выдать через пин на диагональном конце. Для обычных сигналов ситуация гораздо хуже - там будут десятки нс. Вы это в симмуляторе смотрели? Гляну обязательно!
|
|
|
|
|
Mar 10 2011, 12:56
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Andr2I @ Mar 10 2011, 15:22)  Если тупо, то это должно дать множитель корень из 2. Если допустить, что глобальный сигнал ходит по одному ряду несколько раз еще 10 (шибко сомневаюсь однако  ). Я говорю о том, что чтобы рассчитать задержку от А до Б, требуется взять типовую задержку по столбцу, типовую задержку по строке, подсчитать общее кол-во строк и столбцов ну и перемножить и просумировать. Цитата А что-там за среда? Типовой коэффициент укорочения 1,5. Возможно там 3!!! Но больше ... Теоретики... Цитата Вы это в симмуляторе смотрели? Гляну обязательно! Можно в timequest посмотреть отчет для конкретного сигнала (для quartus), можно сгенерить gate и в sdo файле просмотреть все задержки, можно и на симуляторе посмотреть. Все значения одинаковыми будут (при одинаковых моделях).
|
|
|
|
|
Mar 10 2011, 13:36
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(alexadmin @ Mar 10 2011, 06:11)  Так откуда берутся десятки наносекунд для тактовых частот (мы ведь говорим про глобальные цепи, я надеюсь)? ну как откуда? вы сильно упрощаете картину глобальных сигналов в современных ПЛИС. Если брать пример из школьного курса физики, то для вас глобальная линия это материальная точка. А на деле все намного сложнее. У этих цепей дикий фанаут, а максимальная нагрузочная способность ограничена. Поэтому там стоит куча драйверов. Помимо этого тактовые сигналы триггеров проходят кучу мультиплексоров : разные клоки выбрать, логический сигнал как клок использовать, отключить сегмент плис для снижения потребления(хилые, если мне память не изменяет в виртексе 5 ом, заявляли что у них исе сам выбирает тип драйвера из медленных, средних и быстрых драйверов). Про 4нс вам уже сказали, но я думаю, что в сложных проектах, на толстых кристаллах, с кучей клоков и при наличии мультиплексора тактовой, 10нс задержки по клоку, да еще и в worst case набрать можно. А посмотреть все это можно в таймквесте. Резюмирую современные ПЛИС слишком далеко ушли от поверхностного представления о них как о проводах и сосредоточенной логики, поэтому и ваши рассуждения об этом вызывают такую реакцию. Достаточно внимательно покурить даташиты на разные семейства, приложить мозг и фпга едитор.
--------------------
|
|
|
|
|
Mar 10 2011, 15:07
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660

|
alexadmin, des00, извините, а вы не о разных вещах говорите? Я например, под перекосом понимаю разницу во времени прихода сигнала в разные точки устройства. А задержка - это собственно задержка распространения от источника до приемника. Все-таки деревья тактирования стараются выравнивать по перекосу. То есть, задержка большая, а перекос, даже по разным углам кристалла, будет небольшим. Вот для примера скриншот ChipPlanner для немаленького и медленного Cyclone IV E. Выделены задержки на выходе с clock control block для clock и reset. Схема - просто 8-ми разрядный регистр: CODE module testskew ( input clk, reset, input [7:0] din, output reg [7:0] count );
always @ (posedge clk or posedge reset) begin if (reset) count <= 0; else count <= din; end
endmodule Пару триггеров я кинул в произвольные места кристалла сам, еще один сделал Fast Input, а другой Fast Output. Остальные 4 разбросал Quartus. Результат - по кристаллу перекос порядка 0.1нс, до триггеров в элементах ввода-вывода задержка просто другая, но тоже выровненная (3нс вместо 2.5нс - в StratixII аналогично, сталкивался уже). Очень интересно увидеть именно пример перекоса более 1-2нс, а не задержку в глобальной линии тактовых импульсов.
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 10 2011, 18:53
|
Местный
  
Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379

|
Цитата(bogaev_roman @ Mar 10 2011, 14:52)  Честно говоря не нашел, но можете сами создать простейший проект - подать какую-нить тактовую на pll и получившуюся подстроенную частоту (пойдет по сетке тактовых частот) выдать через пин на диагональном конце. Для обычных сигналов ситуация гораздо хуже - там будут десятки нс. Как и обещал - создал проект - pll c выходом 128МГц и 4 Т-триггера. Триггеры разместил в разных углах от pll прямо в IO. Чип - Циклон 3 самый большой (120). В симмуляторе разница между сигналами на разных выводах 0,05 нс ...
|
|
|
|
|
Mar 11 2011, 11:12
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Andr2I @ Mar 10 2011, 21:53)  Как и обещал - создал проект - pll c выходом 128МГц и 4 Т-триггера. Триггеры разместил в разных углах от pll прямо в IO. Чип - Циклон 3 самый большой (120). В симмуляторе разница между сигналами на разных выводах 0,05 нс ... Мы о разных понятиях говорим. Создал простой проект - стратикс4, самый быстрый и объемный. Два триггера - на входе и выходе - в диаметрально противоположных концах ПЛИС. GATE первого и второго: Код // Location: FF_X184_Y128_N17 dffeas out( .clk(out_CLK_driver), .d(out_D_driver), .asdata(vcc), .clrn(vcc), .aload(gnd), .sclr(gnd), .sload(gnd), .ena(vcc), .devclrn(devclrn), .devpor(devpor), .q(out1), .prn(vcc)); // Location: FF_X1_Y1_N17 dffeas out( .clk(out_CLK_driver), .d(gnd), .asdata(out_ASDATA_driver), .clrn(vcc), .aload(gnd), .sclr(gnd), .sload(vcc), .ena(vcc), .devclrn(devclrn), .devpor(devpor), .q(out1), .prn(vcc)); Связь между ними: Код stratixiv_routing_wire out_ASDATA_routing_wire_inst ( .datain(out2), .dataout(out_ASDATA_driver)); Связь от pll до выходного триггера (через всю плис) Код stratixiv_routing_wire out_CLK_routing_wire_inst ( .datain(wire_pll1_clk_0), .dataout(out_CLK_driver)); Теперь результаты из файла sdf аннотации: Код (CELL (CELLTYPE "stratixiv_routing_wire") (INSTANCE d_delay.out_CLK_routing_wire_inst) (DELAY (ABSOLUTE (IOPATH datain dataout (1967:1967:1967) (1944:1944:1944)) ) (PATHPULSE datain dataout (200:200:200)) ) ) (CELL (CELLTYPE "stratixiv_routing_wire") (INSTANCE d_out.out_CLK_routing_wire_inst) (DELAY (ABSOLUTE (IOPATH datain dataout (2110:2110:2110) (2070:2070:2070)) ) (PATHPULSE datain dataout (200:200:200)) ) ) (CELL (CELLTYPE "stratixiv_routing_wire") (INSTANCE d_out.out_ASDATA_routing_wire_inst) (DELAY (ABSOLUTE (IOPATH datain dataout (6235:6235:6235) (6244:6244:6244)) ) (PATHPULSE datain dataout (200:200:200)) ) ) Резюме: время прихода тактовой частоты от pll до первого триггера - 1,967 ns, до второго - 2,110 ns, длительность распространения сигнала от выхода первого триггера до входа второго - 6,235 ns. Это все получено для чистого проекта, где ничего нет. Если появится большой fan-out, схема будет загружена, то результаты будут гораздо хуже. Цитата В симмуляторе разница между сигналами на разных выводах 0,05 нс ... Если gate-уровень - не верю, минимум 0.2 будет, если не вводили дополнительные временные ограничения или программируемые задержки.
Сообщение отредактировал bogaev_roman - Mar 11 2011, 11:17
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|