OpenCores
URL https://opencores.org/ocsvn/robust_fir/robust_fir/trunk

Subversion Repositories robust_fir

[/] [robust_fir/] [trunk/] [src/] [base/] [fir.v] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 eyalhoc
OUTFILE fir_NAME.v
2
INCLUDE def_fir.txt
3
 
4
ITER CX COEFF_NUM
5
 
6
##  Expected RobustVerilog parameters:
7
##  SWAP ORDER val       - order of FIR
8
##  SWAP COEFF_BITS val  - precision of coeeficients (bit num)
9
##  SWAP DIN_BITS val    - precision of input data (bit num)
10
##  SWAP MAC_NUM val     - number of multiplayers (determines architecture)
11
 
12
//  Built In Parameters:
13
//  
14
//    Filter Order              = ORDER
15
//    Input Precision           = DIN_BITS
16
//    Coefficient Precision     = COEFF_BITS
17
//    Number of serial FIR sons = MAC_NUM
18
//    Number of multiplayers    = MAC_NUM
19
//    Architecture              = ARCH
20
//    Sum of Products Latency   = LATENCY
21
 
22
module fir_NAME (PORTS);
23
 
24
        input  clk;
25
        input  reset;
26
        input  [EXPR(COEFF_BITS-1):0] kCX;
27
        input  [EXPR(DIN_BITS-1):0] data_in;
28
        output [EXPR(DOUT_BITS-1):0] data_out;
29
    input  valid_in;
30
        output valid_out;
31
 
32
 
33
IFDEF TRUE(MAC_NUM==1)
34
  CREATE fir_serial.v def_fir_basic.txt DEFCMD(SWAP CONST(ORDER) ORDER) DEFCMD(SWAP CONST(COEFF_BITS) COEFF_BITS) DEFCMD(SWAP CONST(DIN_BITS) DIN_BITS)
35
  fir_serial_TOPO fir(clk, reset, valid_in, CONCAT.REV(kCX ,), data_in, data_out, valid_out);
36
 
37
ELSE TRUE(MAC_NUM==1)
38
  IFDEF TRUE(COEFF_NUM==MAC_NUM)
39
  CREATE fir_parallel.v def_fir_basic.txt DEFCMD(SWAP CONST(ORDER) ORDER) DEFCMD(SWAP CONST(COEFF_BITS) COEFF_BITS) DEFCMD(SWAP CONST(DIN_BITS) DIN_BITS)
40
  fir_parallel_TOPO fir(clk, reset, valid_in, CONCAT.REV(kCX ,), data_in, data_out, valid_out);
41
 
42
  ELSE TRUE(COEFF_NUM==MAC_NUM)
43
  CREATE fir_Nserial.v def_fir_Nserial.txt DEFCMD(SWAP CONST(ORDER) ORDER) DEFCMD(SWAP CONST(COEFF_BITS) COEFF_BITS) DEFCMD(SWAP CONST(DIN_BITS) DIN_BITS) DEFCMD(SWAP CONST(MAC_NUM) MAC_NUM)
44
  fir_MAC_NUMserial_TOPO fir(clk, reset, valid_in, CONCAT.REV(kCX ,), data_in, data_out, valid_out);
45
 
46
  ENDIF TRUE(COEFF_NUM==MAC_NUM)
47
ENDIF TRUE(MAC_NUM==1)
48
 
49
 
50
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.