Jump to content
    

Verilog Делитель на 7 (и на 28)

Делить частоту принимаемого сигнала, причем затрачивая на это минимальное количество ресурсов ПЛИС.

Так в чем загваздка?

Share this post


Link to post
Share on other sites

думаю в том что обычный делитель на счетчике делит на четные числа

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 модуль

Share this post


Link to post
Share on other sites

думаю в том что обычный делитель на счетчике делит на четные числа

2 - 4 - 6 - 8 :)....

 

Если выход счетного регистра сравнить с некой константой, тогда получится обычный делитель на счетчике, который делит на любые целые числа..... :wacko:

 

 

Share this post


Link to post
Share on other sites

Если выход счетного регистра сравнить с некой константой, тогда получится обычный делитель на счетчике, который делит на любые целые числа..... :wacko:

 

изобразите ка делитель на 3? счетчик и сравнение с константой делит на

2*(N+1) , где N заданная константа, это про счетчик работающий по одному фронту клока.

 

разделить счетчиком на 3 и другие цифры удастся только если вы работаете по обоим фронтам...

Share this post


Link to post
Share on other sites

разделить счетчиком на 3 и другие цифры удастся только если вы работаете по обоим фронтам...

Это справедливо, если на выходе нужно получить меандр с заданной частотой. Если это необязательно, то вполне работает и упомянутый вариант "досчитать до N-1 и сбросить".

 

Собственно, у вас имеет место он же, только работает с обоими полупериодами, делая их одинаковыми. Ну а работа по обоим фронтам,- это, фактически, эквивалентно предварительному умножению частоты исходного сигнала на 2. (Последнее разъяснение - больше для ТС, конечно).

Share this post


Link to post
Share on other sites

изобразите ка делитель на 3? счетчик и сравнение с константой делит на

2*(N+1) , где N заданная константа, это про счетчик работающий по одному фронту клока.

 

разделить счетчиком на 3 и другие цифры удастся только если вы работаете по обоим фронтам...

На практике деление частоты с duty cycle 50/50 очень редко кому нужно. Ну а поделить на 3 с duty cycle 33/67 можно и тупым счётчиком с обратной связью.

Вопрос лишь в том какова конечная цель ТС. Если этот клок нужен для внутренних задач ПЛИС - нет проблем поделить его на счётчике и результат деления

завести на CE вход более низкочастотной части тактируя её оригинальным клоком. Если надо результат выводить наружу - то тут может такой финт не пройти,

придётся делить либо на PLL либо колхозить с падающим фронтом.

 

Share this post


Link to post
Share on other sites

:bb-offtopic:

 

Автор темы забыл, что спрашивал и пропал=)))

 

А всем остальным все ясно

 

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.

×
×
  • Create New...