[an error occurred while processing this directive]
|
Первые две функции - логический сдвиг влево.
Для этого есть SHL из std_logic_arith.
Две вторые - сдвиг массива вправо, с заполнением 0-ой строки
значением (Mag_IQ(14 DOWNTO 0)&'0').
Sum := Sum(WidthOut-Shift-1 DOWNTO 0) & (OTHERS => '0');
Принципиально неправильно. Не понятно, сколько разрядов заполнить нулями.
Mag_Delay<=(Mag_IQ(14 DOWNTO 0)&'0')&Mag_Delay(0 TO Mag_Delay_Size-2);
Вроде нормально. Возможно проблема в чем-то другом.
Synplify может не понять
SIGNAL Mag_Delay:Shift16UType(0 TO Mag_Delay_Size-1):=(OTHERS=>(OTHERS=>'0'));
CONSTANT Mag_Delay_Size:Positive:=Div_Pipeline_Size+(Mult_Pipeline_Size/2);
Попробуйте наоборот
CONSTANT Div_Pipeline_Size:Positive:=12;
CONSTANT Mult_Pipeline_Size:Positive:=4;
CONSTANT Mag_Delay_Size:Positive:=Div_Pipeline_Size+(Mult_Pipeline_Size/2);
SIGNAL Mag_Delay:Shift16UType(0 TO Mag_Delay_Size-1):=(OTHERS=>(OTHERS=>'0'));
E-mail: info@telesys.ru