dima_spb 0 December 17, 2013 Posted December 17, 2013 · Report post Делить частоту принимаемого сигнала, причем затрачивая на это минимальное количество ресурсов ПЛИС. Так в чем загваздка? Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 December 17, 2013 Posted December 17, 2013 · Report post думаю в том что обычный делитель на счетчике делит на четные числа 2 - 4 - 6 - 8 :).... а учитывая что предлагали использовать для деления частоты символ "/" на сложность выше накладывается непонимание всего происходящего... //CLK_IN - входная частота reg [2:0] DivCounter = 0; localparam DivVal = 6; //делить на это число + 1 reg CLK_OUT = 0; always @(posedge CLK_IN or negedge CLK_IN) begin if(DivCounter < DivVal) DivCounter <= DivCounter + 1; else begin DivCounter <= 0; CLK_OUT <= ~CLK_OUT; end; end; ну дальше надо будет не забыть подать входную частоту на клоковый вход ПЛИС, побороться с гетед клоком если он обнаружится, и так далее... ну или подключить PLL или DCM модуль Quote Share this post Link to post Share on other sites More sharing options...
dima_spb 0 December 17, 2013 Posted December 17, 2013 · Report post думаю в том что обычный делитель на счетчике делит на четные числа 2 - 4 - 6 - 8 :).... Если выход счетного регистра сравнить с некой константой, тогда получится обычный делитель на счетчике, который делит на любые целые числа..... Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 December 17, 2013 Posted December 17, 2013 · Report post Если выход счетного регистра сравнить с некой константой, тогда получится обычный делитель на счетчике, который делит на любые целые числа..... изобразите ка делитель на 3? счетчик и сравнение с константой делит на 2*(N+1) , где N заданная константа, это про счетчик работающий по одному фронту клока. разделить счетчиком на 3 и другие цифры удастся только если вы работаете по обоим фронтам... Quote Share this post Link to post Share on other sites More sharing options...
Raven 32 December 17, 2013 Posted December 17, 2013 · Report post разделить счетчиком на 3 и другие цифры удастся только если вы работаете по обоим фронтам... Это справедливо, если на выходе нужно получить меандр с заданной частотой. Если это необязательно, то вполне работает и упомянутый вариант "досчитать до N-1 и сбросить". Собственно, у вас имеет место он же, только работает с обоими полупериодами, делая их одинаковыми. Ну а работа по обоим фронтам,- это, фактически, эквивалентно предварительному умножению частоты исходного сигнала на 2. (Последнее разъяснение - больше для ТС, конечно). Quote Share this post Link to post Share on other sites More sharing options...
Bad0512 2 December 17, 2013 Posted December 17, 2013 · Report post изобразите ка делитель на 3? счетчик и сравнение с константой делит на 2*(N+1) , где N заданная константа, это про счетчик работающий по одному фронту клока. разделить счетчиком на 3 и другие цифры удастся только если вы работаете по обоим фронтам... На практике деление частоты с duty cycle 50/50 очень редко кому нужно. Ну а поделить на 3 с duty cycle 33/67 можно и тупым счётчиком с обратной связью. Вопрос лишь в том какова конечная цель ТС. Если этот клок нужен для внутренних задач ПЛИС - нет проблем поделить его на счётчике и результат деления завести на CE вход более низкочастотной части тактируя её оригинальным клоком. Если надо результат выводить наружу - то тут может такой финт не пройти, придётся делить либо на PLL либо колхозить с падающим фронтом. Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 December 17, 2013 Posted December 17, 2013 · Report post да, ваша правда,.... я чет все на идеал загоняюсь:) Quote Share this post Link to post Share on other sites More sharing options...
dima_spb 0 December 18, 2013 Posted December 18, 2013 · Report post :bb-offtopic: Автор темы забыл, что спрашивал и пропал=))) А всем остальным все ясно Quote Share this post Link to post Share on other sites More sharing options...