new123 0 30 июля, 2019 Опубликовано 30 июля, 2019 (изменено) · Жалоба Форумчане, день добрый. Подскажите, наверняка кто то решал подобную задачу. Нужно удостовериться, что тактовый сигнал нужной частоты. Эдакий 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 Не ужели все так просто, или это не синтезируемый код. Изменено 30 июля, 2019 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба Нужен другой источник тактовой частоты, которому доверяете. Сам себя не проверишь. Накапливайте такты счетчиком за интервал. За 1 с получите число 300 000 000. Хватит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба 9 minutes ago, new123 said: $realtime Как бы намекает, что это для тестирования. Я сейчас занимаюсь такой задачей и это, как мне кажется, очень сложное занятие. Если Вы хотите детектировать 300MHzи вам нужно с точностью до 4х знаков после запятой(двоичной системы НЕ десятичной) Вам нужно поднять рабочую частоту детектирования до 300*(2^4)=4.8ГГц. Сомневаюсь, что в природе есть много ПЛИС способных на такую частоту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 4 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба Зачем проверять на удвоенной? ...поделите вашу частоту в тыщу раз и смотрите. Точность зависит от той частоты с какой сравнивать будете и времени накопления. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 30 июля, 2019 Опубликовано 30 июля, 2019 (изменено) · Жалоба 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 раз и считаю счетчик? Изменено 30 июля, 2019 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 4 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба 8 минут назад, new123 сказал: проверяемую частоту 300+ делю в 1000 раз и считаю счетчик? Делите вашу частоту на счётчике во столько раз во сколько хотите и сравнивайте с какой-нить всегда существующей маленькой частотой . После периода подсчёта сбрасывайте счётчик и считайте заново. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба 9 minutes ago, Lmx2315 said: Делите вашу частоту на счётчике во столько раз во сколько хотите и сравнивайте с какой-нить всегда существующей маленькой частотой . После периода подсчёта сбрасывайте счётчик и считайте заново. мысль ясна, спс Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба Чтобы получить точность, частота, на которой производится измерение, также должна быть известна точно. Иначе нельзя требовать точность, т.к. не на что опереться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба Меряете число переходов за фиксированную единицу времени, получаемую от другого точно известного опрника и усредняете результат. Точность оценки зависит от времени усреднения. И от частоты точно известного опорника. И никаких гигагерцев. Вообще полистайте на досуге описание работы частотомеров, всё станет понятнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 30 июля, 2019 Опубликовано 30 июля, 2019 (изменено) · Жалоба 2 hours ago, Flood said: Чтобы получить точность, частота, на которой производится измерение, также должна быть известна точно. Иначе нельзя требовать точность, т.к. не на что опереться. у меня есть еще два источника, на обоих прогоню, завтра уже попробую Изменено 30 июля, 2019 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 30 июля, 2019 Опубликовано 30 июля, 2019 · Жалоба 10 часов назад, Lmx2315 сказал: Делите вашу частоту на счётчике во столько раз во сколько хотите и сравнивайте с какой-нить всегда существующей маленькой частотой . После периода подсчёта сбрасывайте счётчик и считайте заново. Т.е. говоря другими словами Вы проверяете достоверность результата процесса, который задействует много ресурсов, другим более простым процессом, который задействует гораздо меньше ресурсов, а потому более надежен. Ну, как только что объяснил Lmx2315, со сторожевым таймером. Или как в аналоговой технике коэфф. усиления сложного усилителя приводится к более простым R1 и R2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться