All pastes #513828 Raw Edit

chip select generator

public python v1 · immutable
#513828 ·published 2007-05-27 13:08 UTC
rendered paste body
s = set((    '10xxxxxxxxxxxx'    '01xxxxxxxxxxxx',    '001111111xxxxx',    '001111110111xx',    '001111110110xx',    '001111110101xx',    '00111111010011',    '00111111010010'))from posixpath import commonprefixdef emit(p, q):    signame = 'cs%s' % p    basesig = 'cs%s' % q    test = '(addr(%2d to %2d) == B"%s")' % (len(q), len(p), p[len(q):])    if q == '':        print 'signal %15s = %14s     %s;' % (signame, '', test)    else:        print 'signal %15s = %14s and %s;' % (signame, basesig, test)def output(s, q):    p = commonprefix(s)    if len(p) == len(q):        for j in '01':            p = q + j            t = set(i for i in s if i.startswith(p))            if len(t) > 1:		emit(p, q)                output(t, p)    else:	emit(p, q)        t = set(i for i in s if i.startswith(p))        if len(t) > 1:            output(t, p)output(s, '')