vectorise pincon sync
[pinmux.git] / src / bsv / peripheral_gen / rgbttl.py
1 from bsv.peripheral_gen.base import PBase
2
3
4 class rgbttl(PBase):
5
6 def slowimport(self):
7 return "import rgbttl_dummy :: *;"
8
9 def has_axi_master(self):
10 return True
11
12 def num_axi_regs32(self):
13 return 10
14
15 def mkfast_peripheral(self):
16 sz = len(self.peripheral.pinspecs) - 4 # subtract CK, DE, HS, VS
17 return "Ifc_rgbttl_dummy lcd{0} <- mkrgbttl_dummy();"
18
19 def _mk_connection(self, name=None, count=0):
20 return "lcd{0}.slave"
21
22 def pinname_out(self, pname):
23 if not pname.startswith('out'):
24 return pname
25 return ''
26
27 def get_clock_reset(self, name, count):
28 return "slow_clock, slow_reset"
29
30 def _mk_pincon(self, name, count, ptyp):
31 ret = [PBase._mk_pincon(self, name, count, ptyp)]
32 txt = self._mk_vpincon(name, count, ptyp, "out", "data_out")
33 ret.append(txt)
34 return '\n'.join(ret)
35
36 def _mk_clk_con(self, name, count, ctype):
37 ret = [PBase._mk_clk_con(self, name, count, ctype)]
38
39 # data_out (hard-coded)
40 sz = len(self.peripheral.pinspecs) - 4 # subtract CK, DE, HS, VS
41 bitspec = "Bit#(%d)" % sz
42 txt = self._mk_clk_vcon(name, count, ctype, "out", "data_out", bitspec)
43 ret.append(txt)
44 return '\n'.join(ret)