4 def axibase(self
, name
, ifacenum
):
6 return "%(name)s%(ifacenum)dBase" % locals()
8 def axiend(self
, name
, ifacenum
):
10 return "%(name)s%(ifacenum)dEnd" % locals()
12 def axi_reg_def(self
, start
, name
, ifacenum
):
14 offs
= self
.num_axi_regs32() * 4 * 16
15 end
= start
+ offs
- 1
16 bname
= self
.axibase(name
, ifacenum
)
17 bend
= self
.axiend(name
, ifacenum
)
18 comment
= "%d 32-bit regs" % self
.num_axi_regs32()
19 return (" `define%(bname)s 'h%(start)08X\n"
20 " `define%(bend)s 'h%(end)08X // %(comment)s" % locals(),
26 return " import Uart16550 :: *;"
29 return " interface RS232_PHY_Ifc uart{0}_coe;\n" + \
30 " method Bit#(1) uart{0}_intr;"
32 def num_axi_regs32(self
):
38 return " import Uart_bs::*;\n" + \
39 " import RS232_modified::*;"
42 return " interface RS232 uart{0}_coe;"
44 def num_axi_regs32(self
):
50 return " import I2C_top :: *;"
53 return " interface I2C_out i2c{0}_out;\n" + \
54 " method Bit#(1) i2c{0}_isint;"
56 def num_axi_regs32(self
):
62 return " import qspi :: *;"
65 return " interface QSPI_out qspi{0}_out;\n" + \
66 " method Bit#(1) qspi{0}_isint;"
68 def num_axi_regs32(self
):
74 return " import pwm::*;"
77 return " interface PWMIO pwm_o;"
79 def num_axi_regs32(self
):
85 return " import pinmux::*;\n" + \
86 " import mux::*;\n" + \
90 return " interface GPIO_config#({1}) pad_config{0};"
92 def num_axi_regs32(self
):
96 class PFactory(object):
97 def getcls(self
, name
):