hmm something suspicious with jtag tck/reset
[pinmux.git] / src / bsv / peripheral_gen / jtag.py
1 from bsv.peripheral_gen.base import PBase
2
3
4 class jtag(PBase):
5
6 def slowimport(self):
7 return "import jtagdtm::*;\n"
8
9 def extfastifinstance(self, name, count):
10 return self._extifinstance(name, count, "_out", "", True)
11
12 def fastifdecl(self, name, count):
13 # YUK!
14 return "interface Ifc_jtagdtm jtag{0}_out;".format(count)
15
16 def get_clock_reset(self, name, count):
17 return "tck, trst"
18
19 def pinname_in(self, pname):
20 return {'tms': 'tms',
21 'tdi': 'tdi',
22 }.get(pname, '')
23
24 def pinname_out(self, pname):
25 return {'tck': 'tck',
26 'tdo': 'tdo',
27 }.get(pname, '')
28
29 def mkfast_peripheral(self):
30 return """\
31 Ifc_jtagdtm jtag{0} <-mkjtagdtm(clocked_by tck, reset_by trst);
32 rule drive_tmp_scan_outs;
33 jtag{0}.scan_out_1_i(1'b0);
34 jtag{0}.scan_out_2_i(1'b0);
35 jtag{0}.scan_out_3_i(1'b0);
36 jtag{0}.scan_out_4_i(1'b0);
37 jtag{0}.scan_out_5_i(1'b0);
38 endrule
39 """
40
41 def axi_slave_name(self, name, ifacenum, typ=None):
42 return ''
43
44 def axi_slave_idx(self, idx, name, ifacenum, typ):
45 return ('', 0)
46
47 def axi_addr_map(self, name, ifacenum, typ=None):
48 return ''