refactor peripheral_gen, split out interface classes
[pinmux.git] / src / bsv / peripheral_gen / uart.py
1 from bsv.peripheral_gen.base import PBase
2
3 class uart(PBase):
4
5 def slowimport(self):
6 return " import Uart_bs :: *;\n" + \
7 " import RS232_modified::*;"
8
9 def slowifdecl(self):
10 return " interface RS232 uart{0}_coe;\n" + \
11 " method Bit#(1) uart{0}_intr;"
12
13 def num_axi_regs32(self):
14 return 8
15
16 def mkslow_peripheral(self, size=0):
17 return " Ifc_Uart_bs uart{0} <- \n" + \
18 " mkUart_bs(clocked_by sp_clock,\n" + \
19 " reset_by uart_reset, sp_clock, sp_reset);"
20
21 def _mk_connection(self, name=None, count=0):
22 return "uart{0}.slave_axi_uart"
23
24 def pinname_out(self, pname):
25 return {'tx': 'coe_rs232.sout'}.get(pname, '')
26
27 def pinname_in(self, pname):
28 return {'rx': 'coe_rs232.sin'}.get(pname, '')