alexforencich / cocotbext-pcie

PCI express simulation framework for Cocotb
MIT License
136 stars 44 forks source link

Register number incorrect in tlp unpack #15

Closed syedsk closed 1 year ago

syedsk commented 1 year ago

Looks like a typo. With this change I get register number correctly back.

@@ -575,7 +575,7 @@ class Tlp:

             if tlp.fmt_type in {TlpType.CFG_READ_0,  TlpType.CFG_WRITE_0, TlpType.CFG_READ_1,  TlpType.CFG_WRITE_1}:
                 dw, = struct.unpack_from('>L', pkt, 8)
  -                tlp.register_number = (dw >> 2) >> 0x3ff
 +                tlp.register_number = (dw >> 2) & 0x3ff
                 tlp.dest_id = PcieId.from_int(dw >> 16)
             elif tlp.fmt in {TlpFmt.FOUR_DW, TlpFmt.FOUR_DW_DATA}:
                 val, = struct.unpack_from('>Q', pkt, 8)
alexforencich commented 1 year ago

Yep, that's a typo alright. Thanks! Should be fixed now.

syedsk commented 1 year ago

Wow that was fast. Thanks