projects
/
pinmux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pass over config in json format
[pinmux.git]
/
src
/
spec
/
gen.py
diff --git
a/src/spec/gen.py
b/src/spec/gen.py
index e1dc561111b6ffa425aed312ebb30e5b2cc4877c..492ba535074087c93ffb4a8d879082ba6b2c64d7 100644
(file)
--- a/
src/spec/gen.py
+++ b/
src/spec/gen.py
@@
-1,10
+1,11
@@
import os
import os
+import json
import os.path
from spec.interfaces import Pinouts
def specgen(of, pth, pinouts, bankspec, muxwidths, pinbanks, fixedpins,
import os.path
from spec.interfaces import Pinouts
def specgen(of, pth, pinouts, bankspec, muxwidths, pinbanks, fixedpins,
-
fastbu
s):
+
config
s):
""" generates a specification of pinouts (tsv files)
for reading in by pinmux.
""" generates a specification of pinouts (tsv files)
for reading in by pinmux.
@@
-29,16
+30,13
@@
def specgen(of, pth, pinouts, bankspec, muxwidths, pinbanks, fixedpins,
#print pinouts.ganged.items()
if not os.path.exists(pth):
os.makedirs(pth)
#print pinouts.ganged.items()
if not os.path.exists(pth):
os.makedirs(pth)
- with open(os.path.join(pth, '
muxwidth
s.txt'), 'w') as f:
- f
or k, v in pinouts.muxwidths.items():
- f.write("%s\t%d\n" % (k, v))
+ with open(os.path.join(pth, '
config
s.txt'), 'w') as f:
+ f
.write("%s\n" % json.dumps(configs))
+
with open(os.path.join(pth, 'interfaces.txt'), 'w') as f:
for k in pinouts.fnspec.keys():
s = pinouts.fnspec[k]
line = [k.lower(), str(len(s))]
with open(os.path.join(pth, 'interfaces.txt'), 'w') as f:
for k in pinouts.fnspec.keys():
s = pinouts.fnspec[k]
line = [k.lower(), str(len(s))]
- for b in fastbus:
- if b.startswith(k.lower()):
- line.append(b)
line = '\t'.join(line)
f.write("%s\n" % line)
s0 = s[list(s.keys())[0]] # hack, take first
line = '\t'.join(line)
f.write("%s\n" % line)
s0 = s[list(s.keys())[0]] # hack, take first
@@
-60,18
+58,34
@@
def specgen(of, pth, pinouts, bankspec, muxwidths, pinbanks, fixedpins,
g.write("\tbus")
g.write("\n")
g.write("\tbus")
g.write("\n")
+ # work out range of bankspecs
+ bankpins = []
+ for k, v in bankspec.items():
+ bankpins.append((v, k))
+ bankpins.sort()
+ bankpins.reverse()
+ muxentries = {}
+ cellbank = {}
+
pks = sorted(pinouts.keys())
# truly dreadful way to work out the max mux size...
pks = sorted(pinouts.keys())
# truly dreadful way to work out the max mux size...
- muxsz = 0
for k in pks:
for k in pks:
- for m in pinouts[k].keys():
- muxsz = max(muxsz, m + 1)
+ for (sz, bname) in bankpins:
+ print "keys", k, sz, bname
+ if k >= sz:
+ print "found", bname
+ muxentries[k] = muxwidths[bname]
+ cellbank[k] = bname
+ break
+ print muxentries
# write out the mux...
with open(os.path.join(pth, 'pinmap.txt'), 'w') as g:
for k in pks:
# write out the mux...
with open(os.path.join(pth, 'pinmap.txt'), 'w') as g:
for k in pks:
- res = [str(k)]
+ muxsz = muxentries[k]
+ bank = cellbank[k]
+ res = [str(k), bank, str(muxsz)]
# append pin mux
for midx in range(muxsz):
if midx in pinouts[k]:
# append pin mux
for midx in range(muxsz):
if midx in pinouts[k]: