prjxray/fuzzers/027-bram36-config/generate.py

40 lines
991 B
Python

#!/usr/bin/env python3
import json
from prjxray.segmaker import Segmaker
def write_ram_ext_tags(segmk, tile_param):
for param in ["RAM_EXTENSION_A", "RAM_EXTENSION_B"]:
set_val = tile_param[param]
for opt in ["LOWER"]:
segmk.add_site_tag(
tile_param['site'], "{}_{}".format(param, opt), set_val == opt)
segmk.add_site_tag(
tile_param['site'], "{}_NONE_OR_UPPER".format(param, opt),
set_val != "LOWER")
def main():
segmk = Segmaker("design.bits")
print("Loading tags")
with open('params.json') as f:
params = json.load(f)
for tile_param in params:
write_ram_ext_tags(segmk, tile_param)
segmk.add_site_tag(
tile_param['site'], 'EN_ECC_READ', tile_param['EN_ECC_READ'])
segmk.add_site_tag(
tile_param['site'], 'EN_ECC_WRITE', tile_param['EN_ECC_WRITE'])
segmk.compile()
segmk.write()
if __name__ == '__main__':
main()