Jump to content

    
Sign in to follow this  
new123

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

Recommended Posts

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

Подскажите, наверняка кто то решал подобную задачу. Нужно удостовериться, что тактовый сигнал нужной частоты. Эдакий 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

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

Edited by new123

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
9 minutes ago, new123 said:

$realtime

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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 раз и считаю счетчик?

Edited by new123

Share this post


Link to post
Share on other sites
8 минут назад, new123 сказал:

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

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

Share this post


Link to post
Share on other sites
9 minutes ago, Lmx2315 said:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
2 hours ago, Flood said:

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

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

Edited by new123

Share this post


Link to post
Share on other sites
10 часов назад, Lmx2315 сказал:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this