29 lines
903 B
VHDL
29 lines
903 B
VHDL
ARCHITECTURE masterVersion OF interpolatorCoefficients IS
|
|
BEGIN
|
|
|
|
calcCoeffs: process(interpolateLinear, sample1, sample2, sample3, sample4)
|
|
begin
|
|
if interpolateLinear = '1' then
|
|
a <= (others => '0');
|
|
b <= (others => '0');
|
|
c <= resize(2*sample3, c'length)
|
|
- resize(2*sample2, c'length);
|
|
d <= resize( sample2, d'length);
|
|
else
|
|
a <= resize( sample4, a'length)
|
|
- resize(3*sample3, a'length)
|
|
+ resize(3*sample2, a'length)
|
|
- resize( sample1, a'length);
|
|
b <= resize(2*sample1, b'length)
|
|
- resize(5*sample2, b'length)
|
|
+ resize(4*sample3, b'length)
|
|
- resize( sample4, b'length);
|
|
c <= resize( sample3, c'length)
|
|
- resize( sample1, c'length);
|
|
d <= resize( sample2, d'length);
|
|
end if;
|
|
end process calcCoeffs;
|
|
|
|
END ARCHITECTURE masterVersion;
|
|
|