def METHOD_NAME(self, address, byteenable=None, burstcount=1, chipselect=None):
    if byteenable is None:
        byteenable = 2**len(self.byteenable) - 1
    yield self.address.eq(address)
    yield self.write.eq(0)
    yield self.read.eq(1)
    yield self.byteenable.eq(byteenable)
    if burstcount != 1:
        yield self.burstcount.eq(burstcount)
    if chipselect is not None:
        yield self.chipselect.eq(chipselect)
    yield
    while (yield self.waitrequest):
        yield
    yield self.read.eq(0)
    # Actually don't care outside of a transaction this makes the traces look neater.
    yield self.byteenable.eq(0)
    if burstcount != 1:
        yield self.burstcount.eq(0)
    if chipselect is not None:
        yield self.chipselect.eq(0)
    while not (yield self.readdatavalid):
        yield
    return (yield self.readdata)