Перейти к содержанию
    

как ускорить схему суммирования

не сильно врубился в метод SM, вот Sergey'F хорошую штуку подсказал - попробую ее вечером. Думаю вытянет нужную частоту схема :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не сильно врубился в метод SM

А что там врубаться? Гляньте на свою картинку в первом посте - там стоит один регитср. А вы поставьте два, или три, один за другим последовательно. И включите register retiming и pipelinig в настройках фиттера в квартусе. Он автоматически конвейеризирует схему, синтезированную по Вашему описанию, "протащив" эти регистры внутрь сумматора. У синплифая, кстати, тоже эти галки аж чуть ли не жирным шрифтом в главном окне проета торчат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Складывать входные данные попарно, а потом с аккумулятором - тактовую можно поднять вдвое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

конвейеризации переноса я не увидел.

resloq[16] - это регистр, конвейеризующий перенос. Все остальное обвеска для выравнивания фронтов по сути. Вообще, так можно все подробить на куски и по 8 бит и меньше, но...

 

ПЛИС Cyclone EP1C3.

Ориентировочно, нужно 200 МГц. А 32-битный сумматор, работающий за такт, все портит - Precision Syntesys и Квартус тоже это сказали :)

Вы шутите? В первом Циклоне просто чумовые сумматоры с выбором переноса. Как там 200МГц на 32 битах не получилось? Покажите, как Вы описали эту схему. Попробуйте вместо Precision встроенный синтезатор.

 

Я сейчас посмотрел - даже для самой медленной, 8 градации дает 32 бита 275 МГц. И это ограничение устройства по частоте, а не критического пути сумматора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

resloq[16] - это регистр, конвейеризующий перенос. Все остальное обвеска для выравнивания фронтов по сути. Вообще, так можно все подробить на куски и по 8 бит и меньше, но...

 

Я этот модуль не рассматривал. Имел ввиду Ваш рисунок от руки. Но не важно.

Все возможные варианты здесь уже рассмотрены.

P.S. Приношу извинения. Ваша реализация cnt и есть как у xilinx. А retiming наверно не получиться, так как обнуление регистров необходимо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И включите register retiming и pipelinig в настройках фиттера в квартусе. Он автоматически конвейеризирует схему, синтезированную по Вашему описанию, "протащив" эти регистры внутрь сумматора.

Точно получится? У меня вот что-то QII 9.1 не протащил... :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Точно получится? У меня вот что-то QII 9.1 не протащил... :laughing:

Так значит констрейны такие, что без протаскивания все укладывается, или таймквест не включен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так значит констрейны такие, что без протаскивания все укладывается, или таймквест не включен.

Констрейны не выполнились, пробовал и с Таймквестом, и с классиком.

 

test.sdc:
create_clock -period 2.857 -name {clk}  [get_ports {clk}]

cnt.v:
module cnt
(
input clk, input rst,
input [31:0] dataa,
output reg [31:0] result
);

reg [31:0] pres;

always @ (negedge rst or posedge clk)
begin
if (!rst)
begin
	result <= 0; pres <= 0;
end
else
begin
	pres <= dataa + pres; result <= pres;
end
end

endmodule

 

Иногда проще написать, когда знаешь, чего хочешь, чем бороться с констрейнами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тут такое дело - чтобы было чего пропихивать, надо не pres <= dataa + pres, а pres <= dataa + result. Ну и соотв. входные данные подавать с учетом этого

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тут такое дело - чтобы было чего пропихивать, надо не pres <= dataa + pres, а pres <= dataa + result. Ну и соотв. входные данные подавать с учетом этого

Не понял. Это же совсем другая логика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не понял. Это же совсем другая логика.

ну и что? Вопрос был скорости сумматора-накопителя, а не логики. Логика это вопрос внешней обвязки. Человек же сказал, что ему все равно, хоть 10 тактов пусть все считается.

 

ЗЫ. А может ему просто мультицикл сделать через этот сумматор? И более ничего... Т.е. забирать результат через два такта после подачи, и в констрейнах это объявить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы не стал так "бесстрашно" вводить конвейер в схему с обратными связями.

Автор темы желает в каждом такте 200 MHz сложить входной сигнал с уже накопленным. Если разбить это на несколько тактов, на выходе будет нечто совсем другое.

Еще вопросик - как насчет переполнения счетчика - игнорируем (отбрасываем)? И кому нужен такой результат?

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

И еще - я не нашел в Quartus 9.0 установок register retiming и pipelinig вообще. Подскажите конкретно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребят, офтоп. Я хочу использовать макетку

 

(http://www.ldm-systems.ru/doc/plis/ds-ep1c3t100-1.1_r.pdf )

 

с припаянной EP1C3. У нее отсутсвует тактовый генератор.

Если я заведу clk от мезонинной платы и частота порядка 200 МГц, будет работать нормально?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если я заведу clk от мезонинной платы и частота порядка 200 МГц, будет работать нормально?

Если сигнал доберется, то будет. Было бы там чему работать внутри.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если сигнал доберется, то будет. Было бы там чему работать внутри.

 

 

какой-то несерьезный ответ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...