File: brams_init.py

package info (click to toggle)
yosys 0.9-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 10,572 kB
  • sloc: cpp: 92,919; python: 5,196; yacc: 2,535; sh: 1,883; makefile: 996; lex: 540; perl: 399; ansic: 371; tcl: 70; vhdl: 46
file content (14 lines) | stat: -rw-r--r-- 669 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python3

def write_init_vh(filename, initbits):
    with open(filename, "w") as f:
        for i in range(16):
            print("localparam [255:0] INIT_%X = {" % i, file=f)
            for k in range(32):
                print("  %s%s" % (", ".join(["INIT[%4d]" % initbits[i*256 + 255 - k*8 - l] for l in range(8)]), "," if k != 31 else ""), file=f)
            print("};", file=f);

write_init_vh("techlibs/ice40/brams_init1.vh", [i//2 + 2048*(i%2) for i in range(4096)])
write_init_vh("techlibs/ice40/brams_init2.vh", [i//4 + 1024*(i%4) for i in range(4096)])
write_init_vh("techlibs/ice40/brams_init3.vh", [i//8 +  512*(i%8) for i in range(4096)])