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

Оптимальный фильтр на ПЛИС

Здравствуйте! Необходимо реализовать оптимальный фильтр на ПЛИС, состоящий из элементов линии задержки, биты с выходов линии умножаются на коэффициенты +/- 1 попарно (т.е. первая пара на +1, вторая пара на -1, третья на +1 и т.д.). Далее эти коэффициенты суммируются. Линию задержки реализовал (ниже привожу фрагмент кода), а вот с побитным умножением проблема. Буду благодарен за помощь.

 

entity rs_422 is

port (

INPUT_RS422: in std_logic :='0';

CLK : in std_logic;

);

 

end rs_422;

 

architecture Behavioral of rs_422 is

 

signal shift_register: std_logic_vector (15 downto 0);

signal tmp: std_logic_vector (15 downto 0);

 

begin

 

shift_reg: process (CLK)

begin

 

if (rising_edge(CLK)) then

 

tmp <= tmp (14 downto 0) & INPUT_RS422;

 

end if;

 

end process;

shift_register <= tmp;

 

 

end Behavioral;

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


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

На Verilog'е пойдет?

module rs_422(input clk, input input_rs422, output [3:0] output_dat);

reg [15:0] tmp = 0;

always @(posedge clk)
tmp <= (tmp << 1) | input_rs422;

reg [3:0] out;

int i;

always @*
begin
out = 0;
for(i=0; i<16; i=i+1)
  if (tmp[i])
   if (i&2) out = out - 1;
   else out = out + 1;
end

assign output_dat = out;

endmodule

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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