Jump to content
    

Увеличение максимальной частоты работы счётчика

Добрый день.
Допустим в проекте есть счётчик на 32 бита:
 

logic [31:0] cnt;

always_ff @(posedge clock_i or negedge arstn_i) begin
    if (!arstn_i) begin 
    	cnt <= '0;
    end
    else begin
    	cnt <= cnt + 1'b1;
    end 
end 

Максимальная частота работы допустим 300МГц.
Есть какие-то методы, чтобы повысить максимальную частоту работы такого счётчика допустим до 350МГц без смены плис?
Благодарю.

Share this post


Link to post
Share on other sites

1 hour ago, Kostochkin said:

Есть какие-то методы, чтобы повысить максимальную частоту работы такого счётчика допустим до 350МГц без смены плис?

  • Поставить два 16-битных счётчика друг за другом
  • Реализовать счетчик на DSP48

Share this post


Link to post
Share on other sites

 Применяем другую тактику.,,.

Делаем предварительный счетчик на 5 бит. С него выделяем сигнал окончания счета, это когда он досчитает до 32-х и обнулится.

Ну а дальше автомат и память. Оставшиеся биты 32-5 делим примерно так: автомат делаем на 4-5 тактов, тогда можно а автомате иметь аккумулчтор на 4 разряда. Или автомат на 6 тактов, тогда аккумулятор на 5 разрядов. Память распределенная быстрая и однотактовая. 

Ну и автомат работает как программно-управляемый счетчик в 4-х разрядном микроконтроллере. Да, еще нужен флаг переноса. Один или несколько. 

Итого имеем: предварительный счетчик 5 разрядов, аккумулятор 5 разрядов, указатель адреса 3 разряда, флаг переноса. Самое медленное это память, но всегда можно увеличить рвзрядность предварительного счетчика, чтобы подобрать время для памяти.

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

Share this post


Link to post
Share on other sites

On 3/25/2025 at 10:55 AM, Kostochkin said:

Есть какие-то методы, чтобы повысить максимальную частоту работы такого счётчика допустим до 350МГц без смены плис?

 

Была уже такая тема:

On 4/5/2020 at 3:06 PM, RobFPGA said:

... если скорости не хватает то основная техника ускорения это pipeline счетчика  - разбиваем счетчик на 2 ( или более) меньших по разрядности с регистром в цепи переноса в старшие разряды и проблем нет. 

Share this post


Link to post
Share on other sites

Спасибо за ответы.
После счетчика стоит 32битный компаратор, который тоже медленно работает, как можно его ускорить?

Share this post


Link to post
Share on other sites

25 минут назад, Kostochkin сказал:

Спасибо за ответы.
После счетчика стоит 32битный компаратор, который тоже медленно работает, как можно его ускорить?

Поразрядный xor работает медленно?

Share this post


Link to post
Share on other sites

1 hour ago, Kostochkin said:

После счетчика стоит 32битный компаратор, который тоже медленно работает, как можно его ускорить?

Компарировать по 4 или 6 бита. Далее регистр. Опять компарировать по 4 или 6 бита. 6 бит поможет если хилинкс. Возможно СЕ  - бит для LUT

Share this post


Link to post
Share on other sites

10 hours ago, Kostochkin said:

Ну хотелось бы побыстрее..

Поставить после (или перед) несколько регистров и включить ретайминг.

Share this post


Link to post
Share on other sites

On 3/25/2025 at 9:33 PM, Kostochkin said:

Ну хотелось бы побыстрее..

В особо тонких местах ставлю счетчики на сдвиговых регистрах... Выигрыш ощущается сразу

Share this post


Link to post
Share on other sites

11 часов назад, Мур сказал:

В особо тонких местах ставлю счетчики на сдвиговых регистрах... Выигрыш ощущается сразу

Ну 32-бит не на пустом месте возник. А так-то да. Двигай - не хочу.

Share this post


Link to post
Share on other sites

тут надо уточнять - допустим ли конвеер.. и задержка на такты.

ну и вопрос надежности.

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...