在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6039|回复: 3

[求助] 求高手帮我看下这个程序 运行出来有个小错误

[复制链接]
发表于 2010-5-12 12:22:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
module FIR_Gaussian_Lowpass(Data_out,Data_in,clock,reset,test,result9);
//8阶高斯低通FIR
parameter order = 8;
parameter word_size_in = 8;
parameter word_size_out = 2*word_size_in + 2;
parameter b0 = 8'd7;
parameter b1 = 8'd17;
parameter b2 = 8'd32;
parameter b3 = 8'd46;
parameter b4 = 8'd52;
parameter b5 = 8'd46;
parameter b6 = 8'd32;
parameter b7 = 8'd17;
parameter b8 = 8'd7;
parameter H = 1'b1,L = 1'b0;
output [word_size_out -1 : 0]  Data_out;
input  [word_size_in -1 : 0]  Data_in;
input        clock,reset;
reg  [word_size_in -1 : 0] Samples[1rder];
output  [63:0] test;
output [15:0] result9;
integer k;
//multip mult1(.datain1(b0),.datain2(Data_in),.clock(clock),.result(Data_out1));
/*assign data_out = b0*Data_in
     +b1*Samples[1]
     +b2*Samples[2]
     +b3*Samples[3]
     +b4*Samples[4]
     +b5*Samples[5]
     +b6*Samples[6]
     +b7*Samples[7]
     +b8*Samples[8];*/
/*assign data_out = result0
     +result1
     +result2
     +result3
     +result4
     +result5
     +result6
     +result7
     +result8;*/
adder16X1 (
   data0x,data10x,
   data11x,data12x,
   data13x,data14x,
   data15x,data1x,
   data2x,data3x,
   data4x,data5x,
   data6x,data7x,
   data8x,data9x,
   result
   );
adder add1 (.data0x(result0),.data1x(result1),
  .data2x(result2),.data3x(result3),
  .data4x(result4),.data5x(result5),
  .data6x(result6),.data7x(result7),
  .result(result9));
adder add2 (.data0x(result8),.data1x(result9),
  .data2x(8'h00),.data3x(8'h00),
  .data4x(8'h00),.data5x(8'h00),
  .data6x(8'h00),.data7x(8'h00),
  .result(result10));  
assign test = {Samples[1],Samples[2],Samples[3],Samples[4],
    Samples[5],Samples[6],Samples[7],Samples[8]};
wire [7:0] result0;
wire [7:0] result1;
wire [7:0] result2;
wire [7:0] result3;
wire [7:0] result4;
wire [7:0] result5;
wire [7:0] result6;
wire [7:0] result7;
wire [7:0] result8;
wire [15:0] result9;
wire [15:0] result10;
assign data_out = result9;
   
multiplex mult1(.dataa(b0),.datab(Data_in),.result(result0));
multiplex mult2(.dataa(b1),.datab(Samples[1]),.result(result1));
multiplex mult3(.dataa(b2),.datab(Samples[2]),.result(result2));
multiplex mult4(.dataa(b3),.datab(Samples[3]),.result(result3));
multiplex mult5(.dataa(b4),.datab(Samples[4]),.result(result4));
multiplex mult6(.dataa(b5),.datab(Samples[5]),.result(result5));
multiplex mult7(.dataa(b6),.datab(Samples[6]),.result(result6));
multiplex mult8(.dataa(b7),.datab(Samples[7]),.result(result7));
multiplex mult9(.dataa(b8),.datab(Samples[8]),.result(result8));   
always @(posedge clock)
if(reset == H)
  begin
   /*for(k=1;k<=order;k=k+1)
    Samples[k] <= 0;*/
   Samples[1] <= 0;
   Samples[2] <= 0;
   Samples[3] <= 0;
   Samples[4] <= 0;
   Samples[5] <= 0;
   Samples[6] <= 0;
   Samples[7] <= 0;
   Samples[8] <= 0;
  end
else
  begin
   Samples[1] <= Data_in;
   /*for(k=2;k<=order;k=k+1)
    Samples[k] <= Samples[k-1];*/
   Samples[2] <= Samples[1] ;
   Samples[3] <= Samples[2] ;
   Samples[4] <= Samples[3] ;
   Samples[5] <= Samples[4] ;
   Samples[6] <= Samples[5] ;
   Samples[7] <= Samples[6] ;
   Samples[8] <= Samples[7] ;
  end
endmodule
 楼主| 发表于 2010-5-12 12:26:09 | 显示全部楼层
这个就是一个简单的滤波器设计   假设输入为10000000  得到的结果为 7 24 17 32 46 52 46 32 17 7  结果就是多了一个24  好像是多了一个加法器 请高手帮我看一下!多谢!
发表于 2010-5-12 17:46:50 | 显示全部楼层
不明白你说的是什么?只是仿真结果吗?什么是多了一个数?有波形了最好发一下.
发表于 2010-5-28 09:54:09 | 显示全部楼层
应该来讲这是 9 阶的滤波器。建议修改如下:
parameter order = 9;
reg  [word_size_in -1 : 0] Samples[0:order-1];
multiplex mult1(.dataa(b0),.datab(Samples[0] ),.result(result0));
Samples[0] <= Data_in;

增加 Samples[1] <= Samples[0] ;
Samples[0] <= 0;
实际上 24 = 7 + 17
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 05:38 , Processed in 0.030325 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表