1 from bsv
.peripheral_gen
.base
import PBase
7 return " import qspi :: *;"
10 return " interface QSPI_out qspi{0}_out;\n" + \
11 " method Bit#(1) qspi{0}_isint;"
13 def num_axi_regs32(self
):
16 def mkslow_peripheral(self
, size
=0):
17 return " Ifc_qspi qspi{0} <- mkqspi();"
19 def _mk_connection(self
, name
=None, count
=0):
20 return "qspi{0}.slave"
22 def pinname_out(self
, pname
):
23 return {'ck': 'out.clk_o',
27 def pinname_outen(self
, pname
):
32 def mk_pincon(self
, name
, count
):
33 ret
= [PBase
.mk_pincon(self
, name
, count
)]
34 # special-case for gpio in, store in a temporary vector
36 plen
= len(self
.peripheral
.pinspecs
)
37 template
= " mkConnection({0}.{1},\n\t\t\t{2}.{1});"
38 ps
= "pinmux.peripheral_side.%s" % name
39 name
= self
.get_iname(count
)
40 n
= "{0}.out".format(name
)
41 for ptype
in ['io_out', 'io_out_en', 'io_in']:
42 ret
.append(template
.format(ps
, ptype
, n
))
48 def plic_object(self
, pname
, idx
):
49 return "{0}.interrupts()[{1}]".format(pname
, idx
)
51 def mk_ext_ifacedef(self
, iname
, inum
):
52 name
= self
.get_iname(inum
)
53 return " method {0}_isint = {0}.interrupts[5];".format(name
)
55 def slowifdeclmux(self
):
56 return " method Bit#(1) {1}{0}_isint;"