mirror of https://github.com/openXC7/prjxray.git
36 lines
984 B
Python
36 lines
984 B
Python
#!/usr/bin/env python3
|
|
|
|
import json
|
|
|
|
from prjxray.segmaker import Segmaker
|
|
from prjxray import verilog
|
|
|
|
segmk = Segmaker("design.bits", verbose=True)
|
|
|
|
print("Loading tags")
|
|
f = open('params.jl', 'r')
|
|
f.readline()
|
|
for l in f:
|
|
j = json.loads(l)
|
|
ps = j['params']
|
|
assert j['module'] == 'my_RAMB18E1'
|
|
site = verilog.unquote(ps['LOC'])
|
|
#print('site', site)
|
|
|
|
# all of these bits are inverted
|
|
ks = [
|
|
('IS_CLKARDCLK_INVERTED', 'ZINV_CLKARDCLK'),
|
|
('IS_CLKBWRCLK_INVERTED', 'ZINV_CLKBWRCLK'),
|
|
('IS_ENARDEN_INVERTED', 'ZINV_ENARDEN'),
|
|
('IS_ENBWREN_INVERTED', 'ZINV_ENBWREN'),
|
|
('IS_RSTRAMARSTRAM_INVERTED', 'ZINV_RSTRAMARSTRAM'),
|
|
('IS_RSTRAMB_INVERTED', 'ZINV_RSTRAMB'),
|
|
('IS_RSTREGARSTREG_INVERTED', 'ZINV_RSTREGARSTREG'),
|
|
('IS_RSTREGB_INVERTED', 'ZINV_RSTREGB'),
|
|
]
|
|
for param, tagname in ks:
|
|
segmk.add_site_tag(site, tagname, 1 ^ verilog.parsei(ps[param]))
|
|
|
|
segmk.compile()
|
|
segmk.write()
|