From ae07b5a6ff9c736fea77a6892eda641addcd78f0 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Sun, 28 Nov 2021 11:22:27 +0000 Subject: [PATCH] move pin-adding into separate function in JTAG class --- src/spec/jtag.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/spec/jtag.py b/src/spec/jtag.py index e9bc75d..56aadbb 100644 --- a/src/spec/jtag.py +++ b/src/spec/jtag.py @@ -80,11 +80,7 @@ class JTAG(TAP, Pins): # we store the boundary scan register offset in the IOConn record self.ios = {} # these are enumerated in external_ports self.scan_len = 0 - for fn, pin, iotype, pin_name, scan_idx in list(self): - io = self.add_io(iotype=iotype, name=pin_name) - io._scan_idx = scan_idx # hmm shouldn't really do this - self.scan_len += scan_idx # record full length of boundary scan - self.ios[pin_name] = io + self.add_pins(list(self)) # this is redundant. or maybe part of testing, i don't know. self.sr = self.add_shiftreg(ircode=4, length=3, @@ -111,6 +107,13 @@ class JTAG(TAP, Pins): self.sr_en = self.add_shiftreg(ircode=11, length=len(en_sigs), domain=domain) + def add_pins(self, pinlist): + for fn, pin, iotype, pin_name, scan_idx in pinlist: + io = self.add_io(iotype=iotype, name=pin_name) + io._scan_idx = scan_idx # hmm shouldn't really do this + self.scan_len += scan_idx # record full length of boundary scan + self.ios[pin_name] = io + def elaborate(self, platform): m = super().elaborate(platform) m.d.comb += self.sr.i.eq(self.sr.o) # loopback as part of test? -- 2.30.2