software circuit