8 # set srcdir to the directory that contains Makefile.am
10 srcdir = os.environ['srcdir']
15 def open_src (name, mode):
17 return open (os.path.join (srcdir, name), mode)
20 def generate_fpga_regs (h_filename, v_filename):
21 const_width = 7 # bit width of constants
23 h_file = open_src (h_filename, 'r')
24 v_file = open (v_filename, 'w')
27 // This file is machine generated from %s
28 // Do not edit by hand; your edits will be overwritten.
32 pat = re.compile (r'^#define\s*(FR_\w*)\s*(\w*)(.*)$')
33 pat_bitno = re.compile (r'^#define\s*(bitno\w*)\s*(\w*)(.*)$')
34 pat_bm = re.compile (r'^#define\s*(bm\w*)\s*(\w*)(.*)$')
36 if re.match ('//|\s*$', line): # comment or blank line
38 mo = pat.search (line)
39 mo_bitno =pat_bitno.search (line)
40 mo_bm =pat_bm.search (line)
42 v_file.write ('`define %-25s %d\'d%s%s\n' % (
43 mo.group (1), const_width, mo.group (2), mo.group (3)))
45 v_file.write ('`define %-25s %s%s\n' % (
46 mo_bitno.group (1), mo_bitno.group (2), mo_bitno.group (3)))
48 v_file.write ('`define %-25s %s%s\n' % (
49 mo_bm.group (1), mo_bm.group (2), mo_bm.group (3)))
52 if __name__ == '__main__':
53 if len (sys.argv) != 3:
54 sys.stderr.write ('usage: %s file.h file.v\n' % (sys.argv[0]))
56 generate_fpga_regs (sys.argv[1], sys.argv[2])