реклама на сайте
подробности

 
 
> помогите с оптимизацией проекта, ТаймКвест ругается на altshift_taps
novartis
сообщение Mar 13 2014, 14:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Здравствуйте, помогите с оптимизацией проекта под Альтерой Циклон5.
В исходном коде verilog (код не мой, но мне достался на доделки) имеется фифо SFIFO. По сути это большой сдвиговый регистр.
Квартус автогенерирует для этого фифо компонент altshift_taps и распределяет по рам-ячейкам.
Частота работы с этим фифо задана 175 МГц (а хочется еще больше).
Иногда удается достичь такую частоту.
А иногда после изменений и очередной компиляции ТаймКвест показывает 150МГц и ругается на
FPGA_Calc_CT:FPGA_Calc_CT_inst|hmod:\gen_hsh0:hsh0_inst|altshift_taps:SFIFO_rtl_0|shift_taps_j0v:auto_generated|
cntr_cjf:cntr1|counter_reg_bit[2]
FPGA_Calc_CT:FPGA_Calc_CT_inst|hmod:\gen_hsh0:hsh0_inst|altshift_taps:SFIFO_rtl_0|shift_taps_j0v:auto_generated|
dffe3a[1]

Прикрепленное изображение


От компиляции к компиляции конкретные биты и элементы фифо могут получаться другие в ТаймКвесте.

Есть ли способ указать квартусу разместить это фифо на ALM, а не на рамах? И поможет ли это?

И еще вопрос. Как уже написал. Иногда фитеровщик разводит под заданную частоту, а иногда нет, хотя существенных изменений в коде не производится.
Можно ему както дать понять, что заданные констрейны нужно выполнить хоть кровь из носа, а не так, как это он делает сейчас - иногда плучится, иногда нет.

код (условный):
Код
reg [63:0]SFIFO[40:0];

always @(posedge Clk)
begin
...
SFIFO[23]  <= SFIFO[22];
SFIFO[24]  <= SFIFO[23];
SFIFO[25]  <= SFIFO[24];
SFIFO[26]  <= SFIFO[25];
q[27]         <= SFIFO[26] + 32'h11111111; //sum const
SFIFO[27]  <= SFIFO[26];
SFIFO[28]  <= SFIFO[27];
SFIFO[29]  <= SFIFO[28];
SFIFO[30]  <= SFIFO[29];
q[30]         <= SFIFO[29] + 32'h22222222; // sum const
...
end
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
novartis
сообщение Mar 14 2014, 03:43
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



За подсказку про DSE спасибо, никогда им не пользовался, запускать-запускал, но не пользовался. Сейчас проект компилится 20 минут, я так понимаю ДСЕ будет крутить проект долго-долго, хотелось бы, чтобы он часов за 7 завершил свою работу.


По поводу altshift_taps. Я не пытаюсь использовать эту мегафункцию, квартус сам автоматически генерирует ее. Я бы хотел посмотреть на репорт ТаймКвеста без применения этой мегафункции. А как переписать ручками быстро и непринужденно - ничего в голову не приходит.
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 14 2014, 13:23
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(novartis @ Mar 14 2014, 07:43) *
По поводу altshift_taps. Я не пытаюсь использовать эту мегафункцию, квартус сам автоматически генерирует ее. Я бы хотел посмотреть на репорт ТаймКвеста без применения этой мегафункции. А как переписать ручками быстро и непринужденно - ничего в голову не приходит.

Сдвиговый регистр легко и непринуждённо превращается в кольцевой буфер с общим указателем на чтение и запись. Глубина регистра регулируется максимальным значением указателя, после которого он переходит в ноль. Это если чистый код охота написать.
Есть ещё вариант явной замены сдвигового регистра на, не к ночи будет помянута, мегафункцию, в которой наверняка можно указать тип используемых ресурсов, например блочная память или обычные FF-ы.

Кстати, приведённая картинка как-то не особо соответствует Вашему описанию. Я не очень хорошо ориентируюсь в альтеровском софте, но, IMHO, там банально сумматор между двумя регистрами не успевает пробежать.

Сообщение отредактировал o_khavin - Mar 14 2014, 13:31
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016