⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 48_fir_4_tb.v

📁 本次设计的数字基带成形滤波器参照IS-95标准进行设计
💻 V
字号:
`timescale 1 ns / 1 nsmodule filter_tb_48_1;  // Parameters  parameter clk_high   = 20;  parameter clk_low    = 20;  parameter clk_period = 40;  parameter clk_hold   = 2;  // Nets  reg clk;  reg clk1=0;  reg clk_enable;  reg reset;  reg  signed [19:0] filter_in;  wire signed  [19:0] filter_out;  //integer n;  //loop variable  reg signed [15:0] filter_in_force [0:100];  reg signed [15:0] filter_out_expected [0:100];  /* Function definitions  function real abs_real;  input real arg;  begin    abs_real = arg > 0 ? arg : -arg;  end  endfunction function abs_real*/  // Component Instances  base_48_fir u_filter_48    (    .filter_out(filter_out),    .filter_in(filter_in),    .clk(clk),    .reset(reset),    .clk_enable(clk_enable),    .clk1(clk1)    );initial      begin          filter_in<=1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<=1;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;           #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          //100          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<=1;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;           #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          //200          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<=1;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;           #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          //300          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<=1;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;           #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;                    #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 1;                    #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 1;          #10 filter_in<= 0;          #10 filter_in<= 0;          #10 filter_in<= 1;          //400      end    // Block Statements  always  // clk generation    begin : clk_gen    clk <= 1'b1;    # clk_high;    clk <= 1'b0;    # clk_low;    end  //clk_gen;  always #5 clk1=~clk1;   initial  // reset block    begin : reset_gen        reset <= 1'b1;    # (clk_period + clk_hold);    reset <= 1'b0;  end  //reset_gen;  initial  begin  clk_enable <= 1'b0;  #13 clk_enable<= 1'b1;  end  //initial  //begin   // for(n = 0; n<= 100; n = n + 1)   // #10 filter_in<=filter_in_force[n];   //end  initial #4000 $finish;  endmodule  /*initial  //The main block     begin    # clk_period;    filter_in <= filter_in_force[0];    # (clk_period*2 + clk_hold);    filter_in <= filter_in_force[1];    # clk_period;    for (n = 0; n<= 100; n = n + 1)      begin      if (abs_real($bitstoreal(filter_out) - $bitstoreal(filter_out_expected[n])) >= 1.0e-9)        $display("ERROR in filter test at time %t : Expected '%f' Actual '%f'", $time, $bitstoreal(filter_out_expected[n]), $bitstoreal(filter_out));      if (n + 2 <= 100)        filter_in <= filter_in_force[n + 2];      # (clk_period);      end    $display( "**** Test Complete. ****" );    $stop;  end */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -