Перейти к содержанию
    

Измерение интервалов. Один счётчик с Fт vs два счётчика с Fт/2.

Приветствую!

4 minutes ago, Neekeetos said:

Увеличение, видно что особо метастабильности не наблюдается, как и шума. Один тап в среднем получается 19пикосекунд как можно посчитать,

понятно что есть нелинейность, но это такой плис.

А если добавить на входе mux и периодически гонять внутренний клок с известной частотой то можно калибровать задержку в реалтайме  компенсируя гурляния напряжений и температуры.

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, RobFPGA said:

А если добавить на входе mux и ...

А если добавить XC7A15T за 32$, то получим клок на 680 МГц, а также калиброванную линию задержки на 32 tap'а с задержкой 39 ps/tap:

Quote

Maximum frequency of CLK input to IDELAY = 680 MHz

Average Tap Delay at 200 MHz = 78 ps, at 300 MHz = 52 ps, and at 400 MHz = 39 ps.

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

7 minutes ago, blackfin said:

а также калиброванную линию задержки на 32 tap'а с задержкой 39 ps/tap:

Увы - если бы можно было вывести сигнал с каждого тапа - да на отдельный D вход - да без потери точности - да " ..с потрошками .. " :biggrin: 

Тут разве что пытаться  эти IDELAY в цепочку  лепить компенсируя  ими в реалтайме нелинейность интерконект задержек.  Но кажется мне что  абсолютные задержки роутинга съедять весь профит. Лучше делать задержки на carry-chain цепях  должны получится вполне прогнозируемые значения. 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 minutes ago, RobFPGA said:

Увы - если бы можно было вывести сигнал с каждого тапа - да на отдельный D вход - да без потери точности - да

Нет, идея в том, чтобы соединить 16 шт. IDELAY в параллель снаружи. То есть, 16 пинов (8*_p + 8*_n) снаружи ПЛИС подключаем к одному источнику сигнала. Внутри ПЛИС к каждой паре _p, _n уже подключено 2 шт. IDELAY. С каждой IDELAY выводим сигнал со своей задержкой, а дальше - сравнение в FSM..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 minutes ago, blackfin said:

А если добавить XC7A15T за 32$, то получим клок на 680 МГц, а также калиброванную линию задержки на 32 tap'а с задержкой 39 ps/tap:

:)

ТС пришел с вопросом про разрешение в 10нс и улучшение его до 5нс и такой резко осуществил переход к разрешению 39пс , на три порядка лучше. Космические технологии :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про пикосекунды вы первый начали.. :)

1 hour ago, Neekeetos said:

Один тап в среднем получается 19 пикосекунд как можно посчитать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, blackfin said:

Про пикосекунды вы первый начали.. :)

Я просто подумал не лишним было бы пример привести :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, Neekeetos said:

Я просто подумал не лишним было бы пример привести :)

Так и я о том же подумал.. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 часов назад, des00 сказал:

если про метастабильность, то конечно существует. 

Нет, я про это:

В 23 февраля 2020 г. в 14:18, Lmx2315 сказал:

из-за особенностей реализации в плис  есть нюансы вроде как так делать не советуют. 

Иными словами, возможно мой проект только на модели хорош, а в железе могут быть сюрпризы.

Изменено пользователем MrGalaxy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/24/2020 at 8:25 AM, MrGalaxy said:

Встречаю такие ошибки не только на форуме, на работе тоже бывает вижу.

Кстати, что скажете про код Xilinx'а:

// Unsigned 16x24-bit Multiplier
// 1 latency stage on operands
// 4 latency stages after the multiplication
// File: mult_unsigned.v
//
module mult_unsigned (clk, A, B, RES);
parameter WIDTHA = 16;
parameter WIDTHB = 24;
input clk;
input [WIDTHA-1:0] A;
input [WIDTHB-1:0] B;
output [WIDTHA+WIDTHB-1:0] RES;

reg [WIDTHA-1:0] rA;
reg [WIDTHB-1:0] rB;
reg [WIDTHA+WIDTHB-1:0] M [3:0];

integer i;

always @(posedge clk)
begin
  rA <= A;
  rB <= B;
  M[0] <= rA * rB;
  for (i = 0; i < 3; i = i+1)
  M[i+1] <= M[i];
end
assign RES = M[3];

endmodule

Присвоение + использование в одном процессе: rA,rB,M[0],M[1],M[2]...

См., UG901, page 85..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...