circular read generation