File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import numpy as np
2+ from os .path import dirname , abspath
3+ from siliconcompiler .design import DesignSchema
4+
5+
6+ class Fft (DesignSchema ):
7+ def __init__ (self ):
8+
9+ name = 'fft'
10+ root = f'{ name } _root'
11+ source = [f'rtl/{ name } .v' ]
12+
13+ # create a Design object
14+ super ().__init__ (name )
15+
16+ # set data home directory
17+ self .register_package (root , dirname (abspath (__file__ )))
18+
19+ # rtl files
20+ fileset = 'rtl'
21+ for item in source :
22+ self .add_file (item , fileset , package = root )
23+
24+ # top module
25+ self .set_topmodule (name , fileset )
26+
27+ def sin_table (self , width = 16 , size = 256 ):
28+ '''
29+ Generates sin table with:
30+ 1 sign bit, N-1 fractional bits
31+
32+ '''
33+ maxval = (2 ** (width - 1 )- 1 )
34+
35+ for i in range (size ):
36+ val = int (np .sin (2 * np .pi * i / size ) * maxval )
37+ if val < 0 :
38+ print (f"sine_lut[{ i } ] = -16'sd{ abs (val )} ;" )
39+ else :
40+ print (f"sine_lut[{ i } ] = 16'sd{ val } ;" )
41+
42+ if __name__ == "__main__" :
43+ d = Fft ()
44+ d .write_fileset (f"fft.f" , fileset = "rtl" )
45+ d .sin_table ()
You can’t perform that action at this time.
0 commit comments