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

Проверка частоты средствами ПЛИС, SV

Форумчане, день добрый.

Подскажите, наверняка кто то решал подобную задачу. Нужно удостовериться, что тактовый сигнал нужной частоты. Эдакий frequency checker.
В принципе, задача наверняка не очень сложная, с удвоенной частотой проверять текущие такты. Но у меня проблема, хочу проверить с точностью до 4 знаков после запятой.

Как думаете, реальная задача? Какие может подходы знаете. Частоту надо проверить 300+Mhz, проверять ее на 600+ тоже мне кажется не совсем корректно.

Нагуглил такой кусочек кода

module foo(clk);
     input clk;

     real t0;
     real t1;
     real frequency;

     initial
          begin
               @ (posedge clk) t0 = $realtime;
               @ (posedge clk) t1 = $realtime;
               frequency = 1.0e9 / (t1 - t0);
               $display("Frequency = %g", frequency);
               $finish;
          end
endmodule

Не ужели все так просто, или это не синтезируемый код.

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

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


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

Нужен другой источник тактовой частоты, которому доверяете. Сам себя не проверишь.

Накапливайте такты счетчиком за интервал. За 1 с получите число 300 000 000. Хватит?

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


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

9 minutes ago, new123 said:

$realtime

Как бы намекает, что это для тестирования. Я сейчас занимаюсь такой задачей и это, как мне кажется, очень сложное занятие.

Если Вы хотите детектировать 300MHzи вам нужно с точностью до 4х знаков после запятой(двоичной системы НЕ десятичной) Вам нужно поднять рабочую частоту детектирования до 300*(2^4)=4.8ГГц. Сомневаюсь, что в природе есть много ПЛИС способных на такую частоту.

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


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

Зачем проверять на удвоенной? ...поделите вашу частоту в тыщу раз и смотрите. Точность зависит от той частоты с какой сравнивать будете и времени накопления.

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


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

16 minutes ago, ViKo said:

ужен другой источник тактовой частоты, которому доверяете. Сам себя не проверишь.

Накапливайте такты счетчиком за интервал. За 1 с получите число 300 000 000. Хватит?

мысль ясна! я так мигание диода секундомером замерял. Попробую в моделсиме погонять такой вариант, гляну что за точность выдает, спс

15 minutes ago, Nick_K said:

Вам нужно поднять рабочую частоту детектирования до 300*(2^4)=4.8ГГц

вот и я парюсь по этому поводу =)

15 minutes ago, Lmx2315 said:

поделите вашу частоту в тыщу раз и смотрите

проверяемую частоту 300+ делю в 1000 раз и считаю счетчик?

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

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


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

8 минут назад, new123 сказал:

проверяемую частоту 300+ делю в 1000 раз и считаю счетчик?

Делите вашу частоту на счётчике во столько раз во сколько хотите и сравнивайте с какой-нить всегда существующей маленькой частотой . После периода подсчёта сбрасывайте счётчик и считайте заново.

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


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

9 minutes ago, Lmx2315 said:

Делите вашу частоту на счётчике во столько раз во сколько хотите и сравнивайте с какой-нить всегда существующей маленькой частотой . После периода подсчёта сбрасывайте счётчик и считайте заново.

мысль ясна, спс

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


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

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

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


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

Меряете число переходов за фиксированную единицу времени, получаемую от другого точно известного опрника и усредняете результат. Точность оценки зависит от времени усреднения. И от частоты точно известного опорника. И никаких гигагерцев.

Вообще полистайте на досуге описание работы частотомеров, всё станет понятнее.

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


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

2 hours ago, Flood said:

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

у меня есть еще два источника, на обоих прогоню, завтра уже попробую

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

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


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

10 часов назад, Lmx2315 сказал:

Делите вашу частоту на счётчике во столько раз во сколько хотите и сравнивайте с какой-нить всегда существующей маленькой частотой . После периода подсчёта сбрасывайте счётчик и считайте заново.

Т.е. говоря другими словами Вы проверяете достоверность результата процесса, который задействует много ресурсов, другим более простым процессом, который задействует гораздо меньше ресурсов, а потому более надежен. Ну, как только что объяснил Lmx2315, со сторожевым таймером. Или как в аналоговой технике коэфф. усиления сложного усилителя приводится к более простым R1 и R2.

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


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

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

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

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

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

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

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

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

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

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