[an error occurred while processing this directive]
Помогите, пож-ста, запутался совсем. Почему у меня не работает CIC-фильтр? Исходник на Verilog прилагаю
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено Валерий_П 28 июня 2006 г. 07:10

// CIC-фильтр дециматор
module cic_dec (
clk,
fs1,
fs2,
d,
q
);

//parameter N = 1;
//parameter M = 1;
//parameter R = 128;

input clk;
input fs1;
input fs2;
input [15:0] d;
output [15:0] q;

reg fs1_reg;
reg fs2_reg;
wire add;
wire sub;
wire [23:0] int_out;
wire clken1,clken2;
wire areset;

assign add = 1'b1;
assign sub = 1'b0;
assign areset = 1'b0;


//===================================================
//Синхронизатор
always @(posedge clk)
fs1_reg <= fs1;

always @(posedge clk)
fs2_reg <= fs2;

assign clken1 = fs1 & ~fs1_reg;
assign clken2 = fs2 & ~fs2_reg;


//===================================================
//Integrator-1
wire [23:0] in_int1,out_int1;
assign in_int1 = { d[15], d[15], d[15], d[15], d[15], d[15], d[15], d[15], d[15:0] };

altaccumulate1 altaccum_int1(
.aclr(areset),
.add_sub(add),
.clken(clken1),
.clock(clk),
.data(in_int1),
.result(out_int1));

assign int_out = out_int1;


//===================================================
//Comb-1
reg [23:0] comb_z1;
wire [23:0] dataa1,datab1,res_comb1;
assign datab1 = int_out;
assign dataa1 = comb_z1;

lpm_add_sub5 lpm_add_sub5_comb1(
.add_sub(sub),
.clken(clken2),
.clock(clk),
.dataa(dataa1),
.datab(datab1),
.result(res_comb1));

always @(posedge clk)
if (clken2) begin
comb_z1 <= datab1;
end

assign q[15:0] = res_comb1[15:0];

endmodule

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru