Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Оптимальный фильтр на ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Васька
Здравствуйте! Необходимо реализовать оптимальный фильтр на ПЛИС, состоящий из элементов линии задержки, биты с выходов линии умножаются на коэффициенты +/- 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;
XVR
На 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
Васька
Спасибо, правда в Veriloge я не очень, но ща буду разбираться sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.