есть одна незадачка, которую мы с Вами вместе уже ни один раз обсуждали на форуме и мне многие из Вас мне помогли за что я всем Вам сильно благодарен.
Сейчас имеется один затык, который не могу пройти.
Алгоритмически мне надо выполнить такую операцию.
Пусть (a_{t,0}, a_{t_1}, a{t_2}) - три 14 битных знаковых числа, которые поступают на вход в момент времени t, а я хочу считать матрицу для линейных предсказаний со всевозможными комбинациями по формуле
s_{i,j,k} = \sum_{l=0,...,t} a_{l,i} a_{l-k,j}, k=0,...,42, i,j=0,1,2
и, естественно, на плиске

Что получается, я имею на входе модуля по клоку 3 числа
reg signed [31:0] In[0:2];
загоняю их в сдвиговый массив
reg signed [13:0] Data[0:2][0:43];
always@(posedge Clk)
for(int i=0; i<3; i++)
begin
Data[i][0]<=In[i];
for(int k=0; k<43; k++)
Data[i][k+1]<=Data[i][k];
end
а потом для всех возможных пар вычисляю мегафункцией произведение Data[i][k]*Data[j][0] попутно конечно учитывая то, что стратикс может эффективно только пару умножений и следом идущее сложение вычислять и много остальных ньюансов как то регистровасть умножения и результата...
Если я вычисляю такую корреляцию для маленького числа сдвигов, то есть умножений, мой фмакс получается близким к аппаратному 490МГц и слаков нет даже если я клок поставлю 475МГц. Мне хочется иметь клок 400МГц для большого числа сдвигов, а именно 42, то есть задействовать 378 умножителей. Но, в этом случае, у меня вылезают слаки от Data[j][0] до мегафункции.
И действительно, Data[j][0] должно продублироваться аж 42*3=126 раз!!!
Естественно, первым делом я засунул между Data[j][0] и мегафункией конвейер регистров, один, второй, третий... Квартус, их всех оптимизирует, видя, что они все одни и те же, но продолжает ругаться слаками между последним регистром конвейера до мегафункции... Ах да, все возможные оптимизации по времени включены на полную. Мои потуги с логик-локом пока не увенчались успехом - на кошках - все хорошо, а вот целиком все - совсем плохо, поэтому я принимаю, как данность, время сборки всего проекта в 45 минут...
Можно ли заставить Квартус явно продублировать содержимое конвейера, возможно после этого слаки уйдут, или тут надо применить какую-то еще более хитрую стратегию, пожалуйста, посоветуйте!
Спасибо
ИИВ